Imported from libpng-1.0.8beta4.tar
diff --git a/ANNOUNCE b/ANNOUNCE
index d1b9d77..0bba759 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,5 +1,5 @@
 
-Libpng 1.0.8beta3 - July 11, 2000
+Libpng 1.0.8beta4 - July 14, 2000
 
 This is a public release of libpng, intended for use in production codes.
 
@@ -15,6 +15,9 @@
   Only set the PNG_FLAG_FREE_TRNS or PNG_FREE_TRNS flag in png_handle_tRNS()
      for indexed-color input files to avoid potential double-freeing trans array
      under some unusual conditions; problem was introduced in version 1.0.7.
+  Added the files pngbar.png and pngbar.jpg to the distribution.
+  Added cygwin subdirectory, makefile.cygwin, and cygwin support in pngconf.h
+  Added PNG_NO_ZALLOC_ZERO macro (makes png_zalloc skip zeroing memory)
 
 Send comments/corrections/commendations to
 png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu
diff --git a/CHANGES b/CHANGES
index 4e75e43..15cd3cc 100644
--- a/CHANGES
+++ b/CHANGES
@@ -797,7 +797,7 @@
   Fixed "DJBPP" typo in pnggccrd.c introduced in beta18.
 version 1.0.7 [July 1, 2000]
   Revised the definition of "trans_values" in libpng.3/libpng.txt
-version 1.0.8beta3 [July 11, 2000]
+version 1.0.8beta4 [July 14, 2000]
 version 1.0.8beta1 [July 8, 2000]
   Added png_free(png_ptr, key) two places in pngpread.c to stop memory leaks.
   Changed PNG_NO_STDIO to PNG_NO_CONSOLE_IO, several places in pngrutil.c and
@@ -814,6 +814,10 @@
      for indexed-color input files to avoid potential double-freeing trans array
      under some unusual conditions; problem was introduced in version 1.0.6f.
   Further revisions to pngtest.c and files in the wince subdirectory.
+version 1.0.8beta4 [July 14, 2000]
+  Added the files pngbar.png and pngbar.jpg to the distribution.
+  Added cygwin subdirectory, makefile.cygwin, and cygwin support in pngconf.h
+  Added PNG_NO_ZALLOC_ZERO macro (makes png_zalloc skip zeroing memory)
 
 Send comments/corrections/commendations to
 png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu
diff --git a/INSTALL b/INSTALL
index 8bf47bf..26a3b63 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,5 +1,5 @@
 
-Installing libpng version 1.0.8beta3 - July 11, 2000
+Installing libpng version 1.0.8beta4 - July 14, 2000
 
 Before installing libpng, you must first install zlib.  zlib
 can usually be found wherever you got libpng.  zlib can be
@@ -10,7 +10,7 @@
 version of zlib that's installed.
 
 You can rename the directories that you downloaded (they
-might be called "libpng-1.0.8beta3" or "lpng107" and "zlib-1.1.3"
+might be called "libpng-1.0.8beta4" or "lpng107" and "zlib-1.1.3"
 or "zlib113") so that you have directories called "zlib" and "libpng".
 
 Your directory structure should look like this:
@@ -57,8 +57,8 @@
 include
 
  makefile.std      =>  Generic UNIX makefile (cc, creates static libpng.a)
- makefile.linux    =>  Linux/ELF makefile (gcc, creates libpng.so.2.1.0.8beta3)
- makefile.gcmmx    =>  Linux/ELF makefile (gcc, creates libpng.so.2.1.0.8beta3,
+ makefile.linux    =>  Linux/ELF makefile (gcc, creates libpng.so.2.1.0.8beta4)
+ makefile.gcmmx    =>  Linux/ELF makefile (gcc, creates libpng.so.2.1.0.8beta4,
                        uses assembler code tuned for Intel MMX platform)
  makefile.gcc      =>  Generic makefile (gcc, creates static libpng.a)
  makefile.knr      =>  Archaic UNIX Makefile that converts files with
@@ -70,9 +70,9 @@
  makefile.intel    =>  Intel C/C++ version 4.0 and later
  libpng.icc        =>  Project file for IBM VisualAge/C++ version 4.0 or later
  makefile.sgi      =>  Silicon Graphics IRIX makefile (cc, creates static lib)
- makefile.sggcc    =>  Silicon Graphics (gcc, creates libpng.so.2.1.0.8beta3)
+ makefile.sggcc    =>  Silicon Graphics (gcc, creates libpng.so.2.1.0.8beta4)
  makefile.sunos    =>  Sun makefile
- makefile.solaris  =>  Solaris 2.X makefile (gcc, creates libpng.so.2.1.0.8beta3)
+ makefile.solaris  =>  Solaris 2.X makefile (gcc, creates libpng.so.2.1.0.8beta4)
  makefile.sco      =>  For SCO OSr5  ELF and Unixware 7 with Native cc
  makefile.mips     =>  MIPS makefile
  makefile.acorn    =>  Acorn makefile
diff --git a/KNOWNBUG b/KNOWNBUG
index 3bf58c2..958c7c0 100644
--- a/KNOWNBUG
+++ b/KNOWNBUG
@@ -9,6 +9,13 @@
    STATUS: Under investigation.  Experts on MMX assembler code are
    invited to help with the debugging.  Note that pngvcrd.c works fine.
 
+   Update: fixed in libpng-1.0.8beta1.  It compiles under gcc-2.7.2.3
+   and seems to work; under gcc-2.7.2.1 it compiles but crashes in
+   execution.  It is recommended that people use 2.95.2 or later.
+
+   The png_read_filter() function has still not been fully converted and
+   will not compile under gcc-2.95.2; it is currently ifdef'ed out.
+
 2. July 3, 2000 -- BUG -- MEMORY LEAK
 
    There is a memory leak in pngpread.c; it doesn't free "key".
@@ -38,11 +45,18 @@
    Libpng-1.0.7 does not support WindowsCE.
 
    STATUS:  Libpng-1.0.8 and libpng-2.0.0 will support WindowsCE.  A
-   new typedef, png_file_p, will be added which is normally FILE * but
+   new typedef, png_FILE_p, will be added which is normally FILE * but
    will be HANDLE if libpng is being built for WindowsCE.  Other patches
    required for WindowsCE support have been provided and will be applied.
+   Finished in libpng-1.0.8beta3.
 
-6. March 15, 1998 -- OPTIMIZATION -- Kevin Bracey
+6. July 13, 2000 -- ENHANCEMENT -- Cygwin support
+
+   Libpng-1.0.7 does not support building DLLs under Cygwin
+
+   STATUS: Cygwin support has been added to libpng-1.0.8beta4.
+
+7. March 15, 1998 -- OPTIMIZATION -- Kevin Bracey
 
    Loops need to be optimized everywhere
 
@@ -57,7 +71,7 @@
    libpng-1.1.0.  About 160 loops will be turned around
    in libpng-2.0.x betaxx, for testing.
 
-7. July 4, 1998 -- ENHANCEMENT -- Glenn R-P
+8. July 4, 1998 -- ENHANCEMENT -- Glenn R-P
 
    libpng-1.0.5 and earlier transform colors to gamma=1.0 space for
    merging with background, and then back to the image's gamma.  The
@@ -69,7 +83,7 @@
 
    STATUS: under development.
 
-8. September 1999 -- ENHANCEMENT --
+9. September 1999 -- ENHANCEMENT --
 
    It should be possible to use libpng without floating-point aritmetic.
 
diff --git a/LICENSE b/LICENSE
index bd2a720..2cbd383 100644
--- a/LICENSE
+++ b/LICENSE
@@ -4,7 +4,7 @@
 If you modify libpng you may insert additional notices immediately following
 this sentence.
 
-libpng version 1.0.8beta3, July 11, 2000 is Copyright (c) 2000 Glenn Randers-Pehrson
+libpng version 1.0.8beta4, July 14, 2000 is Copyright (c) 2000 Glenn Randers-Pehrson
 Distributed according to the same disclaimer and license as libpng-1.0.6
 with the following individuals added to the list of Contributing Authors
 
@@ -87,11 +87,11 @@
    printf("%s",png_get_copyright(NULL));
 
 Also, the PNG logo (in PNG format, of course) is supplied in the
-file "pngnow.png".
+files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31).
 
 Libpng is OSI Certified Open Source Software.  OSI Certified Open Source is a
 certification mark of the Open Source Initiative.
 
 Glenn Randers-Pehrson
 randeg@alum.rpi.edu
-July 11, 2000
+July 14, 2000
diff --git a/README b/README
index b5efe43..bff2733 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-README for libpng 1.0.8beta3 - July 11, 2000 (shared library 2.1)
+README for libpng 1.0.8beta4 - July 14, 2000 (shared library 2.1)
 See the note about version numbers near the top of png.h
 
 See INSTALL for instructions on how to install libpng.
@@ -148,7 +148,8 @@
       pngerror.c    =>  Error/warning message I/O functions
       pngget.c      =>  Functions for retrieving info from struct
       pngmem.c      =>  Memory handling functions
-      pngnow.png    =>  PNG logo
+      pngbar.png    =>  PNG logo, 88x31
+      pngnow.png    =>  PNG logo, 98x31
       pngpread.c    =>  Progressive reading functions
       pngread.c     =>  Read data/helper high-level functions
       pngrio.c      =>  Lowest-level data read I/O functions
@@ -176,9 +177,9 @@
        descrip.mms      =>  VMS makefile for MMS or MMK
        makefile.std     =>  Generic UNIX makefile (cc, creates static libpng.a)
        makefile.linux   =>  Linux/ELF makefile
-                            (gcc, creates libpng.so.2.1.0.8beta3)
+                            (gcc, creates libpng.so.2.1.0.8beta4)
        makefile.gcmmx   =>  Linux/ELF makefile (gcc, creates
-                            libpng.so.2.1.0.8beta3, uses assembler code
+                            libpng.so.2.1.0.8beta4, uses assembler code
                             tuned for Intel MMX platform)
        makefile.gcc     =>  Generic makefile (gcc, creates static libpng.a)
        makefile.knr     =>  Archaic UNIX Makefile that converts files with
@@ -190,10 +191,10 @@
        makefile.intel   =>  Intel C/C++ version 4.0 and later
        libpng.icc       =>  Project file, IBM VisualAge/C++ 4.0 or later
        makefile.sgi     =>  Silicon Graphics IRIX (cc, creates static lib)
-       makefile.sggcc   =>  Silicon Graphics (gcc, creates libpng.so.2.1.0.8beta3)
+       makefile.sggcc   =>  Silicon Graphics (gcc, creates libpng.so.2.1.0.8beta4)
        makefile.sunos   =>  Sun makefile
        makefile.solaris =>  Solaris 2.X makefile
-                            (gcc, creates libpng.so.2.1.0.8beta3)
+                            (gcc, creates libpng.so.2.1.0.8beta4)
        makefile.sco     =>  For SCO OSr5  ELF and Unixware 7 with Native cc
        makefile.mips    =>  MIPS makefile
        makefile.acorn   =>  Acorn makefile
diff --git a/Y2KINFO b/Y2KINFO
index caa4c1d..c301bcb 100644
--- a/Y2KINFO
+++ b/Y2KINFO
@@ -1,13 +1,13 @@
    Y2K compliance in libpng:
    =========================
 
-      July 11, 2000
+      July 14, 2000
 
       Since the PNG Development group is an ad-hoc body, we can't make
       an official declaration.
 
       This is your unofficial assurance that libpng from version 0.71 and
-      upward through 1.0.8beta3 are Y2K compliant.  It is my belief that earlier
+      upward through 1.0.8beta4 are Y2K compliant.  It is my belief that earlier
       versions were also Y2K compliant.
 
       Libpng only has three year fields.  One is a 2-byte unsigned integer
diff --git a/configure b/configure
index e18041a..d5720bf 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 echo "
-  There is no \"configure\" script for Libpng-1.0.8beta3.  Instead, please
+  There is no \"configure\" script for Libpng-1.0.8beta4.  Instead, please
   copy the appropriate makefile for your system from the \"scripts\"
   directory.  Read the INSTALL file for more details.
 "
diff --git a/libpng.3 b/libpng.3
index 2e55112..aef2110 100644
--- a/libpng.3
+++ b/libpng.3
@@ -1,6 +1,6 @@
-.TH LIBPNG 3 "July 11, 2000"
+.TH LIBPNG 3 "July 14, 2000"
 .SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.0.8beta3
+libpng \- Portable Network Graphics (PNG) Reference Library 1.0.8beta4
 .SH SYNOPSIS
 \fI\fB
 
@@ -747,7 +747,7 @@
 .SH LIBPNG.TXT
 libpng.txt - A description on how to use and modify libpng
 
- libpng version 1.0.8beta3 - July 11, 2000
+ libpng version 1.0.8beta4 - July 14, 2000
  Updated and distributed by Glenn Randers-Pehrson
  <randeg@alum.rpi.edu>
  Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
@@ -3381,13 +3381,13 @@
 
 .SH VII. Y2K Compliance in libpng
 
-July 11, 2000
+July 14, 2000
 
 Since the PNG Development group is an ad-hoc body, we can't make
 an official declaration.
 
 This is your unofficial assurance that libpng from version 0.71 and
-upward through 1.0.8beta3 are Y2K compliant.  It is my belief that earlier
+upward through 1.0.8beta4 are Y2K compliant.  It is my belief that earlier
 versions were also Y2K compliant.
 
 Libpng only has three year fields.  One is a 2-byte unsigned integer that
@@ -3528,7 +3528,7 @@
 
 Thanks to Frank J. T. Wojcik for helping with the documentation.
 
-Libpng version 1.0.8beta3 - July 11, 2000:
+Libpng version 1.0.8beta4 - July 14, 2000:
 Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
 Currently maintained by Glenn Randers-Pehrson (randeg@alum.rpi.edu).
 
@@ -3541,7 +3541,7 @@
 If you modify libpng you may insert additional notices immediately following
 this sentence.
 
-libpng version 1.0.8beta3, July 11, 2000 is
+libpng version 1.0.8beta4, July 14, 2000 is
 Copyright (c) 2000 Glenn Randers-Pehrson
 Distributed according to the same disclaimer and license as libpng-1.0.6
 with the following individuals added to the list of Contributing Authors
@@ -3625,14 +3625,14 @@
    printf("%s",png_get_copyright(NULL));
 
 Also, the PNG logo (in PNG format, of course) is supplied in the
-file "pngnow.png".
+files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31).
 
 Libpng is OSI Certified Open Source Software.  OSI Certified Open Source is a
 certification mark of the Open Source Initiative.
 
 Glenn Randers-Pehrson
 randeg@alum.rpi.edu
-July 11, 2000
+July 14, 2000
 
 .\" end of man page
 
diff --git a/libpng.txt b/libpng.txt
index 088abc0..14306fe 100644
--- a/libpng.txt
+++ b/libpng.txt
@@ -1,6 +1,6 @@
 libpng.txt - A description on how to use and modify libpng
 
- libpng version 1.0.8beta3 - July 11, 2000
+ libpng version 1.0.8beta4 - July 14, 2000
  Updated and distributed by Glenn Randers-Pehrson
  <randeg@alum.rpi.edu>
  Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
@@ -2634,13 +2634,13 @@
 
 VII. Y2K Compliance in libpng
 
-July 11, 2000
+July 14, 2000
 
 Since the PNG Development group is an ad-hoc body, we can't make
 an official declaration.
 
 This is your unofficial assurance that libpng from version 0.71 and
-upward through 1.0.8beta3 are Y2K compliant.  It is my belief that earlier
+upward through 1.0.8beta4 are Y2K compliant.  It is my belief that earlier
 versions were also Y2K compliant.
 
 Libpng only has three year fields.  One is a 2-byte unsigned integer that
diff --git a/libpngpf.3 b/libpngpf.3
index db5a556..a5479d6 100644
--- a/libpngpf.3
+++ b/libpngpf.3
@@ -1,6 +1,6 @@
-.TH LIBPNGPF 3 "July 11, 2000"
+.TH LIBPNGPF 3 "July 14, 2000"
 .SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.0.8beta3
+libpng \- Portable Network Graphics (PNG) Reference Library 1.0.8beta4
 (private functions)
 .SH SYNOPSIS
 \fB#include <png.h>\fP
diff --git a/msvc/README.txt b/msvc/README.txt
index eb258de..19f8db6 100644
--- a/msvc/README.txt
+++ b/msvc/README.txt
@@ -1,5 +1,5 @@
 Microsoft Developer Studio Build File, Format Version 6.00 for
-libpng 1.0.8beta3 (July 11, 2000) and zlib
+libpng 1.0.8beta4 (July 14, 2000) and zlib
 
 Copyright (C) 2000 Simon-Pierre Cadieux
 For conditions of distribution and use, see copyright notice in png.h
diff --git a/msvc/png32ms.def b/msvc/png32ms.def
index 79765c2..5685ec4 100644
--- a/msvc/png32ms.def
+++ b/msvc/png32ms.def
@@ -6,7 +6,7 @@
 DESCRIPTION "PNG image compression library for Windows"
 
 EXPORTS
-;Version 1.0.8beta3
+;Version 1.0.8beta4
   png_build_grayscale_palette  @1
   png_check_sig        @2
   png_chunk_error      @3
diff --git a/png.5 b/png.5
index d039a1f..1e8d316 100644
--- a/png.5
+++ b/png.5
@@ -1,4 +1,4 @@
-.TH PNG 5 "July 11, 2000"
+.TH PNG 5 "July 14, 2000"
 .SH NAME
 png \- Portable Network Graphics (PNG) format
 .SH DESCRIPTION
diff --git a/png.c b/png.c
index aea0f98..1d28fa3 100644
--- a/png.c
+++ b/png.c
@@ -1,7 +1,7 @@
 
 /* png.c - location for general purpose libpng functions
  *
- * libpng version 1.0.8beta3 - July 11, 2000
+ * libpng version 1.0.8beta4 - July 14, 2000
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
@@ -13,14 +13,14 @@
 #include "png.h"
 
 /* Generate a compiler error if there is an old png.h in the search path. */
-typedef version_1_0_8beta3 Your_png_h_is_not_version_1_0_8beta3;
+typedef version_1_0_8beta4 Your_png_h_is_not_version_1_0_8beta4;
 
 /* Version information for C files.  This had better match the version
  * string defined in png.h.  */
 
 #ifdef PNG_USE_GLOBAL_ARRAYS
 /* png_libpng_ver was changed to a function in version 1.0.5c */
-char png_libpng_ver[12] = "1.0.8beta3";
+char png_libpng_ver[12] = "1.0.8beta4";
 
 /* png_sig was changed to a function in version 1.0.5c */
 /* Place to hold the signature string for a PNG file. */
@@ -140,6 +140,7 @@
    png_uint_32 num_bytes = (png_uint_32)items * size;
    png_voidp ptr = (png_voidp)png_malloc((png_structp)png_ptr, num_bytes);
 
+#ifndef PNG_NO_ZALLOC_ZERO
    if (num_bytes > (png_uint_32)0x8000L)
    {
       png_memset(ptr, 0, (png_size_t)0x8000L);
@@ -150,6 +151,7 @@
    {
       png_memset(ptr, 0, (png_size_t)num_bytes);
    }
+#endif
    return ((voidpf)ptr);
 }
 
@@ -616,7 +618,7 @@
 png_get_copyright(png_structp png_ptr)
 {
    if (png_ptr != NULL || png_ptr == NULL)  /* silence compiler warning */
-   return ("\n libpng version 1.0.8beta3 - July 11, 2000\n\
+   return ("\n libpng version 1.0.8beta4 - July 14, 2000\n\
    Copyright (c) 1998-2000 Glenn Randers-Pehrson\n\
    Copyright (c) 1996, 1997 Andreas Dilger\n\
    Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.\n");
@@ -634,8 +636,8 @@
 {
    /* Version of *.c files used when building libpng */
    if(png_ptr != NULL) /* silence compiler warning about unused png_ptr */
-      return("1.0.8beta3");
-   return("1.0.8beta3");
+      return("1.0.8beta4");
+   return("1.0.8beta4");
 }
 
 png_charp PNGAPI
diff --git a/png.h b/png.h
index 442125b..38e017b 100644
--- a/png.h
+++ b/png.h
@@ -1,7 +1,7 @@
 
 /* png.h - header file for PNG reference library
  *
- * libpng version 1.0.8beta3 - July 11, 2000
+ * libpng version 1.0.8beta4 - July 14, 2000
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
@@ -9,7 +9,7 @@
  * Authors and maintainers:
  *  libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
  *  libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger
- *  libpng versions 0.97, January 1998, through 1.0.8beta3 - July 11, 2000: Glenn
+ *  libpng versions 0.97, January 1998, through 1.0.8beta4 - July 14, 2000: Glenn
  *  See also "Contributing Authors", below.
  *
  * Note about libpng version numbers:
@@ -82,7 +82,7 @@
  * If you modify libpng you may insert additional notices immediately following
  * this sentence.
  *
- * libpng version 1.0.8beta3, July 11, 2000, is
+ * libpng version 1.0.8beta4, July 14, 2000, is
  * Copyright (c) 2000 Glenn Randers-Pehrson
  * Distributed according to the same disclaimer and license as libpng-1.0.6
  * with the following individuals added to the list of Contributing Authors
@@ -167,7 +167,7 @@
  * printf("%s",png_get_copyright(NULL));
  *
  * Also, the PNG logo (in PNG format, of course) is supplied in the
- * file "pngnow.png".
+ * files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31).
  */
 
 /*
@@ -187,13 +187,13 @@
  * Y2K compliance in libpng:
  * =========================
  *
- *    July 11, 2000
+ *    July 14, 2000
  *
  *    Since the PNG Development group is an ad-hoc body, we can't make
  *    an official declaration.
  *
  *    This is your unofficial assurance that libpng from version 0.71 and
- *    upward through 1.0.8beta3 are Y2K compliant.  It is my belief that earlier
+ *    upward through 1.0.8beta4 are Y2K compliant.  It is my belief that earlier
  *    versions were also Y2K compliant.
  *
  *    Libpng only has three year fields.  One is a 2-byte unsigned integer
@@ -249,7 +249,7 @@
  */
 
 /* Version information for png.h - this should match the version in png.c */
-#define PNG_LIBPNG_VER_STRING "1.0.8beta3"
+#define PNG_LIBPNG_VER_STRING "1.0.8beta4"
 
 #define PNG_LIBPNG_VER_SONUM   2
 
@@ -259,7 +259,7 @@
 #define PNG_LIBPNG_VER_RELEASE 8
 /* This should match the numeric part of the final component of
  * PNG_LIBPNG_VER_STRING, omitting any leading zero: */
-#define PNG_LIBPNG_VER_BUILD   3
+#define PNG_LIBPNG_VER_BUILD   4
 
 /* Careful here.  At one time, Guy wanted to use 082, but that would be octal.
  * We must not include leading zeros.
@@ -1147,9 +1147,9 @@
 };
 
 /* This prevents a compiler error in png_get_copyright() in png.c if png.c
-and png.h are both at * version 1.0.8beta3
+and png.h are both at * version 1.0.8beta4
  */
-typedef png_structp version_1_0_8beta3;
+typedef png_structp version_1_0_8beta4;
 
 typedef png_struct FAR * FAR * png_structpp;
 
@@ -2171,7 +2171,7 @@
 extern PNG_EXPORT(png_charp,png_get_libpng_ver) PNGARG((png_structp png_ptr));
 
 #define PNG_HEADER_VERSION_STRING \
-   " libpng version 1.0.8beta3 - July 11, 2000 (header)\n"
+   " libpng version 1.0.8beta4 - July 14, 2000 (header)\n"
 
 #ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED
 /* With these routines we avoid an integer divide, which will be slower on
diff --git a/pngasmrd.h b/pngasmrd.h
index 9c8d13c..6eda7b1 100644
--- a/pngasmrd.h
+++ b/pngasmrd.h
@@ -1,6 +1,6 @@
 /* pngasmrd.h - assembler version of utilities to read a PNG file
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1999, 2000 Glenn Randers-Pehrson
  *
diff --git a/pngbar.jpg b/pngbar.jpg
new file mode 100644
index 0000000..70ba8d8
--- /dev/null
+++ b/pngbar.jpg
Binary files differ
diff --git a/pngbar.png b/pngbar.png
new file mode 100644
index 0000000..49798c8
--- /dev/null
+++ b/pngbar.png
Binary files differ
diff --git a/pngconf.h b/pngconf.h
index 6dbd543..22866ef 100644
--- a/pngconf.h
+++ b/pngconf.h
@@ -1,6 +1,6 @@
 /* pngconf.h - machine configurable file for libpng
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -49,6 +49,60 @@
 #define PNG_MAX_MALLOC_64K
 #endif
 
+/* Special munging to support doing things the 'cygwin' way:
+ * 'Normal' png-on-win32 defines/defaults:
+ *   PNG_BUILD_DLL -- building dll
+ *   PNG_USE_DLL   -- building an application, linking to dll
+ *   (no define)   -- building static library, or building an 
+ *                    application and linking to the static lib
+ * 'Cygwin' defines/defaults:
+ *   PNG_BUILD_DLL -- building the dll
+ *   (no define)   -- building an application, linking to the dll
+ *   PNG_STATIC    -- building the static lib, or building an application
+ *                    which links to the static lib.
+ * Thus,
+ * a cygwin user should define either PNG_BUILD_DLL or PNG_STATIC, and
+ * this bit of #ifdefs will define the 'correct' config variables based on
+ * that. If a cygwin user *wants* to define 'PNG_USE_DLL' that's okay, but
+ * unnecessary.
+ */
+#if defined(__CYGWIN__)
+#  if defined(PNG_BUILD_DLL)
+#    if defined(PNG_USE_DLL)
+#      undef PNG_USE_DLL
+#    endif
+#    if !defined(PNG_DLL)
+#      define PNG_DLL
+#    endif
+#    if defined(PNG_STATIC)
+#      undef PNG_STATIC
+#    endif
+#  else
+#    if defined(PNG_STATIC)
+#      if defined(PNG_USE_DLL)
+#        undef PNG_USE_DLL
+#      endif
+#      if defined(PNG_DLL)
+#        undef PNG_DLL
+#      endif
+#    else
+#      if defined(PNG_USE_DLL)
+#        if !defined(PNG_DLL)
+#          define PNG_DLL
+#        endif
+#      else
+#        if defined(PNG_DLL)
+#           define PNG_USE_DLL
+#        else
+#           define PNG_USE_DLL
+#           define PNG_DLL
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+
 /* This protects us against compilers that run on a windowing system
  * and thus don't have or would rather us not use the stdio types:
  * stdin, stdout, and stderr.  The only one currently used is stderr
@@ -534,6 +588,9 @@
 #ifndef PNG_NO_USER_MEM
 #define PNG_USER_MEM_SUPPORTED
 #endif
+#ifndef PNG_NO_ZALLOC_ZERO
+#define PNG_ZALLOC_ZERO
+#endif
 */
 
 /* This is only for PowerPC big-endian and 680x0 systems */
@@ -854,7 +911,7 @@
 #define LDATA 0
 #endif
 
-#if !defined(__WIN32__) && !defined(__FLAT__)
+#if !defined(__WIN32__) && !defined(__FLAT__) && !defined(__CYGWIN__)
 #define PNG_MAX_MALLOC_64K
 #if (LDATA != 1)
 #ifndef FAR
@@ -868,7 +925,7 @@
  * const if your compiler supports it. (SJT)
 #  define FARDATA FAR
  */
-#endif  /* __WIN32__, __FLAT__ */
+#endif  /* __WIN32__, __FLAT__, __CYGWIN__ */
 
 #endif   /* __BORLANDC__ */
 
@@ -952,12 +1009,43 @@
  * It is equivalent to Microsoft predefined macro _DLL which is
  * automatically defined when you compile using the share
  * version of the CRT (C Run-Time library)
+ * 
+ * The cygwin mods make this behavior a little different: 
+ * Define PNG_BUILD_DLL if you are building a dll for use with cygwin
+ * Define PNG_STATIC if you are building a static library for use with cygwin,
+ *   -or- if you are building an application that you want to link to the 
+ *   static library.
+ * PNG_USE_DLL is defined by default (no user action needed) unless one of
+ *   the other flags is defined.
  */
 
 #if !defined(PNG_DLL) && (defined(PNG_BUILD_DLL) || defined(PNG_USE_DLL))
 #  define PNG_DLL
 #endif
-
+/* If CYGWIN, then disallow GLOBAL ARRAYS unless building a static lib.
+ * When building a static lib, default to no GLOBAL ARRAYS, but allow
+ * command-line override
+ */
+#if defined(__CYGWIN__)
+#  if !defined(PNG_STATIC)
+#    if defined(PNG_USE_GLOBAL_ARRAYS)
+#      undef PNG_USE_GLOBAL_ARRAYS
+#    endif
+#    if !defined(PNG_USE_LOCAL_ARRAYS)
+#      define PNG_USE_LOCAL_ARRAYS
+#    endif
+#  else
+#    if defined(PNG_USE_LOCAL_ARRAYS) || defined(PNG_NO_GLOBAL_ARRAYS)
+#      if defined(PNG_USE_GLOBAL_ARRAYS)
+#        undef PNG_USE_GLOBAL_ARRAYS
+#      endif
+#    endif
+#  endif
+#  if !defined(PNG_USE_LOCAL_ARRAYS) && !defined(PNG_USE_GLOBAL_ARRAYS)
+#    define PNG_USE_LOCAL_ARRAYS
+#  endif
+#endif
+    
 /* Do not use global arrays (helps with building DLL's)
  * They are no longer used in libpng itself, since version 1.0.5c,
  * but might be required for some pre-1.0.5c applications.
@@ -972,19 +1060,21 @@
 
 #ifndef PNGAPI
 
-#if defined(__MINGW32__) || defined(__CYGWIN32__) && !defined(PNG_MODULEDEF)
+
+#if defined(__MINGW32__) || defined(__CYGWIN__) && !defined(PNG_MODULEDEF)
 #  ifndef PNG_NO_MODULEDEF
 #    define PNG_NO_MODULEDEF
 #  endif
-#endif
-
+#endif 
+ 
 #if !defined(PNG_IMPEXP) && defined(PNG_BUILD_DLL) && !defined(PNG_NO_MODULEDEF)
 #  define PNG_IMPEXP
 #endif
 
 #if defined(PNG_DLL) || defined(_DLL) || defined(__DLL__ ) || \
-    defined(_Windows) || defined(_WINDOWS) || \
-    defined(WIN32) || defined(_WIN32) || defined(__WIN32__)
+    (( defined(_Windows) || defined(_WINDOWS) || \
+       defined(WIN32) || defined(_WIN32) || defined(__WIN32__) \
+	  ) && !defined(__CYGWIN__))
 
 #  ifdef __GNUC__
 #    define PNGAPI __cdecl
@@ -1026,11 +1116,18 @@
 #        endif
 #     endif
 #  endif  /* PNG_IMPEXP */
-#else /* !(DLL || WINDOWS) */
-#  if 0 /* ... other platforms, with other meanings */
+#else /* !(DLL || non-cygwin WINDOWS) */
+#  if defined(__CYGWIN__) && !defined(PNG_DLL)
+#    if !defined(PNG_IMPEXP)
+#      define PNG_IMPEXP
+#    endif
+#    define PNGAPI __cdecl
 #  else
-#     define PNGAPI
-#     define PNG_IMPEXP
+#    if 0 /* ... other platforms, with other meanings */
+#    else
+#       define PNGAPI
+#       define PNG_IMPEXP
+#    endif
 #  endif
 #endif
 #endif
diff --git a/pngerror.c b/pngerror.c
index 5dd1c31..29c80c7 100644
--- a/pngerror.c
+++ b/pngerror.c
@@ -1,7 +1,7 @@
 
 /* pngerror.c - stub functions for i/o and memory allocation
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pnggccrd.c b/pnggccrd.c
index 32efb51..7402ca5 100644
--- a/pnggccrd.c
+++ b/pnggccrd.c
@@ -6,7 +6,7 @@
  *     and http://www.intel.com/drg/pentiumII/appnotes/923/923.htm
  *     for Intel's performance analysis of the MMX vs. non-MMX code.
  *
- * libpng version 1.0.8beta3 - July 11, 2000
+ * libpng version 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * Copyright (c) 1998, Intel Corporation
@@ -166,9 +166,9 @@
 static const int png_pass_width[7] = {8, 4, 4, 2, 2, 1, 1};
 #endif
 
-// djgpp and Win32 add their own underscores to global variables,
+// djgpp, Win32, and Cygwin add their own underscores to global variables,
 // so define them without:
-#if defined(__DJGPP__) || defined(WIN32)
+#if defined(__DJGPP__) || defined(WIN32) || defined(__CYGWIN__)
 #  define _unmask      unmask
 #  define _const4      const4
 #  define _const6      const6
diff --git a/pngget.c b/pngget.c
index b5df47b..e6375bf 100644
--- a/pngget.c
+++ b/pngget.c
@@ -1,7 +1,7 @@
 
 /* pngget.c - retrieval of values from info struct
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngmem.c b/pngmem.c
index 2b2bd52..9a5ab26 100644
--- a/pngmem.c
+++ b/pngmem.c
@@ -1,7 +1,7 @@
 
 /* pngmem.c - stub functions for memory allocation
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngpread.c b/pngpread.c
index 32dbca1..13fd413 100644
--- a/pngpread.c
+++ b/pngpread.c
@@ -1,7 +1,7 @@
 
 /* pngpread.c - read a png file in push mode
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngread.c b/pngread.c
index 1c4e33c..fea208c 100644
--- a/pngread.c
+++ b/pngread.c
@@ -1,7 +1,7 @@
 
 /* pngread.c - read a PNG file
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -697,7 +697,7 @@
  * not called png_set_interlace_handling(), the display_row buffer will
  * be ignored, so pass NULL to it.
  *
- * [*] png_handle_alpha() does not exist yet, as of libpng version 1.0.8beta3
+ * [*] png_handle_alpha() does not exist yet, as of libpng version 1.0.8beta4
  */
 
 void PNGAPI
@@ -746,7 +746,7 @@
  * only call this function once.  If you desire to have an image for
  * each pass of a interlaced image, use png_read_rows() instead.
  *
- * [*] png_handle_alpha() does not exist yet, as of libpng version 1.0.8beta3
+ * [*] png_handle_alpha() does not exist yet, as of libpng version 1.0.8beta4
  */
 void PNGAPI
 png_read_image(png_structp png_ptr, png_bytepp image)
diff --git a/pngrio.c b/pngrio.c
index 7dbee10..82c0c45 100644
--- a/pngrio.c
+++ b/pngrio.c
@@ -1,7 +1,7 @@
 
 /* pngrio.c - functions for data input
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngrtran.c b/pngrtran.c
index 52b73aa..3e53fa8 100644
--- a/pngrtran.c
+++ b/pngrtran.c
@@ -1,7 +1,7 @@
 
 /* pngrtran.c - transforms the data in a row for PNG readers
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngrutil.c b/pngrutil.c
index 6551124..45e1755 100644
--- a/pngrutil.c
+++ b/pngrutil.c
@@ -1,7 +1,7 @@
 
 /* pngrutil.c - utilities to read a PNG file
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngset.c b/pngset.c
index fc236eb..72d5227 100644
--- a/pngset.c
+++ b/pngset.c
@@ -1,7 +1,7 @@
 
 /* pngset.c - storage of image information into info struct
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngtest.c b/pngtest.c
index aa235db..2694094 100644
--- a/pngtest.c
+++ b/pngtest.c
@@ -1,7 +1,7 @@
 
 /* pngtest.c - a simple test program to test libpng
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -1435,4 +1435,4 @@
 }
 
 /* Generate a compiler error if there is an old png.h in the search path. */
-typedef version_1_0_8beta3 your_png_h_is_not_version_1_0_8beta3;
+typedef version_1_0_8beta4 your_png_h_is_not_version_1_0_8beta4;
diff --git a/pngtrans.c b/pngtrans.c
index ae90832..fe7c49f 100644
--- a/pngtrans.c
+++ b/pngtrans.c
@@ -1,7 +1,7 @@
 
 /* pngtrans.c - transforms the data in a row (used by both readers and writers)
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngvcrd.c b/pngvcrd.c
index 639c378..e6d5339 100644
--- a/pngvcrd.c
+++ b/pngvcrd.c
@@ -2,7 +2,7 @@
  *
  * For Intel x86 CPU and Microsoft Visual C++ compiler
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * Copyright (c) 1998, Intel Corporation
diff --git a/pngwio.c b/pngwio.c
index 22f8bd4..3d5bc52 100644
--- a/pngwio.c
+++ b/pngwio.c
@@ -1,7 +1,7 @@
 
 /* pngwio.c - functions for data output
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngwrite.c b/pngwrite.c
index dc1246e..97d0ff9 100644
--- a/pngwrite.c
+++ b/pngwrite.c
@@ -1,7 +1,7 @@
 
 /* pngwrite.c - general routines to write a PNG file
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngwtran.c b/pngwtran.c
index 674c0ad..c0efa9e 100644
--- a/pngwtran.c
+++ b/pngwtran.c
@@ -1,7 +1,7 @@
 
 /* pngwtran.c - transforms the data in a row for PNG writers
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngwutil.c b/pngwutil.c
index 1640a2d..b41cc09 100644
--- a/pngwutil.c
+++ b/pngwutil.c
@@ -1,7 +1,7 @@
 
 /* pngwutil.c - utilities to write a PNG file
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/scripts/makefile.beos b/scripts/makefile.beos
index 3163354..46d4623 100644
--- a/scripts/makefile.beos
+++ b/scripts/makefile.beos
@@ -31,7 +31,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
 # have to change it.
 PNGMAJ = 2
-PNGMIN = 1.0.8beta3
+PNGMIN = 1.0.8beta4
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # where make install puts libpng.a, libpng.so*, and png.h
diff --git a/scripts/makefile.cygwin b/scripts/makefile.cygwin
new file mode 100644
index 0000000..463a6f7
--- /dev/null
+++ b/scripts/makefile.cygwin
@@ -0,0 +1,165 @@
+# makefile for cygwin on x86
+#   builds both dll (with import lib) and static lib versions
+#   of the library, and builds two copies of pngtest: one
+#   statically linked and one dynamically linked.
+#   
+#   based on makefile for linux-elf w/mmx by:
+# Copyright (C) 1998-2000 Greg Roelofs
+# Copyright (C) 1996, 1997 Andreas Dilger
+# For conditions of distribution and use, see copyright notice in png.h
+
+# To enable assembler optimizations, add '-DPNG_USE_PNGGCCRD' to
+# $CFLAGS, and include pnggccrd.o in $OBJS, below.
+
+CC=gcc
+
+# where "make install" puts libpng.a, libpng.so*, png.h and pngconf.h
+prefix=/usr
+
+# Where the zlib library and include files are located
+ZLIBLIB=${prefix}/lib
+ZLIBINC=${prefix}/include
+#ZLIBLIB=../zlib
+#ZLIBINC=../zlib
+
+SHAREDLIB=libpng.dll
+STATLIB=libpng.a
+IMPLIB=libpng.dll.a
+SHAREDDEF=libpng.def
+LIBS=$(SHAREDLIB) $(STATLIB)
+EXE=.exe
+
+ALIGN=
+# for i386:
+#ALIGN=-malign-loops=2 -malign-functions=2
+
+WARNMORE=-Wwrite-strings -Wpointer-arith -Wshadow \
+	-Wmissing-declarations -Wtraditional -Wcast-align \
+	-Wstrict-prototypes -Wmissing-prototypes #-Wconversion
+
+#CFLAGS=-DPNG_USE_PNGGCCRD -I$(ZLIBINC) -Wall -O3 $(ALIGN) -funroll-loops \
+#        -fomit-frame-pointer  # $(WARNMORE) -g -DPNG_DEBUG=5
+CFLAGS=-I$(ZLIBINC) -Wall -O3 $(ALIGN) -funroll-loops \
+        -fomit-frame-pointer 
+
+LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lz
+LDSHARED=gcc -shared -Wl,--enable-auto-image-base
+LDEXTRA=-Wl,--out-implib=$(IMPLIB) $(SHAREDDEF)
+
+RANLIB=ranlib
+#RANLIB=echo
+
+# read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
+# have to change it.
+PNGMAJ = 2
+PNGMIN = 1.0.8beta3
+PNGVER = $(PNGMAJ).$(PNGMIN)
+
+INCPATH=$(prefix)/include
+LIBPATH=$(prefix)/lib
+BINPATH=$(prefix)/bin
+MANPATH=$(prefix)/man
+MAN3PATH=$(MANPATH)/man3
+DOCPATH=$(prefix)/doc/libpng-$(PNGMIN)
+CYGDOCPATH=$(prefix)/doc/Cygwin
+
+OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o \
+	pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \
+	pngwtran.o pngmem.o pngerror.o pngpread.o # pnggccrd.o
+
+OBJSDLL = $(OBJS:.o=.pic.o)
+
+.SUFFIXES:      .c .o .pic.o
+
+%.o : %.c
+	$(CC) -c $(CFLAGS) -DPNG_STATIC -DZLIB_STATIC -o $@ $<
+
+%.pic.o : %.c
+	$(CC) -c $(CFLAGS) -DPNG_BUILD_DLL -o $@ $<
+
+all: $(SHAREDLIB) $(STATLIB) pngtest$(EXE) pngtest-stat$(EXE)
+
+pnggccrd.o:	png.h pngconf.h pngasmrd.h
+	@echo ""
+	@echo '    You can ignore the single "control reaches end of non-void function"'
+	@echo '    warning and multiple "<variable> defined but not used" warnings:'
+	@echo ""
+	$(CC) -c $(CFLAGS) -DPNG_STATIC -DZLIB_STATIC -o $@ $*.c
+
+pnggccrd.pic.o:	png.h pngconf.h pngasmrd.h
+	@echo ""
+	@echo '    You can ignore the single "control reaches end of non-void function"'
+	@echo '    warning and multiple "<variable> defined but not used" warnings:'
+	@echo ""
+	$(CC) -c $(CFLAGS) -o $@ pnggccrd.c
+
+$(STATLIB): $(OBJS)
+	ar rc $@ $(OBJS)
+	$(RANLIB) $@
+
+$(SHAREDDEF): msvc/png32ms.def
+	cat $< | sed -e '1{G;s/^\(.*\)\(\n\)/EXPORTS/;};2,/^EXPORTS/d' > $@
+
+$(SHAREDLIB): $(OBJSDLL) $(SHAREDDEF)
+	$(LDSHARED) -o $@ $(LDEXTRA) $(OBJSDLL) -L. -L$(ZLIBLIB) -lz 
+
+pngtest$(EXE): pngtest.pic.o $(SHAREDLIB)
+	$(CC) $(CFLAGS) $< $(LDFLAGS) -o $@
+
+pngtest-stat$(EXE): pngtest.o $(STATLIB)
+	$(CC) -static $(CFLAGS) $< $(LDFLAGS) -o $@
+
+pngtest.pic.o: pngtest.c
+	$(CC) $(CFLAGS) -c $< -o $@
+
+pngtest.o: pngtest.c
+	$(CC) $(CFLAGS) -DPNG_STATIC -DZLIB_STATIC -c $< -o $@
+
+test: test-dll test-stat
+
+test-stat: pngtest-stat$(EXE)
+	./pngtest-stat
+
+test-dll: pngtest$(EXE)
+	./pngtest
+
+install: $(STATLIB) $(SHAREDLIB)
+	-@if [ ! -d $(INCPATH)  ]; then mkdir -p $(INCPATH); fi
+	-@if [ ! -d $(LIBPATH) ]; then mkdir -p $(LIBPATH); fi
+	-@if [ ! -d $(BINPATH) ]; then mkdir -p $(BINPATH); fi
+	-@if [ ! -d $(MAN3PATH) ]; then mkdir -p $(MAN3PATH); fi
+	-@if [ ! -d $(DOCPATH) ]; then mkdir -p $(DOCPATH); fi
+	install -m 644 png.h pngconf.h $(INCPATH)
+	install -m 755 $(STATLIB) $(IMPLIB) $(LIBPATH)
+	install -s -m 755 $(SHAREDLIB) $(BINPATH)
+	install -m 644 $(DOCS) $(DOCPATH)
+	install -m 644 libpngpf.3 libpng.3 $(MAN3PATH)
+
+clean:
+	/bin/rm -f *.pic.o *.o $(STATLIB) $(IMPLIB) $(SHAREDLIB) \
+	pngtest-stat$(EXE) pngtest$(EXE) pngout.png $(SHAREDDEF)
+
+DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
+writelock:
+	chmod a-w *.[ch35] $(DOCS) scripts/*
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+png.o png.pic.o:		png.h pngconf.h png.c pngasmrd.h
+pngerror.o pngerror.pic.o:	png.h pngconf.h pngerror.c
+pngrio.o pngrio.pic.o:		png.h pngconf.h pngrio.c
+pngwio.o pngwio.pic.o:		png.h pngconf.h pngwio.c
+pngmem.o pngmem.pic.o:		png.h pngconf.h pngmem.c
+pngset.o pngset.pic.o:		png.h pngconf.h pngset.c
+pngget.o pngget.pic.o:		png.h pngconf.h pngget.c
+pngread.o pngread.pic.o:	png.h pngconf.h pngread.c
+pngrtran.o pngrtran.pic.o:	png.h pngconf.h pngrtran.c
+pngrutil.o pngrutil.pic.o:	png.h pngconf.h pngrutil.c pngasmrd.h
+pngtrans.o pngtrans.pic.o:	png.h pngconf.h pngtrans.c
+pngwrite.o pngwrite.pic.o:	png.h pngconf.h pngwrite.c
+pngwtran.o pngwtran.pic.o:	png.h pngconf.h pngwtran.c
+pngwutil.o pngwutil.pic.o:	png.h pngconf.h pngwutil.c
+pngpread.o pngpread.pic.o:	png.h pngconf.h pngpread.c
+
+pngtest.o:			png.h pngconf.h pngtest.c
+pngtest-stat.o:			png.h pngconf.h pngtest.c
diff --git a/scripts/makefile.dec b/scripts/makefile.dec
index 20d4876..4d07518 100644
--- a/scripts/makefile.dec
+++ b/scripts/makefile.dec
@@ -14,7 +14,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
 # have to change it.
 PNGMAJ = 2
-PNGMIN = 1.0.8beta3
+PNGMIN = 1.0.8beta4
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 CC=cc
diff --git a/scripts/makefile.gcmmx b/scripts/makefile.gcmmx
index 3103fd8..87c8d91 100644
--- a/scripts/makefile.gcmmx
+++ b/scripts/makefile.gcmmx
@@ -3,6 +3,8 @@
 # Copyright 1998-2000 Greg Roelofs
 # For conditions of distribution and use, see copyright notice in png.h
 
+# CAUTION: Do not use this makefile with gcc versions 2.7.2.2 and earlier.
+
 CC=gcc
 
 # where "make install" puts libpng.a, libpng.so*, png.h and pngconf.h
@@ -34,7 +36,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
 # have to change it.
 PNGMAJ = 2
-PNGMIN = 1.0.8beta3
+PNGMIN = 1.0.8beta4
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 INCPATH=$(prefix)/include
diff --git a/scripts/makefile.linux b/scripts/makefile.linux
index 74f0163..ca7a465 100644
--- a/scripts/makefile.linux
+++ b/scripts/makefile.linux
@@ -34,7 +34,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
 # have to change it.
 PNGMAJ = 2
-PNGMIN = 1.0.8beta3
+PNGMIN = 1.0.8beta4
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 INCPATH=$(prefix)/include
diff --git a/scripts/makefile.sco b/scripts/makefile.sco
index d58f832..ec4b18a 100644
--- a/scripts/makefile.sco
+++ b/scripts/makefile.sco
@@ -25,7 +25,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
 # have to change it.
 PNGMAJ = 2
-PNGMIN = 1.0.8beta3
+PNGMIN = 1.0.8beta4
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 INCPATH=$(prefix)/include
diff --git a/scripts/makefile.sggcc b/scripts/makefile.sggcc
index cdc200f..6935884 100644
--- a/scripts/makefile.sggcc
+++ b/scripts/makefile.sggcc
@@ -19,8 +19,8 @@
 LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lz -lm
 LDSHARED=gcc -shared
 
-VER=1.0.8beta3
-LIBS=libpng.so.1.0.8beta3
+VER=1.0.8beta4
+LIBS=libpng.so.1.0.8beta4
 SHAREDLIB=libpng.so
 libdir=$(prefix)/lib32
 
diff --git a/scripts/makefile.solaris b/scripts/makefile.solaris
index 613c72d..7f47da3 100644
--- a/scripts/makefile.solaris
+++ b/scripts/makefile.solaris
@@ -31,7 +31,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
 # have to change it.
 PNGMAJ = 2
-PNGMIN = 1.0.8beta3
+PNGMIN = 1.0.8beta4
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 INCPATH=$(prefix)/include
diff --git a/scripts/pngdef.pas b/scripts/pngdef.pas
index 557c80b..ff073c1 100644
--- a/scripts/pngdef.pas
+++ b/scripts/pngdef.pas
@@ -5,7 +5,7 @@
 interface
 
 const
-  PNG_LIBPNG_VER_STRING = '1.0.8beta3';
+  PNG_LIBPNG_VER_STRING = '1.0.8beta4';
   PNG_LIBPNG_VER        =  10008;
 
 type