Imported from libpng-1.2.3rc5.tar
diff --git a/ANNOUNCE b/ANNOUNCE
index 60964e6..d70508e 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,5 +1,5 @@
 
-Libpng 1.2.3rc4 - May 3, 2002
+Libpng 1.2.3rc5 - May 11, 2002
 
 This is not intended to be a public release.  It will be replaced
 within a few weeks by a public version or by another test version.
@@ -35,12 +35,19 @@
 version 1.2.3rc3 [May 1, 2002]
   Revised prototype for png_default_flush()
   Remove old libpng.pc and libpngNN.pc before installing new ones.
-version 1.2.3rc4 [May 3, 2002]
+version 1.2.3rc4 [May 2, 2002]
   Typos in *.def files (png_default_read|write -> png_default_read|write_data)
   In makefiles, changed rm libpng.NN.pc to rm libpngNN.pc
   Added libpng-config and libpngNN-config and modified makefiles to install them.
   Changed $(MANPATH) to $(DESTDIR)$(MANPATH) in makefiles
   Added "Win32 DLL VB" configuration to projects/msvc/libpng.dsp
+version 1.2.3rc5 [May 11, 2002]
+  Changed "error" and "message" in prototypes to "error_message" and
+    "warning_message" to avoid namespace conflict.
+  Revised 15 makefiles to build libpng-config from libpng-config-*.in
+  Once more restored png_zalloc and png_zfree to nonexported form.
+  Restored png_default_read|write_data, png_default_flush, png_read_fill_buffer
+    to nonexported form, but with PNGAPI, and removed them from module def files.
 
 Send comments/corrections/commendations to
 png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu
diff --git a/CHANGES b/CHANGES
index 2db5724..f7158b6 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1100,12 +1100,19 @@
 version 1.2.3rc3 [May 1, 2002]
   Revised prototype for png_default_flush()
   Remove old libpng.pc and libpngNN.pc before installing new ones.
-version 1.2.3rc4 [May 3, 2002]
+version 1.2.3rc4 [May 2, 2002]
   Typos in *.def files (png_default_read|write -> png_default_read|write_data)
   In makefiles, changed rm libpng.NN.pc to rm libpngNN.pc
   Added libpng-config and libpngNN-config and modified makefiles to install them.
   Changed $(MANPATH) to $(DESTDIR)$(MANPATH) in makefiles
   Added "Win32 DLL VB" configuration to projects/msvc/libpng.dsp
+version 1.2.3rc5 [May 11, 2002]
+  Changed "error" and "message" in prototypes to "error_message" and
+    "warning_message" to avoid namespace conflict.
+  Revised 15 makefiles to build libpng-config from libpng-config-*.in
+  Once more restored png_zalloc and png_zfree to regular nonexported form.
+  Restored png_default_read|write_data, png_default_flush, png_read_fill_buffer
+    to nonexported form, but with PNGAPI, and removed them from module def files.
 
 Send comments/corrections/commendations to
 png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu
diff --git a/INSTALL b/INSTALL
index c101bc7..791c767 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,5 +1,5 @@
 
-Installing libpng version 1.2.3rc4 - May 3, 2002
+Installing libpng version 1.2.3rc5 - May 11, 2002
 
 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.2.3rc4" or "lpng109" and "zlib-1.1.3"
+might be called "libpng-1.2.3rc5" or "lpng109" and "zlib-1.1.3"
 or "zlib113") so that you have directories called "zlib" and "libpng".
 
 Your directory structure should look like this:
@@ -64,8 +64,8 @@
 include
 
  makefile.std      =>  Generic UNIX makefile (cc, creates static libpng.a)
- makefile.linux    =>  Linux/ELF makefile (gcc, creates libpng12.so.0.1.2.3rc4)
- makefile.gcmmx    =>  Linux/ELF makefile (gcc, creates libpng12.so.0.1.2.3rc4,
+ makefile.linux    =>  Linux/ELF makefile (gcc, creates libpng12.so.0.1.2.3rc5)
+ makefile.gcmmx    =>  Linux/ELF makefile (gcc, creates libpng12.so.0.1.2.3rc5,
                        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
@@ -86,10 +86,10 @@
  makefile.ne0bsd  =>  NetBSD/cc makefile, uses PNGGCCRD, makes libpng0.so
  makefile.openbsd  =>  OpenBSD makefile
  makefile.sgi      =>  Silicon Graphics IRIX makefile (cc, creates static lib)
- makefile.sggcc    =>  Silicon Graphics (gcc, creates libpng12.so.0.1.2.3rc4)
+ makefile.sggcc    =>  Silicon Graphics (gcc, creates libpng12.so.0.1.2.3rc5)
  makefile.sunos    =>  Sun makefile
- makefile.solaris  =>  Solaris 2.X makefile (gcc, creates libpng12.so.0.1.2.3rc4)
- makefile.so9      =>  Solaris 9 makefile (gcc, creates libpng12.so.0.1.2.3rc4)
+ makefile.solaris  =>  Solaris 2.X makefile (gcc, creates libpng12.so.0.1.2.3rc5)
+ makefile.so9      =>  Solaris 9 makefile (gcc, creates libpng12.so.0.1.2.3rc5)
  makefile.32sunu   =>  Sun Ultra 32-bit makefile
  makefile.64sunu   =>  Sun Ultra 64-bit makefile
  makefile.sco      =>  For SCO OSr5  ELF and Unixware 7 with Native cc
diff --git a/KNOWNBUG b/KNOWNBUG
index ec5af30..258ac12 100644
--- a/KNOWNBUG
+++ b/KNOWNBUG
@@ -1,5 +1,5 @@
 
-Known bugs in libpng version 1.2.3rc4
+Known bugs in libpng version 1.2.3rc5
 
 1. April 22, 2001: pnggccrd.c has been reported to crash on NetBSD when
    reading interlaced PNG files, when assembler code is enabled.
diff --git a/LICENSE b/LICENSE
index 53783e3..dd306b9 100644
--- a/LICENSE
+++ b/LICENSE
@@ -8,7 +8,7 @@
 If you modify libpng you may insert additional notices immediately following
 this sentence.
 
-libpng versions 1.0.7, July 1, 2000, through 1.2.3rc4, May 3, 2002, are
+libpng versions 1.0.7, July 1, 2000, through 1.2.3rc5, May 11, 2002, are
 Copyright (c) 2000-2002 Glenn Randers-Pehrson
 and are distributed according to the same disclaimer and license as libpng-1.0.6
 with the following individuals added to the list of Contributing Authors
@@ -99,4 +99,4 @@
 
 Glenn Randers-Pehrson
 randeg@alum.rpi.edu
-May 3, 2002
+May 11, 2002
diff --git a/README b/README
index 43141e4..0374bf0 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-README for libpng 1.2.3rc4 - May 3, 2002 (shared library 2.1)
+README for libpng 1.2.3rc5 - May 11, 2002 (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.
@@ -187,9 +187,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 libpng12.so.0.1.2.3rc4)
+                            (gcc, creates libpng12.so.0.1.2.3rc5)
        makefile.gcmmx   =>  Linux/ELF makefile (gcc, creates
-                            libpng12.so.0.1.2.3rc4, uses assembler code
+                            libpng12.so.0.1.2.3rc5, 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
@@ -210,12 +210,12 @@
        makefile.ne0bsd =>  NetBSD/cc makefile, PNGGCCRD, makes libpng0.so
        makefile.openbsd =>  OpenBSD makefile
        makefile.sgi     =>  Silicon Graphics IRIX (cc, creates static lib)
-       makefile.sggcc   =>  Silicon Graphics (gcc, creates libpng12.so.0.1.2.3rc4)
+       makefile.sggcc   =>  Silicon Graphics (gcc, creates libpng12.so.0.1.2.3rc5)
        makefile.sunos   =>  Sun makefile
        makefile.solaris =>  Solaris 2.X makefile
-                            (gcc, creates libpng12.so.0.1.2.3rc4)
+                            (gcc, creates libpng12.so.0.1.2.3rc5)
        makefile.so9     =>  Solaris 9 makefile
-                            (gcc, creates libpng12.so.0.1.2.3rc4)
+                            (gcc, creates libpng12.so.0.1.2.3rc5)
        makefile.32sunu  =>  Sun Ultra 32-bit makefile
        makefile.64sunu  =>  Sun Ultra 64-bit makefile
        makefile.sco     =>  For SCO OSr5  ELF and Unixware 7 with Native cc
diff --git a/Y2KINFO b/Y2KINFO
index 4c26cc6..f0a7493 100644
--- a/Y2KINFO
+++ b/Y2KINFO
@@ -1,13 +1,13 @@
    Y2K compliance in libpng:
    =========================
 
-      May 3, 2002
+      May 11, 2002
 
       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.2.3rc4 are Y2K compliant.  It is my belief that earlier
+      upward through 1.2.3rc5 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 909705f..5b99d75 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 echo "
-  There is no \"configure\" script for Libpng-1.2.3rc4.  Instead, please
+  There is no \"configure\" script for Libpng-1.2.3rc5.  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 a42c5a1..fcf1d25 100644
--- a/libpng.3
+++ b/libpng.3
@@ -1,6 +1,6 @@
-.TH LIBPNG 3 "May 3, 2002"
+.TH LIBPNG 3 "May 11, 2002"
 .SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.2.3rc4
+libpng \- Portable Network Graphics (PNG) Reference Library 1.2.3rc5
 .SH SYNOPSIS
 \fI\fB
 
@@ -787,7 +787,7 @@
 .SH LIBPNG.TXT
 libpng.txt - A description on how to use and modify libpng
 
- libpng version 1.2.3rc4 - May 3, 2002
+ libpng version 1.2.3rc5 - May 11, 2002
  Updated and distributed by Glenn Randers-Pehrson
  <randeg@alum.rpi.edu>
  Copyright (c) 1998-2002 Glenn Randers-Pehrson
@@ -3135,9 +3135,9 @@
 The replacement I/O functions must have prototypes as follows:
 
     void user_read_data(png_structp png_ptr,
-        png_bytep data, png_uint_32 length);
+        png_bytep data, png_size_t length);
     void user_write_data(png_structp png_ptr,
-        png_bytep data, png_uint_32 length);
+        png_bytep data, png_size_t length);
     void user_flush_data(png_structp png_ptr);
 
 Supplying NULL for the read, write, or flush functions sets them back
@@ -3638,13 +3638,13 @@
 
 .SH IX. Y2K Compliance in libpng
 
-May 3, 2002
+May 11, 2002
 
 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.2.3rc4 are Y2K compliant.  It is my belief that earlier
+upward through 1.2.3rc5 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
@@ -3773,7 +3773,7 @@
  1.2.2rc1            12    10202  12.so.0.1.2.2rc1
  1.0.13              10    10013  10.so.0.1.0.13
  1.2.2               12    10202  12.so.0.1.2.2
- 1.2.3rc1-4          12    10203  12.so.0.1.2.3rc1-4
+ 1.2.3rc1-5          12    10203  12.so.0.1.2.3rc1-5
 
 Henceforth the source version will match the shared-library minor
 and patch numbers; the shared-library major version number will be
@@ -3831,7 +3831,7 @@
 
 Thanks to Frank J. T. Wojcik for helping with the documentation.
 
-Libpng version 1.2.3rc4 - May 3, 2002:
+Libpng version 1.2.3rc5 - May 11, 2002:
 Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
 Currently maintained by Glenn Randers-Pehrson (randeg@alum.rpi.edu).
 
@@ -3848,7 +3848,7 @@
 If you modify libpng you may insert additional notices immediately following
 this sentence.
 
-libpng versions 1.0.7, July 1, 2000, through 1.2.3rc4, May 3, 2002, are
+libpng versions 1.0.7, July 1, 2000, through 1.2.3rc5, May 11, 2002, are
 Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are
 distributed according to the same disclaimer and license as libpng-1.0.6
 with the following individuals added to the list of Contributing Authors
@@ -3940,7 +3940,7 @@
 
 Glenn Randers-Pehrson
 randeg@alum.rpi.edu
-May 3, 2002
+May 11, 2002
 
 .\" end of man page
 
diff --git a/libpng.txt b/libpng.txt
index 9fa32a3..4ea4fa8 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.2.3rc4 - May 3, 2002
+ libpng version 1.2.3rc5 - May 11, 2002
  Updated and distributed by Glenn Randers-Pehrson
  <randeg@alum.rpi.edu>
  Copyright (c) 1998-2002 Glenn Randers-Pehrson
@@ -2348,9 +2348,9 @@
 The replacement I/O functions must have prototypes as follows:
 
     void user_read_data(png_structp png_ptr,
-        png_bytep data, png_uint_32 length);
+        png_bytep data, png_size_t length);
     void user_write_data(png_structp png_ptr,
-        png_bytep data, png_uint_32 length);
+        png_bytep data, png_size_t length);
     void user_flush_data(png_structp png_ptr);
 
 Supplying NULL for the read, write, or flush functions sets them back
@@ -2851,13 +2851,13 @@
 
 IX. Y2K Compliance in libpng
 
-May 3, 2002
+May 11, 2002
 
 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.2.3rc4 are Y2K compliant.  It is my belief that earlier
+upward through 1.2.3rc5 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 34d6914..85faadc 100644
--- a/libpngpf.3
+++ b/libpngpf.3
@@ -1,6 +1,6 @@
-.TH LIBPNGPF 3 "May 3, 2002"
+.TH LIBPNGPF 3 "May 11, 2002"
 .SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.2.3rc4
+libpng \- Portable Network Graphics (PNG) Reference Library 1.2.3rc5
 (private functions)
 .SH SYNOPSIS
 \fB#include <png.h>\fP
diff --git a/png.5 b/png.5
index 6262312..704952a 100644
--- a/png.5
+++ b/png.5
@@ -1,4 +1,4 @@
-.TH PNG 5 "May 3, 2002"
+.TH PNG 5 "May 11, 2002"
 .SH NAME
 png \- Portable Network Graphics (PNG) format
 .SH DESCRIPTION
diff --git a/png.c b/png.c
index 09c1ec7..188f687 100644
--- a/png.c
+++ b/png.c
@@ -1,7 +1,7 @@
 
 /* png.c - location for general purpose libpng functions
  *
- * libpng version 1.2.3rc4 - May 3, 2002
+ * libpng version 1.2.3rc5 - May 11, 2002
  * Copyright (c) 1998-2002 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_2_3rc4 Your_png_h_is_not_version_1_2_3rc4;
+typedef version_1_2_3rc5 Your_png_h_is_not_version_1_2_3rc5;
 
 /* 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 */
-const char png_libpng_ver[18] = "1.2.3rc4";
+const char png_libpng_ver[18] = "1.2.3rc5";
 
 /* png_sig was changed to a function in version 1.0.5c */
 /* Place to hold the signature string for a PNG file. */
@@ -663,7 +663,7 @@
 png_get_copyright(png_structp png_ptr)
 {
    if (png_ptr != NULL || png_ptr == NULL)  /* silence compiler warning */
-   return ((png_charp) "\n libpng version 1.2.3rc4 - May 3, 2002\n\
+   return ((png_charp) "\n libpng version 1.2.3rc5 - May 11, 2002\n\
    Copyright (c) 1998-2002 Glenn Randers-Pehrson\n\
    Copyright (c) 1996-1997 Andreas Dilger\n\
    Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.\n");
@@ -681,8 +681,8 @@
 {
    /* Version of *.c files used when building libpng */
    if(png_ptr != NULL) /* silence compiler warning about unused png_ptr */
-      return((png_charp) "1.2.3rc4");
-   return((png_charp) "1.2.3rc4");
+      return((png_charp) "1.2.3rc5");
+   return((png_charp) "1.2.3rc5");
 }
 
 png_charp PNGAPI
diff --git a/png.h b/png.h
index c7b5c8e..00c3bf7 100644
--- a/png.h
+++ b/png.h
@@ -1,6 +1,6 @@
 /* png.h - header file for PNG reference library
  *
- * libpng version 1.2.3rc4 - May 3, 2002
+ * libpng version 1.2.3rc5 - May 11, 2002
  * Copyright (c) 1998-2002 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.)
@@ -8,7 +8,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.2.3rc4 - May 3, 2002: Glenn
+ *  libpng versions 0.97, January 1998, through 1.2.3rc5 - May 11, 2002: Glenn
  *  See also "Contributing Authors", below.
  *
  * Note about libpng version numbers:
@@ -86,7 +86,7 @@
  *    1.2.2rc1                12    10202  12.so.0.1.2.2rc1
  *    1.0.13                  10    10013  10.so.0.1.0.13
  *    1.2.2                   12    10202  12.so.0.1.2.2
- *    1.2.3rc1-4              12    10203  12.so.0.1.2.3rc1-4
+ *    1.2.3rc1-5              12    10203  12.so.0.1.2.3rc1-5
  *
  *    Henceforth the source version will match the shared-library major
  *    and minor numbers; the shared-library major version number will be
@@ -116,7 +116,7 @@
  * If you modify libpng you may insert additional notices immediately following
  * this sentence.
  *
- * libpng versions 1.0.7, July 1, 2000, through 1.2.3rc4, May 3, 2002, are
+ * libpng versions 1.0.7, July 1, 2000, through 1.2.3rc5, May 11, 2002, are
  * Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are
  * distributed according to the same disclaimer and license as libpng-1.0.6
  * with the following individuals added to the list of Contributing Authors
@@ -221,13 +221,13 @@
  * Y2K compliance in libpng:
  * =========================
  *
- *    May 3, 2002
+ *    May 11, 2002
  *
  *    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.2.3rc4 are Y2K compliant.  It is my belief that earlier
+ *    upward through 1.2.3rc5 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
@@ -283,7 +283,7 @@
  */
 
 /* Version information for png.h - this should match the version in png.c */
-#define PNG_LIBPNG_VER_STRING "1.2.3rc4"
+#define PNG_LIBPNG_VER_STRING "1.2.3rc5"
 
 #define PNG_LIBPNG_VER_SONUM   0
 #define PNG_LIBPNG_VER_DLLNUM  %DLLNUM%
@@ -295,7 +295,7 @@
 /* This should match the numeric part of the final component of
  * PNG_LIBPNG_VER_STRING, omitting any leading zero: */
 
-#define PNG_LIBPNG_VER_BUILD  4
+#define PNG_LIBPNG_VER_BUILD  5
 
 #define PNG_LIBPNG_BUILD_ALPHA    1
 #define PNG_LIBPNG_BUILD_BETA     2
@@ -1263,9 +1263,9 @@
 
 
 /* This prevents a compiler error in png.c if png.c and png.h are both at
-   version 1.2.3rc4
+   version 1.2.3rc5
  */
-typedef png_structp version_1_2_3rc4;
+typedef png_structp version_1_2_3rc5;
 
 typedef png_struct FAR * FAR * png_structpp;
 
@@ -1736,22 +1736,10 @@
 extern PNG_EXPORT(void,png_set_write_fn) PNGARG((png_structp png_ptr,
    png_voidp io_ptr, png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn));
 
-extern PNG_EXPORT(void,png_default_write_data) PNGARG((png_structp png_ptr,
-   png_bytep data, png_size_t length));
-
-#if defined(PNG_WRITE_FLUSH_SUPPORTED)
-#if !defined(PNG_NO_STDIO)
-PNG_EXPORT(void,png_default_flush) PNGARG((png_structp png_ptr));
-#endif
-#endif
-
 /* Replace the default data input function with a user supplied one. */
 extern PNG_EXPORT(void,png_set_read_fn) PNGARG((png_structp png_ptr,
    png_voidp io_ptr, png_rw_ptr read_data_fn));
 
-extern PNG_EXPORT(void,png_default_read_data) PNGARG((png_structp png_ptr,
-   png_bytep data, png_size_t length));
-
 /* Return the user pointer associated with the I/O functions */
 extern PNG_EXPORT(png_voidp,png_get_io_ptr) PNGARG((png_structp png_ptr));
 
@@ -1829,13 +1817,6 @@
 /* frees a pointer allocated by png_malloc() */
 extern PNG_EXPORT(void,png_free) PNGARG((png_structp png_ptr, png_voidp ptr));
 
-/* Function to allocate memory for zlib. */
-extern PNG_EXPORT(voidpf,png_zalloc) PNGARG((voidpf png_ptr, uInt items,
-   uInt size));
-
-/* Function to free memory for zlib */
-extern PNG_EXPORT(void,png_zfree) PNGARG((voidpf png_ptr, voidpf ptr));
-
 /* Free data that was allocated internally */
 extern PNG_EXPORT(void,png_free_data) PNGARG((png_structp png_ptr,
    png_infop info_ptr, png_uint_32 free_me, int num));
@@ -1884,19 +1865,19 @@
 
 /* Fatal error in PNG image of libpng - can't continue */
 extern PNG_EXPORT(void,png_error) PNGARG((png_structp png_ptr,
-   png_const_charp error));
+   png_const_charp error_message));
 
 /* The same, but the chunk name is prepended to the error string. */
 extern PNG_EXPORT(void,png_chunk_error) PNGARG((png_structp png_ptr,
-   png_const_charp error));
+   png_const_charp error_message));
 
 /* Non-fatal error in libpng.  Can continue, but may have a problem. */
 extern PNG_EXPORT(void,png_warning) PNGARG((png_structp png_ptr,
-   png_const_charp message));
+   png_const_charp warning_message));
 
 /* Non-fatal error in libpng, chunk name is prepended to message. */
 extern PNG_EXPORT(void,png_chunk_warning) PNGARG((png_structp png_ptr,
-   png_const_charp message));
+   png_const_charp warning_message));
 
 /* The png_set_<chunk> functions are for storing values in the png_info_struct.
  * Similarly, the png_get_<chunk> calls are used to read values from the
@@ -2248,11 +2229,6 @@
    chunk_name));
 #endif
 
-#ifdef PNG_PROGRESSIVE_READ_SUPPORTED
-PNG_EXPORT(void,png_push_fill_buffer) PNGARG((png_structp png_ptr,
-   png_bytep buffer, png_size_t length));
-#endif
-
 /* Png_free_data() will turn off the "valid" flag for anything it frees.
    If you need to turn it off for a chunk that your application has freed,
    you can use png_set_invalid(png_ptr, info_ptr, PNG_INFO_CHNK); */
@@ -2411,7 +2387,7 @@
 /* Maintainer: Put new public prototypes here ^, in libpng.3, and project defs */
 
 #define PNG_HEADER_VERSION_STRING \
-   " libpng version 1.2.3rc4 - May 3, 2002 (header)\n"
+   " libpng version 1.2.3rc5 - May 11, 2002 (header)\n"
 
 #ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED
 /* With these routines we avoid an integer divide, which will be slower on
@@ -2680,6 +2656,32 @@
 PNG_EXTERN void png_info_destroy PNGARG((png_structp png_ptr,
    png_infop info_ptr));
 
+/* Function to allocate memory for zlib. */
+PNG_EXTERN voidpf png_zalloc PNGARG((voidpf png_ptr, uInt items, uInt size));
+
+/* Function to free memory for zlib */
+PNG_EXTERN void png_zfree PNGARG((voidpf png_ptr, voidpf ptr));
+
+/* Next four functions are used internally as callbacks.  PNGAPI is required
+ * but not PNG_EXPORT.  PNGAPI added at libpng version 1.2.3. */
+
+PNG_EXTERN void PNGAPI png_default_read_data PNGARG((png_structp png_ptr,
+   png_bytep data, png_size_t length));
+
+#ifdef PNG_PROGRESSIVE_READ_SUPPORTED
+PNG_EXTERN void PNGAPI png_push_fill_buffer PNGARG((png_structp png_ptr,
+   png_bytep buffer, png_size_t length));
+#endif
+
+PNG_EXTERN void PNGAPI png_default_write_data PNGARG((png_structp png_ptr,
+   png_bytep data, png_size_t length));
+
+#if defined(PNG_WRITE_FLUSH_SUPPORTED)
+#if !defined(PNG_NO_STDIO)
+PNG_EXTERN void PNGAPI png_default_flush PNGARG((png_structp png_ptr));
+#endif
+#endif
+
 /* Reset the CRC variable */
 PNG_EXTERN void png_reset_crc PNGARG((png_structp png_ptr));
 
diff --git a/pngasmrd.h b/pngasmrd.h
index 09ad3a3..a0404e7 100644
--- a/pngasmrd.h
+++ b/pngasmrd.h
@@ -1,6 +1,6 @@
 /* pngasmrd.h - assembler version of utilities to read a PNG file
  *
- * libpng 1.2.3rc4 - May 3, 2002
+ * libpng 1.2.3rc5 - May 11, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 2002 Glenn Randers-Pehrson
  *
diff --git a/pngconf.h b/pngconf.h
index d8ade57..ee9ab52 100644
--- a/pngconf.h
+++ b/pngconf.h
@@ -1,6 +1,6 @@
 /* pngconf.h - machine configurable file for libpng
  *
- * libpng 1.2.3rc4 - May 3, 2002
+ * libpng 1.2.3rc5 - May 11, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -99,9 +99,10 @@
  * CYGWIN (2002-01-20): The preceding is now obsolete. With the advent
  *   of auto-import in binutils, we no longer need to worry about 
  *   __declspec(dllexport) / __declspec(dllimport) and friends.  Therefore,
- *   we don't need to worry about PNG_STATIC or ALL_STATIC.  However, we
- *   DO need to worry about PNG_BUILD_DLL because that changes some defaults
- *   such as CONSOLE_IO.
+ *   we don't need to worry about PNG_STATIC or ALL_STATIC when it comes
+ *   to __declspec() stuff.  However, we DO need to worry about 
+ *   PNG_BUILD_DLL and PNG_STATIC because those change some defaults
+ *   such as CONSOLE_IO and whether GLOBAL_ARRAYS are allowed.
  */
 #if defined(__CYGWIN__)
 #  if defined(ALL_STATIC)
diff --git a/pngerror.c b/pngerror.c
index d0287af..6cfb86d 100644
--- a/pngerror.c
+++ b/pngerror.c
@@ -1,7 +1,7 @@
 
 /* pngerror.c - stub functions for i/o and memory allocation
  *
- * libpng 1.2.3rc4 - May 3, 2002
+ * libpng 1.2.3rc5 - May 11, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -18,10 +18,10 @@
 
 static void /* PRIVATE */
 png_default_error PNGARG((png_structp png_ptr,
-                                      png_const_charp message));
+  png_const_charp error_message));
 static void /* PRIVATE */
 png_default_warning PNGARG((png_structp png_ptr,
-                                        png_const_charp message));
+  png_const_charp warning_message));
 
 /* This function is called whenever there is a fatal error.  This function
  * should not be changed.  If there is a need to handle errors differently,
@@ -29,28 +29,28 @@
  * to replace the error function at run-time.
  */
 void PNGAPI
-png_error(png_structp png_ptr, png_const_charp message)
+png_error(png_structp png_ptr, png_const_charp error_message)
 {
 #ifdef PNG_ERROR_NUMBERS_SUPPORTED
    char msg[16];
    if (png_ptr->flags&(PNG_FLAG_STRIP_ERROR_NUMBERS|PNG_FLAG_STRIP_ERROR_TEXT))
    {
      int offset = 0;
-     if (*message == '#')
+     if (*error_message == '#')
      {
          for (offset=1; offset<15; offset++)
-            if (*(message+offset) == ' ')
+            if (*(error_message+offset) == ' ')
                 break;
          if (png_ptr->flags&PNG_FLAG_STRIP_ERROR_TEXT)
          {
             int i;
             for (i=0; i<offset-1; i++)
-               msg[i]=message[i+1];
+               msg[i]=error_message[i+1];
             msg[i]='\0';
-            message=msg;
+            error_message=msg;
          }
          else
-            message+=offset;
+            error_message+=offset;
      }
      else
      {
@@ -58,17 +58,17 @@
          {
             msg[0]='0';        
             msg[1]='\0';
-            message=msg;
+            error_message=msg;
          }
      }
    }
 #endif
    if (png_ptr->error_fn != NULL)
-      (*(png_ptr->error_fn))(png_ptr, message);
+      (*(png_ptr->error_fn))(png_ptr, error_message);
 
    /* if the following returns or doesn't exist, use the default function,
       which will not return */
-   png_default_error(png_ptr, message);
+   png_default_error(png_ptr, error_message);
 }
 
 /* This function is called whenever there is a non-fatal error.  This function
@@ -77,27 +77,28 @@
  * png_set_error_fn() to replace the warning function at run-time.
  */
 void PNGAPI
-png_warning(png_structp png_ptr, png_const_charp message)
+png_warning(png_structp png_ptr, png_const_charp warning_message)
 {
      int offset = 0;
 #ifdef PNG_ERROR_NUMBERS_SUPPORTED
    if (png_ptr->flags&(PNG_FLAG_STRIP_ERROR_NUMBERS|PNG_FLAG_STRIP_ERROR_TEXT))
 #endif
    {
-     if (*message == '#')
+     if (*warning_message == '#')
      {
          for (offset=1; offset<15; offset++)
-            if (*(message+offset) == ' ')
+            if (*(warning_message+offset) == ' ')
                 break;
      }
    }
    if (png_ptr->warning_fn != NULL)
-      (*(png_ptr->warning_fn))(png_ptr, (png_const_charp)(message+offset));
+      (*(png_ptr->warning_fn))(png_ptr, (png_const_charp)
+        (warning_message+offset));
    else
-      png_default_warning(png_ptr, (png_const_charp)(message+offset));
+      png_default_warning(png_ptr, (png_const_charp)(warning_message+offset));
 }
 
-/* These utilities are used internally to build an error message that relates
+/* These utilities are used internally to build a warning message that relates
  * to the current chunk.  The chunk name comes from png_ptr->chunk_name,
  * this is used to prefix the message.  The message is limited in length
  * to 63 bytes, the name characters are output as hex digits wrapped in []
@@ -110,7 +111,7 @@
 
 static void /* PRIVATE */
 png_format_buffer(png_structp png_ptr, png_charp buffer, png_const_charp
-   message)
+   error_message)
 {
    int iout = 0, iin = 0;
 
@@ -130,30 +131,30 @@
       }
    }
 
-   if (message == NULL)
+   if (error_message == NULL)
       buffer[iout] = 0;
    else
    {
       buffer[iout++] = ':';
       buffer[iout++] = ' ';
-      png_memcpy(buffer+iout, message, 64);
+      png_memcpy(buffer+iout, error_message, 64);
       buffer[iout+63] = 0;
    }
 }
 
 void PNGAPI
-png_chunk_error(png_structp png_ptr, png_const_charp message)
+png_chunk_error(png_structp png_ptr, png_const_charp error_message)
 {
    char msg[18+64];
-   png_format_buffer(png_ptr, msg, message);
+   png_format_buffer(png_ptr, msg, error_message);
    png_error(png_ptr, msg);
 }
 
 void PNGAPI
-png_chunk_warning(png_structp png_ptr, png_const_charp message)
+png_chunk_warning(png_structp png_ptr, png_const_charp warning_message)
 {
    char msg[18+64];
-   png_format_buffer(png_ptr, msg, message);
+   png_format_buffer(png_ptr, msg, warning_message);
    png_warning(png_ptr, msg);
 }
 
@@ -163,33 +164,34 @@
  * error function pointer in png_set_error_fn().
  */
 static void /* PRIVATE */
-png_default_error(png_structp png_ptr, png_const_charp message)
+png_default_error(png_structp png_ptr, png_const_charp error_message)
 {
 #ifndef PNG_NO_CONSOLE_IO
 #ifdef PNG_ERROR_NUMBERS_SUPPORTED
-   if (*message == '#')
+   if (*error_message == '#')
    {
      int offset;
      char error_number[16];
      for (offset=0; offset<15; offset++)
      {
-         error_number[offset] = *(message+offset+1);
-         if (*(message+offset) == ' ')
+         error_number[offset] = *(error_message+offset+1);
+         if (*(error_message+offset) == ' ')
              break;
      }
      if((offset > 1) && (offset < 15))
      {
        error_number[offset-1]='\0';
-       fprintf(stderr, "libpng error no. %s: %s\n", error_number, message+offset);
+       fprintf(stderr, "libpng error no. %s: %s\n", error_number,
+          error_message+offset);
      }
      else
-       fprintf(stderr, "libpng error: %s, offset=%d\n", message,offset);
+       fprintf(stderr, "libpng error: %s, offset=%d\n", error_message,offset);
    }
    else
 #endif
-   fprintf(stderr, "libpng error: %s\n", message);
+   fprintf(stderr, "libpng error: %s\n", error_message);
 #else
-   if (message)
+   if (error_message)
      /* make compiler happy */ ;
 #endif
 
@@ -216,34 +218,34 @@
  * not used, but it is passed in case it may be useful.
  */
 static void /* PRIVATE */
-png_default_warning(png_structp png_ptr, png_const_charp message)
+png_default_warning(png_structp png_ptr, png_const_charp warning_message)
 {
 #ifndef PNG_NO_CONSOLE_IO
 #  ifdef PNG_ERROR_NUMBERS_SUPPORTED
-   if (*message == '#')
+   if (*warning_message == '#')
    {
      int offset;
      char warning_number[16];
      for (offset=0; offset<15; offset++)
      {
-        warning_number[offset]=*(message+offset+1);
-        if (*(message+offset) == ' ')
+        warning_number[offset]=*(warning_message+offset+1);
+        if (*(warning_message+offset) == ' ')
             break;
      }
      if((offset > 1) && (offset < 15))
      {
        warning_number[offset-1]='\0';
        fprintf(stderr, "libpng warning no. %s: %s\n", warning_number,
-          message+offset);
+          warning_message+offset);
      }
      else
-       fprintf(stderr, "libpng warning: %s\n", message);
+       fprintf(stderr, "libpng warning: %s\n", warning_message);
    }
    else
 #  endif
-     fprintf(stderr, "libpng warning: %s\n", message);
+     fprintf(stderr, "libpng warning: %s\n", warning_message);
 #else
-   if (message)
+   if (warning_message)
      /* appease compiler */ ;
 #endif
    if (png_ptr)
diff --git a/pnggccrd.c b/pnggccrd.c
index 4d43887..2644df4 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.2.3rc4 - May 3, 2002
+ * libpng version 1.2.3rc5 - May 11, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * Copyright (c) 1998, Intel Corporation
diff --git a/pngget.c b/pngget.c
index cb95587..a8c8446 100644
--- a/pngget.c
+++ b/pngget.c
@@ -1,7 +1,7 @@
 
 /* pngget.c - retrieval of values from info struct
  *
- * libpng 1.2.3rc4 - May 3, 2002
+ * libpng 1.2.3rc5 - May 11, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngmem.c b/pngmem.c
index 9f4a464..ce1dd90 100644
--- a/pngmem.c
+++ b/pngmem.c
@@ -1,7 +1,7 @@
 
 /* pngmem.c - stub functions for memory allocation
  *
- * libpng 1.2.3rc4 - May 3, 2002
+ * libpng 1.2.3rc5 - May 11, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngpread.c b/pngpread.c
index 532f833..370705e 100644
--- a/pngpread.c
+++ b/pngpread.c
@@ -1,7 +1,7 @@
 
 /* pngpread.c - read a png file in push mode
  *
- * libpng 1.2.3rc4 - May 3, 2002
+ * libpng 1.2.3rc5 - May 11, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngread.c b/pngread.c
index efdcb59..b70ebdc 100644
--- a/pngread.c
+++ b/pngread.c
@@ -1,7 +1,7 @@
 
 /* pngread.c - read a PNG file
  *
- * libpng 1.2.3rc4 - May 3, 2002
+ * libpng 1.2.3rc5 - May 11, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -795,7 +795,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.2.3rc4
+ * [*] png_handle_alpha() does not exist yet, as of libpng version 1.2.3rc5
  */
 
 void PNGAPI
@@ -844,7 +844,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.2.3rc4
+ * [*] png_handle_alpha() does not exist yet, as of libpng version 1.2.3rc5
  */
 void PNGAPI
 png_read_image(png_structp png_ptr, png_bytepp image)
diff --git a/pngrio.c b/pngrio.c
index 34fbd37..8184902 100644
--- a/pngrio.c
+++ b/pngrio.c
@@ -1,7 +1,7 @@
 
 /* pngrio.c - functions for data input
  *
- * libpng 1.2.3rc4 - May 3, 2002
+ * libpng 1.2.3rc5 - May 11, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngrtran.c b/pngrtran.c
index 91db94a..e8136b0 100644
--- a/pngrtran.c
+++ b/pngrtran.c
@@ -1,7 +1,7 @@
 
 /* pngrtran.c - transforms the data in a row for PNG readers
  *
- * libpng 1.2.3rc4 - May 3, 2002
+ * libpng 1.2.3rc5 - May 11, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngrutil.c b/pngrutil.c
index 84d7767..cedb4a9 100644
--- a/pngrutil.c
+++ b/pngrutil.c
@@ -1,7 +1,7 @@
 
 /* pngrutil.c - utilities to read a PNG file
  *
- * libpng 1.2.3rc4 - May 3, 2002
+ * libpng 1.2.3rc5 - May 11, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngset.c b/pngset.c
index 5332741..98f1013 100644
--- a/pngset.c
+++ b/pngset.c
@@ -1,7 +1,7 @@
 
 /* pngset.c - storage of image information into info struct
  *
- * libpng 1.2.3rc4 - May 3, 2002
+ * libpng 1.2.3rc5 - May 11, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngtest.c b/pngtest.c
index 4b5e004..1c3ad41 100644
--- a/pngtest.c
+++ b/pngtest.c
@@ -1,7 +1,7 @@
 
 /* pngtest.c - a simple test program to test libpng
  *
- * libpng 1.2.3rc4 - May 3, 2002
+ * libpng 1.2.3rc5 - May 11, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -1512,4 +1512,4 @@
 }
 
 /* Generate a compiler error if there is an old png.h in the search path. */
-typedef version_1_2_3rc4 your_png_h_is_not_version_1_2_3rc4;
+typedef version_1_2_3rc5 your_png_h_is_not_version_1_2_3rc5;
diff --git a/pngtrans.c b/pngtrans.c
index 6a95c39..aeaaf84 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.2.3rc4 - May 3, 2002
+ * libpng 1.2.3rc5 - May 11, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngvcrd.c b/pngvcrd.c
index 05e3367..d64692d 100644
--- a/pngvcrd.c
+++ b/pngvcrd.c
@@ -2,7 +2,7 @@
  *
  * For Intel x86 CPU and Microsoft Visual C++ compiler
  *
- * libpng version 1.2.3rc4 - May 3, 2002
+ * libpng version 1.2.3rc5 - May 11, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * Copyright (c) 1998, Intel Corporation
diff --git a/pngwio.c b/pngwio.c
index 5737fc7..db364f0 100644
--- a/pngwio.c
+++ b/pngwio.c
@@ -1,7 +1,7 @@
 
 /* pngwio.c - functions for data output
  *
- * libpng 1.2.3rc4 - May 3, 2002
+ * libpng 1.2.3rc5 - May 11, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngwrite.c b/pngwrite.c
index 0638c09..9c68935 100644
--- a/pngwrite.c
+++ b/pngwrite.c
@@ -1,7 +1,7 @@
 
 /* pngwrite.c - general routines to write a PNG file
  *
- * libpng 1.2.3rc4 - May 3, 2002
+ * libpng 1.2.3rc5 - May 11, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngwtran.c b/pngwtran.c
index a4c59c3..8516b3e 100644
--- a/pngwtran.c
+++ b/pngwtran.c
@@ -1,7 +1,7 @@
 
 /* pngwtran.c - transforms the data in a row for PNG writers
  *
- * libpng 1.2.3rc4 - May 3, 2002
+ * libpng 1.2.3rc5 - May 11, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngwutil.c b/pngwutil.c
index b80527c..81b7e5a 100644
--- a/pngwutil.c
+++ b/pngwutil.c
@@ -1,7 +1,7 @@
 
 /* pngwutil.c - utilities to write a PNG file
  *
- * libpng 1.2.3rc4 - May 3, 2002
+ * libpng 1.2.3rc5 - May 11, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/projects/msvc/README.txt b/projects/msvc/README.txt
index 4871f16..3ce7a75 100644
--- a/projects/msvc/README.txt
+++ b/projects/msvc/README.txt
@@ -1,5 +1,5 @@
 Microsoft Developer Studio Build File, Format Version 6.00 for
-libpng 1.2.3rc4 (May 3, 2002) and zlib
+libpng 1.2.3rc5 (May 11, 2002) and zlib
 
 Copyright (C) 2000 Simon-Pierre Cadieux
 For conditions of distribution and use, see copyright notice in png.h
diff --git a/projects/msvc/png32ms.def b/projects/msvc/png32ms.def
index 3add00c..373a33b 100644
--- a/projects/msvc/png32ms.def
+++ b/projects/msvc/png32ms.def
@@ -6,7 +6,7 @@
 DESCRIPTION "PNG image compression library for Windows"
 
 EXPORTS
-;Version 1.2.3rc4
+;Version 1.2.3rc5
   png_build_grayscale_palette  @1
   png_check_sig        @2
   png_chunk_error      @3
@@ -213,10 +213,6 @@
   png_set_strip_error_numbers @193
 ; Added at version 1.2.2
   png_handle_as_unknown @194
-  png_zalloc @195
-  png_zfree @196
-; Added at version 1.2.3
-  png_default_read_data @197
-  png_default_write_data @198
-  png_default_flush @199
-  png_push_fill_buffer @200
+; Added at version 1.2.2 and deleted from 1.2.3
+; png_zalloc @195
+; png_zfree @196
diff --git a/projects/msvc/zlib.dsp b/projects/msvc/zlib.dsp
index e82d612..e5e5879 100644
--- a/projects/msvc/zlib.dsp
+++ b/projects/msvc/zlib.dsp
@@ -24,6 +24,7 @@
 !MESSAGE "zlib - Win32 DLL Debug ASM" (based on "Win32 (x86) Dynamic-Link Library")
 !MESSAGE "zlib - Win32 LIB" (based on "Win32 (x86) Static Library")
 !MESSAGE "zlib - Win32 LIB Debug" (based on "Win32 (x86) Static Library")
+!MESSAGE "zlib - Win32 DLL VB" (based on "Win32 (x86) Dynamic-Link Library")
 !MESSAGE 
 
 # Begin Project
@@ -193,6 +194,36 @@
 # ADD BASE LIB32 /nologo
 # ADD LIB32 /nologo
 
+!ELSEIF  "$(CFG)" == "zlib - Win32 DLL VB"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "zlib___Win32_DLL_VB"
+# PROP BASE Intermediate_Dir "zlib___Win32_DLL_VB"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir ".\win32\zlib\dll_vb"
+# PROP Intermediate_Dir ".\win32\zlib\dll_vb"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+CPP=cl.exe
+# ADD BASE CPP /nologo /MD /W3 /O1 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "ZLIB_DLL" /FD /c
+# ADD CPP /nologo /Gz /MD /W3 /O1 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "ZLIB_DLL" /FD /c
+MTL=midl.exe
+RSC=rc.exe
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 /nologo /dll /machine:I386
+# SUBTRACT BASE LINK32 /pdb:none
+# ADD LINK32 /nologo /dll /machine:I386 /out:".\win32\zlib\dll_vb/zlibvb.dll"
+# SUBTRACT LINK32 /pdb:none
+
 !ENDIF 
 
 # Begin Target
@@ -203,6 +234,7 @@
 # Name "zlib - Win32 DLL Debug ASM"
 # Name "zlib - Win32 LIB"
 # Name "zlib - Win32 LIB Debug"
+# Name "zlib - Win32 DLL VB"
 # Begin Group "Source Files"
 
 # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
@@ -246,6 +278,11 @@
 
 # PROP Exclude_From_Build 1
 
+!ELSEIF  "$(CFG)" == "zlib - Win32 DLL VB"
+
+# PROP BASE Exclude_From_Build 1
+# PROP Exclude_From_Build 1
+
 !ENDIF 
 
 # End Source File
@@ -312,6 +349,8 @@
 
 # PROP Exclude_From_Build 1
 
+!ELSEIF  "$(CFG)" == "zlib - Win32 DLL VB"
+
 !ENDIF 
 
 # End Source File
@@ -335,6 +374,8 @@
 
 # PROP Exclude_From_Build 1
 
+!ELSEIF  "$(CFG)" == "zlib - Win32 DLL VB"
+
 !ENDIF 
 
 # End Source File
diff --git a/projects/netware.txt b/projects/netware.txt
index cca1be3..2421050 100644
--- a/projects/netware.txt
+++ b/projects/netware.txt
@@ -1,6 +1,6 @@
 A set of project files is available for Netware.  Get
-libpng-1.2.3rc4-project-netware.zip from a libpng distribution
+libpng-1.2.3rc5-project-netware.zip from a libpng distribution
 site such as http://libpng.sourceforge.net
 
 Put the zip file in this directory (projects) and then run
-"unzip -a libpng-1.2.3rc4-project-netware.zip"
+"unzip -a libpng-1.2.3rc5-project-netware.zip"
diff --git a/projects/wince.txt b/projects/wince.txt
index 39e57aa..0cf3a32 100644
--- a/projects/wince.txt
+++ b/projects/wince.txt
@@ -1,6 +1,6 @@
 A set of project files is available for WinCE.  Get
-libpng-1.2.3rc4-project-wince.zip from a libpng distribution
+libpng-1.2.3rc5-project-wince.zip from a libpng distribution
 site such as http://libpng.sourceforge.net
 
 Put the zip file in this directory (projects) and then run
-"unzip -a libpng-1.2.3rc4-project-wince.zip"
+"unzip -a libpng-1.2.3rc5-project-wince.zip"
diff --git a/scripts/libpng-config b/scripts/libpng-config
index 8d34e5b..e69de29 100755
--- a/scripts/libpng-config
+++ b/scripts/libpng-config
@@ -1,92 +0,0 @@
-#! /bin/sh
-
-# libpng12-config
-# provides configuration info for libpng12.
-
-# Copyright (C) 2002 Glenn Randers-Pehrson
-# For conditions of distribution and use, see copyright notice in png.h
-
-# Modeled after libxml-config, fixed to handle --prefix properly.
-
-prefix=/usr/local
-exec_prefix=${prefix}
-includedir=${prefix}/include
-
-usage()
-{
-    cat <<EOF
-Usage: libpng12-config [OPTION] ...
-
-Known values for OPTION are:
-
-  --prefix=DIR		change libpng12 prefix [default $prefix]
-  --libs		print library linking information
-  --cflags		print compiler flags
-  --cppflags		print pre-processor flags
-  --ldflags		print loader flags
-  --help		display this help and exit
-  --version		output version information
-EOF
-
-    exit $1
-}
-
-if test $# -eq 0; then
-    usage 1
-fi
-
-cflags=false
-cppflags=false
-ldflags=false
-libs=false
-
-while test $# -gt 0; do
-    case "$1" in
-    -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
-    *) optarg= ;;
-    esac
-
-    case "$1" in
-    --prefix=*)
-	prefix=$optarg
-	exec_prefix=${prefix}
-	includedir=${prefix}/include
-	;;
-
-    --prefix)
-	echo $prefix
-	;;
-
-    --version)
-	echo 1.2.3rc4
-	exit 0
-	;;
-
-    --help)
-	usage 0
-	;;
-
-    --cflags)
-        ;;
-
-    --cppflags)
-       	echo -I${includedir}/libpng12
-       	;;
-
-    --libs)
-       	echo -lpng12
-        ;;
-
-    --ldflags)
-       	echo -L${exec_prefix}/lib
-       	;;
-
-    *)
-	usage
-	exit 1
-	;;
-    esac
-    shift
-done
-
-exit 0
diff --git a/scripts/libpng-config-body.in b/scripts/libpng-config-body.in
new file mode 100644
index 0000000..ad3697f
--- /dev/null
+++ b/scripts/libpng-config-body.in
@@ -0,0 +1,65 @@
+
+usage()
+{
+    cat <<EOF
+Usage: libpng-config [OPTION] ...
+
+Known values for OPTION are:
+
+  --prefix              print libpng prefix
+  --libs                print library linking information
+  --cflags              print compiler flags
+  --cppflags            print pre-processor flags
+  --ldflags             print loader flags
+  --help                display this help and exit
+  --version             output version information
+EOF
+
+    exit $1
+}
+
+if test $# -eq 0; then
+    usage 1
+fi
+
+while test $# -gt 0; do
+    case "$1" in
+
+    --prefix)
+        echo ${prefix}
+        ;;
+
+    --version)
+        echo ${version}
+        exit 0
+        ;;
+
+    --help)
+        usage 0
+        ;;
+
+    --cflags)
+        echo ${cflags}
+        ;;
+
+    --cppflags)
+        echo ${cppflags}
+        ;;
+
+    --libs)
+        echo ${libs}
+        ;;
+
+    --ldflags)
+        echo ${ldflags}
+        ;;
+
+    *)
+        usage
+        exit 1
+        ;;
+    esac
+    shift
+done
+
+exit 0
diff --git a/scripts/libpng-config-head.in b/scripts/libpng-config-head.in
new file mode 100644
index 0000000..a3daf0e
--- /dev/null
+++ b/scripts/libpng-config-head.in
@@ -0,0 +1,17 @@
+#! /bin/sh
+
+# libpng-config
+# provides configuration info for libpng.
+
+# Copyright (C) 2002 Glenn Randers-Pehrson
+# For conditions of distribution and use, see copyright notice in png.h
+
+# Modeled after libxml-config.
+
+version=1.2.3rc5
+prefix=""
+cppflags=""
+cflags=""
+ldflags=""
+libs=""
+
diff --git a/scripts/libpng-config.in b/scripts/libpng-config.in
new file mode 100644
index 0000000..617b3f0
--- /dev/null
+++ b/scripts/libpng-config.in
@@ -0,0 +1,88 @@
+#! /bin/sh
+
+# libpng-config
+# provides configuration info for libpng.
+
+# Copyright (C) 2002 Glenn Randers-Pehrson
+# For conditions of distribution and use, see copyright notice in png.h
+
+# Modeled after libxml-config, fixed to handle --prefix properly.
+
+prefix=@PREFIX@
+exec_prefix=${prefix}
+includedir=${prefix}/include
+
+usage()
+{
+    cat <<EOF
+Usage: libpng-config [OPTION] ...
+
+Known values for OPTION are:
+
+  --prefix=DIR          change libpng prefix [default $prefix]
+  --libs                print library linking information
+  --cflags              print compiler flags
+  --cppflags            print pre-processor flags
+  --ldflags             print loader flags
+  --help                display this help and exit
+  --version             output version information
+EOF
+
+    exit $1
+}
+
+if test $# -eq 0; then
+    usage 1
+fi
+
+while test $# -gt 0; do
+    case "$1" in
+    -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+    *) optarg= ;;
+    esac
+
+    case "$1" in
+    --prefix=*)
+        prefix=$optarg
+        exec_prefix=${prefix}
+        includedir=${prefix}/include
+        ;;
+
+    --prefix)
+        echo $prefix
+        ;;
+
+    --version)
+        echo 1.2.3rc5
+        exit 0
+        ;;
+
+    --help)
+        usage 0
+        ;;
+
+    --cflags)
+        echo #CFLAGS
+        ;;
+
+    --cppflags)
+        echo -I${includedir}/libpng12 #CPPFLAGS
+        ;;
+
+    --libs)
+        echo -lpng12 -lz #LIBS
+        ;;
+
+    --ldflags)
+        echo -L${exec_prefix}/lib #LDFLAGS
+        ;;
+
+    *)
+        usage
+        exit 1
+        ;;
+    esac
+    shift
+done
+
+exit 0
diff --git a/scripts/libpng.pc.in b/scripts/libpng.pc.in
index 0391f37..b776346 100644
--- a/scripts/libpng.pc.in
+++ b/scripts/libpng.pc.in
@@ -6,6 +6,6 @@
 
 Name: libpng12
 Description: Loads and saves PNG files
-Version: 1.2.3rc4
-Libs: -L${libdir} -lpng12
+Version: 1.2.3rc5
+Libs: -L${libdir} -lpng12 -lz -lm
 Cflags: -I${includedir}/libpng12
diff --git a/scripts/makefile.32sunu b/scripts/makefile.32sunu
index d4f689b..c1a6f2a 100644
--- a/scripts/makefile.32sunu
+++ b/scripts/makefile.32sunu
@@ -33,7 +33,7 @@
 
 LIBNAME=libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.3rc4
+PNGMIN = 1.2.3rc5
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 INCPATH=$(prefix)/include
@@ -62,7 +62,7 @@
 .c.pic.o:
 	$(CC) -c $(CFLAGS) -KPIC -o $@ $*.c
 
-all: libpng.a $(LIBNAME).so pngtest libpng.pc
+all: libpng.a $(LIBNAME).so pngtest
 
 libpng.a: $(OBJS)
 	ar rc $@ $(OBJS)
@@ -71,6 +71,16 @@
 libpng.pc:
 	cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
 
+libpng-config:
+	( cat scripts/libpng-config-head.in; \
+	echo prefix=\"$(prefix)\"; \
+	echo cppflags=\"-I$(INCPATH)/libpng12"; \
+	echo cflags=\"-xtarget=ultra\"; \
+	echo ldflags=\"-xtarget=ultra -L$(LIBPATH) -R$(LIBPATH)\"; \
+	echo libs=\"-lpng12 -lz -lm\"; \
+	cat scripts/libpng-config-body.in ) > libpng-config
+	chmod +x libpng-config
+
 $(LIBNAME).so: $(LIBNAME).so.$(PNGMAJ)
 	ln -f -s $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so
 
@@ -154,12 +164,12 @@
 	-@/bin/rm -f $(DESTDIR)$(MANPATH)/man5/png.5
 	cp png.5 $(DESTDIR)$(MANPATH)/man5
 
-install-config: scripts/libpng-config
+install-config: libpng-config
 	-@if [ ! -d $(DESTDIR)$(BINPATH) ]; then \
 	mkdir $(DESTDIR)$(BINPATH); fi
 	-@/bin/rm -f $(DESTDIR)$(BINPATH)/libpng-config
 	-@/bin/rm -f $(DESTDIR)$(BINPATH)/libpng12-config
-	cp scripts/libpng-config $(DESTDIR)$(BINPATH)/libpng12-config
+	cp libpng-config $(DESTDIR)$(BINPATH)/libpng12-config
 	chmod 755 $(DESTDIR)$(BINPATH)/libpng12-config
 	(cd $(DESTDIR)$(BINPATH); ln -sf libpng12-config libpng-config)
 
diff --git a/scripts/makefile.64sunu b/scripts/makefile.64sunu
index d3bd96f..60406e6 100644
--- a/scripts/makefile.64sunu
+++ b/scripts/makefile.64sunu
@@ -33,7 +33,7 @@
 
 LIBNAME=libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.3rc4
+PNGMIN = 1.2.3rc5
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 INCPATH=$(prefix)/include
@@ -62,7 +62,7 @@
 .c.pic.o:
 	$(CC) -c $(CFLAGS) -KPIC -o $@ $*.c
 
-all: libpng.a $(LIBNAME).so pngtest libpng.pc
+all: libpng.a $(LIBNAME).so pngtest
 
 libpng.a: $(OBJS)
 	ar rc $@ $(OBJS)
@@ -71,6 +71,16 @@
 libpng.pc:
 	cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
 
+libpng-config:
+	( cat scripts/libpng-config-head.in; \
+	echo prefix=\"$(prefix)\"; \
+	echo cppflags=\"-I$(INCPATH)/libpng12"; \
+	echo cflags=\"-xtarget=ultra -xarch=v9\"; \
+	echo ldflags=\"-xtarget=ultra -xarch=v9 -L$(LIBPATH) -R$(LIBPATH)\"; \
+	echo libs=\"-lpng12 -lz -lm\"; \
+	cat scripts/libpng-config-body.in ) > libpng-config
+	chmod +x libpng-config
+
 $(LIBNAME).so: $(LIBNAME).so.$(PNGMAJ)
 	ln -f -s $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so
 
@@ -135,11 +145,11 @@
 	ln -f -s $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so)
 	-@if [ ! -d $(DESTDIR)$(LIBPATH)/pkgconfig ]; then \
 	mkdir $(DESTDIR)$(LIBPATH)/pkgconfig; fi
-	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
+	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/libpng.pc
-	cp libpng.pc $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
-	chmod 644 $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
-	(cd $(DESTDIR)$(LIBPATH)/pkgconfig; ln -f -s libpng12.pc libpng.pc)
+	cp libpng.pc $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
+	chmod 644 $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
+	(cd $(DESTDIR)$(LIBPATH)/pkgconfig; ln -f -s $(LIBNAME).pc libpng.pc)
 
 install-man: libpng.3 libpngpf.3 png.5
 	-@if [ ! -d $(DESTDIR)$(MANPATH) ]; then mkdir $(DESTDIR)$(MANPATH); fi
@@ -154,14 +164,14 @@
 	-@/bin/rm -f $(DESTDIR)$(MANPATH)/man5/png.5
 	cp png.5 $(DESTDIR)$(MANPATH)/man5
 
-install-config: scripts/libpng-config
+install-config: libpng-config
 	-@if [ ! -d $(DESTDIR)$(BINPATH) ]; then \
 	mkdir $(DESTDIR)$(BINPATH); fi
 	-@/bin/rm -f $(DESTDIR)$(BINPATH)/libpng-config
-	-@/bin/rm -f $(DESTDIR)$(BINPATH)/libpng12-config
-	cp scripts/libpng-config $(DESTDIR)$(BINPATH)/libpng12-config
-	chmod 755 $(DESTDIR)$(BINPATH)/libpng12-config
-	(cd $(DESTDIR)$(BINPATH); ln -sf libpng12-config libpng-config)
+	-@/bin/rm -f $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	cp libpng-config $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	chmod 755 $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	(cd $(DESTDIR)$(BINPATH); ln -sf $(LIBNAME)-config libpng-config)
 
 install: install-static install-shared install-man install-config
 
diff --git a/scripts/makefile.beos b/scripts/makefile.beos
index 91aa204..43ca51c 100644
--- a/scripts/makefile.beos
+++ b/scripts/makefile.beos
@@ -14,7 +14,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 0.  You should not
 # have to change it.
 PNGMAJ = 0
-PNGMIN = 1.2.3rc4
+PNGMIN = 1.2.3rc5
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 ALIGN=
@@ -62,7 +62,7 @@
 
 .SUFFIXES:      .c .o
 
-all: libpng.a $(LIBNAME).so pngtest libpng.pc
+all: libpng.a $(LIBNAME).so pngtest
 
 libpng.a: $(OBJS)
 	ar rc $@ $(OBJS)
@@ -71,6 +71,16 @@
 libpng.pc:
 	cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
 
+libpng-config:
+	( cat scripts/libpng-config-head.in; \
+	echo prefix=\"$(prefix)\"; \
+	echo cppflags=\"-I$(INCPATH)/libpng12"; \
+	echo cflags=\"\"; \
+	echo ldflags=\"-Wl,-soname=$(LIBNAME).so.$(PNGMAJ)"; \
+	echo libs=\"-lpng12 -lz -lm\"; \
+	cat scripts/libpng-config-body.in ) > libpng-config
+	chmod +x libpng-config
+
 $(LIBNAME).so: $(LIBNAME).so.$(PNGMAJ)
 	ln -sf $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so
 	cp $(LIBNAME).so* /boot/home/config/lib
@@ -124,11 +134,11 @@
 	ln -sf $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so)
 	-@if [ ! -d $(DESTDIR)$(LIBPATH)/pkgconfig ]; then \
 	mkdir $(DESTDIR)$(LIBPATH)/pkgconfig; fi
-	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
+	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/libpng.pc
-	cp libpng.pc $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
-	chmod 644 $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
-	(cd $(DESTDIR)$(LIBPATH)/pkgconfig; ln -sf libpng12.pc libpng.pc)
+	cp libpng.pc $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
+	chmod 644 $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
+	(cd $(DESTDIR)$(LIBPATH)/pkgconfig; ln -sf $(LIBNAME).pc libpng.pc)
 
 install-man: libpng.3 libpngpf.3 png.5
 	-@if [ ! -d $(DESTDIR)$(MANPATH) ]; then mkdir $(DESTDIR)$(MANPATH); fi
@@ -143,14 +153,14 @@
 	-@/bin/rm -f $(DESTDIR)$(MANPATH)/man5/png.5
 	cp png.5 $(DESTDIR)$(MANPATH)/man5
 
-install-config: scripts/libpng-config
+install-config: libpng-config
 	-@if [ ! -d $(DESTDIR)$(BINPATH) ]; then \
 	mkdir $(DESTDIR)$(BINPATH); fi
 	-@/bin/rm -f $(DESTDIR)$(BINPATH)/libpng-config
-	-@/bin/rm -f $(DESTDIR)$(BINPATH)/libpng12-config
-	cp scripts/libpng-config $(DESTDIR)$(BINPATH)/libpng12-config
-	chmod 755 $(DESTDIR)$(BINPATH)/libpng12-config
-	(cd $(DESTDIR)$(BINPATH); ln -sf libpng12-config libpng-config)
+	-@/bin/rm -f $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	cp libpng-config $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	chmod 755 $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	(cd $(DESTDIR)$(BINPATH); ln -sf $(LIBNAME)-config libpng-config)
 
 install: install-static install-shared install-man install-config
 
diff --git a/scripts/makefile.cygwin b/scripts/makefile.cygwin
index 5ccb0b3..9623356 100644
--- a/scripts/makefile.cygwin
+++ b/scripts/makefile.cygwin
@@ -8,6 +8,17 @@
 # Copyright (C) 1996, 1997 Andreas Dilger
 # For conditions of distribution and use, see copyright notice in png.h
 
+# this makefile intends to support building outside the src directory
+# if desired. when invoking it, specify an argument to SRC on the
+# command line that points to the top of the directory where your source
+# is located.
+
+ifdef SRC
+VPATH = $(SRC)
+else
+SRC = .
+endif
+
 # override DESTDIR= on the make install command line to easily support
 # installing into a temporary location.  Example:
 #
@@ -16,10 +27,12 @@
 # If you're going to install into a temporary location
 # via DESTDIR, that location must already exist before
 # you execute make install.
+
 DESTDIR=
 
 # To enable assembler optimizations, add '-DPNG_USE_PNGGCCRD' to
-# $CFLAGS, and include pnggccrd.o in $OBJS, below.
+# $CFLAGS, and include pnggccrd.o in $OBJS, below, and in the dependency
+# list at the bottom of this file.
 
 CC=gcc
 ifdef MINGW
@@ -28,11 +41,14 @@
 endif
 
 # where "make install" puts libpng.a, libpng.so*, png.h, and pngconf.h
+ifndef prefix
 prefix=/usr
+$(warning You haven't specified a 'prefix=' location. Defaulting to "/usr")
+endif
 
 # Where the zlib library and include files are located
-ZLIBLIB=$(DESTDIR)$(LIBPATH)
-ZLIBINC=$(DESTDIR)$(INCPATH)
+ZLIBLIB=/lib#$(DESTDIR)$(LIBPATH)
+ZLIBINC=#$(DESTDIR)$(INCPATH)
 #ZLIBLIB=../zlib
 #ZLIBINC=../zlib
 
@@ -44,15 +60,25 @@
 	-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=$(MINGW_CCFLAGS) -I$(ZLIBINC) -Wall -O3 $(ALIGN) -funroll-loops \
-	-fomit-frame-pointer
+### if you use the asm, add pnggccrd.o to the OBJS list
+###
+### if you don't need thread safety, but want the asm accel
+#CFLAGS= $(strip $(MINGW_CCFLAGS) -DPNG_THREAD_UNSAFE_OK -DPNG_USE_PNGGCCRD \
+#	$(addprefix -I,$(ZLIBINC)) -Wall -O3 $(ALIGN) -funroll-loops \
+#	-fomit-frame-pointer)  # $(WARNMORE) -g -DPNG_DEBUG=5
+### if you need thread safety and want (minimal) asm accel
+#CFLAGS= $(strip $(MINGW_CCFLAGS) -DPNG_USE_PNGGCCRD $(addprefix -I,$(ZLIBINC)) \
+#	-Wall -O3 $(ALIGN) -funroll-loops \
+#	-fomit-frame-pointer)  # $(WARNMORE) -g -DPNG_DEBUG=5
+### Normal (non-asm) compilation
+CFLAGS= $(strip $(MINGW_CCFLAGS) $(addprefix -I,$(ZLIBINC)) \
+        -Wall -O3 $(ALIGN) -funroll-loops \
+	-fomit-frame-pointer) # $(WARNMORE) -g -DPNG_DEBUG=5
 
-LIBNAME=libpng12
+LIBNAME = libpng12
 PNGMAJ = 0
 PNGDLL = 12
-PNGMIN = 1.2.3rc4
+PNGMIN = 1.2.3rc5
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 SHAREDLIB=cygpng$(PNGDLL).dll
@@ -62,10 +88,11 @@
 LIBS=$(SHAREDLIB) $(STATLIB)
 EXE=.exe
 
-LDFLAGS=-L. $(MINGW_LDFLAGS) -L$(ZLIBLIB) -lpng -lz
-LDSFLAGS=-shared -L.  $(MINGW_LDFLAGS) -Wl,--export-all
+LDFLAGS=$(strip -L. $(MINGW_LDFLAGS) $(addprefix -L,$(ZLIBLIB)) -lpng -lz)
+LDSFLAGS=$(strip -shared -L.  $(MINGW_LDFLAGS) -Wl,--export-all)
 LDEXTRA=-Wl,--out-implib=$(IMPLIB)
 
+MKDIR=/bin/mkdir -pv
 RANLIB=ranlib
 #RANLIB=echo
 
@@ -74,8 +101,8 @@
 
 BINPATH=$(prefix)/bin
 MANPATH=$(prefix)/man
-MAN3PATH=$(DESTDIR)$(MANPATH)/man3
-MAN5PATH=$(DESTDIR)$(MANPATH)/man5
+MAN3PATH=$(MANPATH)/man3
+MAN5PATH=$(MANPATH)/man5
 
 OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o \
 	pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \
@@ -83,40 +110,64 @@
 
 OBJSDLL = $(OBJS:.o=.pic.o)
 
-.SUFFIXES:      .c .o .pic.o
+.SUFFIXES: .c .o .pic.o
 
 %.o : %.c
 	$(CC) -c $(CFLAGS) -o $@ $<
-
+%.pic.o : CFLAGS += -DPNG_BUILD_DLL
 %.pic.o : %.c
-	$(CC) -c $(CFLAGS) -DPNG_BUILD_DLL -o $@ $<
+	$(CC) -c $(CFLAGS) -o $@ $<
 
-all: all-static all-shared libpng.pc
+all: all-static all-shared libpng.pc libpng-config
+
+# make this to verify that "make [...] install" will do what you want.
+buildsetup-tell:
+	@echo  VPATH is set to: \"$(VPATH)\"
+	@echo  prefix is set to: \"$(prefix)\"
+	@echo -e INCPATH,LIBPATH, etc. are set to:'\n' \
+ $(addprefix $(DESTDIR),$(INCPATH)'\n' $(LIBPATH)'\n' $(BINPATH)'\n' \
+   $(MANPATH)'\n' $(MAN3PATH)'\n' $(MAN5PATH)'\n')'\n'
 
 libpng.pc: scripts/libpng.pc.in
-	cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
+	@echo -e Making pkg-config file for this libpng installation..'\n' \
+           using PREFIX=\"$(prefix)\"'\n'
+	cat $(SRC)/scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! | \
+	   sed -e s/-lm// > libpng.pc
+
+libpng-config: scripts/libpng-config.in
+	@echo -e Making libpng-config file for this libpng installation..'\n' \
+           using PREFIX=\"$(prefix)\"'\n'
+	( cat $(SRC)/scripts/libpng-config-head.in; \
+	echo prefix=\"$(prefix)\"; \
+	echo cppflags=\"-I$(INCPATH)/libpng12"; \
+	echo cflags=\"\"; \
+	echo ldflags=\"-L$(LIBPATH)"; \
+	echo libs=\"-lpng12 -lz\"; \
+	cat $(SRC)/scripts/libpng-config-body.in ) > libpng-config
+	chmod +x libpng-config
 
 static: all-static
-
 shared: all-shared
-
 all-static: $(STATLIB) pngtest-stat$(EXE)
-
 all-shared: $(SHAREDLIB) pngtest$(EXE)
 
-pnggccrd.o:	png.h pngconf.h
+pnggccrd.o: pnggccrd.c png.h pngconf.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 \
+	'    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 $@ $*.c
+	$(CC) -c $(CFLAGS) -o $@ $<
 
-pnggccrd.pic.o:	png.h pngconf.h
+pnggccrd.pic.o:	pnggccrd.c png.h pngconf.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 \
+	'    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_BUILD_DLL -o $@ pnggccrd.c
+	$(CC) -c $(CFLAGS) -DPNG_BUILD_DLL -o $@ $<
 
 $(STATLIB): $(OBJS)
 	ar rc $@ $(OBJS)
@@ -144,58 +195,70 @@
 test: test-static test-shared
 
 test-static: pngtest-stat$(EXE)
-	./pngtest-stat
+	./pngtest-stat $(SRC)/pngtest.png
 
 test-shared: pngtest$(EXE)
-	./pngtest
+	./pngtest $(SRC)/pngtest.png
 
 install-static: $(STATLIB) install-headers install-man
-	-@if [ ! -d $(DESTDIR)$(LIBPATH) ]; then mkdir -p $(DESTDIR)$(LIBPATH); fi
+	-@if [ ! -d $(DESTDIR)$(LIBPATH) ]; then $(MKDIR) $(DESTDIR)$(LIBPATH); fi
 	install -m 644 $(STATLIB) $(DESTDIR)$(LIBPATH)/$(LIBNAME).a
 	-@rm -f $(DESTDIR)$(LIBPATH)/$(STATLIB)
 	(cd $(DESTDIR)$(LIBPATH); ln -sf $(LIBNAME).a $(STATLIB))
 
-install-shared: $(SHAREDLIB) libpng.pc install-headers install-man
-	-@if [ ! -d $(DESTDIR)$(LIBPATH) ]; then mkdir -p $(DESTDIR)$(LIBPATH); fi
-	-@if [ ! -d $(DESTDIR)$(BINPATH) ]; then mkdir -p $(DESTDIR)$(BINPATH); fi
+install-shared: $(SHAREDLIB) libpng.pc libpng-config install-headers install-man
+	-@if [ ! -d $(DESTDIR)$(LIBPATH) ]; then $(MKDIR) $(DESTDIR)$(LIBPATH); fi
+	-@if [ ! -d $(DESTDIR)$(BINPATH) ]; then $(MKDIR) $(DESTDIR)$(BINPATH); fi
 	-@if [ ! -d $(DESTDIR)$(LIBPATH)/pkgconfig ]; then \
-	mkdir -p $(DESTDIR)$(LIBPATH)/pkgconfig; fi
-	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
+           $(MKDIR) $(DESTDIR)$(LIBPATH)/pkgconfig; fi
+	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/libpng.pc
 	install -m 644 $(IMPLIB) $(DESTDIR)$(LIBPATH)/$(LIBNAME).dll.a
 	-@rm -f $(DESTDIR)$(LIBPATH)/$(IMPLIB)
 	(cd $(DESTDIR)$(LIBPATH); ln -sf $(LIBNAME).dll.a $(IMPLIB))
 	install -s -m 755 $(SHAREDLIB) $(DESTDIR)$(BINPATH)
 	install -m 644 libpng.pc $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
-	(cd $(DESTDIR)$(LIBPATH)/pkgconfig; ln -sf libpng12.pc libpng.pc)
+	(cd $(DESTDIR)$(LIBPATH)/pkgconfig; ln -sf $(LIBNAME).pc libpng.pc)
 
 install-headers:
 	-@if [ ! -d $(DESTDIR)$(INCPATH) ]; then \
-	mkdir -p $(DESTDIR)$(INCPATH); fi
+          $(MKDIR) $(DESTDIR)$(INCPATH); fi
 	-@if [ ! -d $(DESTDIR)$(INCPATH)/$(LIBNAME) ]; then \
-	mkdir -p $(DESTDIR)$(INCPATH)/$(LIBNAME); fi
+          $(MKDIR) $(DESTDIR)$(INCPATH)/$(LIBNAME); fi
 	-@rm -f $(DESTDIR)$(INCPATH)/png.h
 	-@rm -f $(DESTDIR)$(INCPATH)/pngconf.h
-	install -m 644 png.h pngconf.h $(DESTDIR)$(INCPATH)/$(LIBNAME)
+	install -m 644 $(SRC)/png.h $(SRC)/pngconf.h $(DESTDIR)$(INCPATH)/$(LIBNAME)
 	-@rm -f $(DESTDIR)$(INCPATH)/libpng
 	(cd $(DESTDIR)$(INCPATH); ln -sf $(LIBNAME) libpng; ln -sf $(LIBNAME)/* .)
 
 install-man:
 	-@if [ ! -d $(DESTDIR)$(MAN3PATH) ]; then \
-	mkdir -p $(DESTDIR)$(MAN3PATH); fi
+          $(MKDIR) $(DESTDIR)$(MAN3PATH); fi
 	-@if [ ! -d $(DESTDIR)$(MAN5PATH) ]; then \
-	mkdir -p $(DESTDIR)$(MAN5PATH); fi
-	install -m 644 libpngpf.3 libpng.3 $(DESTDIR)$(MAN3PATH)
-	install -m 644 png.5 $(DESTDIR)$(MAN5PATH)
+          $(MKDIR) $(DESTDIR)$(MAN5PATH); fi
+	install -m 644 $(SRC)/libpngpf.3 $(SRC)/libpng.3 $(DESTDIR)$(MAN3PATH)
+	install -m 644 $(SRC)/png.5 $(DESTDIR)$(MAN5PATH)
 
-install-config: scripts/libpng-config
+install-config: libpng-config
 	-@if [ ! -d $(DESTDIR)$(BINPATH) ]; then \
-	mkdir $(DESTDIR)$(BINPATH); fi
+           mkdir $(DESTDIR)$(BINPATH); fi
 	-@/bin/rm -f $(DESTDIR)$(BINPATH)/libpng-config
-	-@/bin/rm -f $(DESTDIR)$(BINPATH)/libpng12-config
-	cp scripts/libpng-config $(DESTDIR)$(BINPATH)/libpng12-config
-	chmod 755 $(DESTDIR)$(BINPATH)/libpng12-config
-	(cd $(DESTDIR)$(BINPATH); ln -sf libpng12-config libpng-config)
+	-@/bin/rm -f $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	cp libpng-config $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	chmod 755 $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	(cd $(DESTDIR)$(BINPATH); ln -sf $(LIBNAME)-config libpng-config)
+
+# run this to verify that a future `configure' run will pick up the settings you want.
+test-config-install: SHELL=/bin/bash
+test-config-install: $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	@echo -e Testing libpng-config functions...'\n'
+	@ for TYRA in LDFLAGS CPPFLAGS CFLAGS LIBS VERSION; \
+   do \
+    printf "(%d)\t %s = %s\n" $$(($$gytiu + 1)) $$TYRA \
+    $$(libpng-config `echo "--$$TYRA" |tr '[:upper:]' '[:lower:]'`); \
+    gytiu=$$(( $$gytiu + 1 )); \
+   done
+
 
 install: install-static install-shared install-man install-config
 
@@ -207,6 +270,8 @@
 writelock:
 	chmod a-w *.[ch35] $(DOCS) scripts/*
 
+.PHONY: buildsetup-tell libpng.pc libpng-config test-config-install clean
+
 # DO NOT DELETE THIS LINE -- make depend depends on it.
 
 png.o png.pic.o:		png.h pngconf.h png.c
@@ -227,3 +292,6 @@
 
 pngtest.o:			png.h pngconf.h pngtest.c
 pngtest-stat.o:			png.h pngconf.h pngtest.c
+
+
+
diff --git a/scripts/makefile.darwin b/scripts/makefile.darwin
index 9f042c5..bd374b9 100644
--- a/scripts/makefile.darwin
+++ b/scripts/makefile.darwin
@@ -25,7 +25,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 0.  You should not
 # have to change it.
 PNGMAJ = 0
-PNGMIN = 1.2.3rc4
+PNGMIN = 1.2.3rc5
 PNGVER = $(PNGMAJ).$(PNGMIN)
 LIBNAME = libpng12
 
@@ -55,14 +55,25 @@
 .c.pic.o:
 	$(CC) -c $(CFLAGS) -fno-common -o $@ $*.c
 
-all: libpng.a $(LIBNAME).dylib pngtest libpng.pc
+all: libpng.a $(LIBNAME).dylib pngtest
 
 libpng.a: $(OBJS)
 	ar rc $@ $(OBJS)
 	$(RANLIB) $@
 
 libpng.pc:
-	cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
+	cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! | \
+	   sed -e s/-lm// > libpng.pc
+
+libpng-config:
+	( cat scripts/libpng-config-head.in; \
+	echo prefix=\"$(prefix)\"; \
+	echo cppflags=\"-I$(INCPATH)/libpng12"; \
+	echo cflags=\"\"; \
+	echo ldflags=\"-L$(LIBPATH)\"; \
+	echo libs=\"-lpng12 -lz\"; \
+	cat scripts/libpng-config-body.in ) > libpng-config
+	chmod +x libpng-config
 
 $(LIBNAME).dylib: $(LIBNAME).$(PNGMAJ).dylib
 	ln -sf $(LIBNAME).$(PNGMAJ).dylib $(LIBNAME).dylib
@@ -85,9 +96,11 @@
 
 install-headers: png.h pngconf.h
 	-@if [ ! -d $(DESTDIR)$(INCPATH) ]; then mkdir $(DESTDIR)$(INCPATH); fi
-	-@if [ ! -d $(DESTDIR)$(INCPATH)/$(LIBNAME) ]; then mkdir $(DESTDIR)$(INCPATH)/$(LIBNAME); fi
+	-@if [ ! -d $(DESTDIR)$(INCPATH)/$(LIBNAME) ]; then \
+	mkdir $(DESTDIR)$(INCPATH)/$(LIBNAME); fi
 	cp png.h pngconf.h $(DESTDIR)$(INCPATH)/$(LIBNAME)
-	chmod 644 $(DESTDIR)$(INCPATH)/$(LIBNAME)/png.h $(DESTDIR)$(INCPATH)/$(LIBNAME)/pngconf.h
+	chmod 644 $(DESTDIR)$(INCPATH)/$(LIBNAME)/png.h \
+	$(DESTDIR)$(INCPATH)/$(LIBNAME)/pngconf.h
 	-@/bin/rm -f $(DESTDIR)$(INCPATH)/png.h $(DESTDIR)$(INCPATH)/pngconf.h
 	-@/bin/rm -f $(DESTDIR)$(INCPATH)/libpng
 	(cd $(DESTDIR)$(INCPATH); ln -sf $(LIBNAME) libpng; ln -sf $(LIBNAME)/* .)
@@ -116,11 +129,11 @@
 	ln -sf $(LIBNAME).$(PNGMAJ).dylib $(LIBNAME).dylib)
 	-@if [ ! -d $(DESTDIR)$(LIBPATH)/pkgconfig ]; then \
 	mkdir $(DESTDIR)$(LIBPATH)/pkgconfig; fi
-	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
+	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/libpng.pc
-	cp libpng.pc $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
-	chmod 644 $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
-	(cd $(DESTDIR)$(LIBPATH)/pkgconfig; ln -sf libpng12.pc libpng.pc)
+	cp libpng.pc $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
+	chmod 644 $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
+	(cd $(DESTDIR)$(LIBPATH)/pkgconfig; ln -sf $(LIBNAME).pc libpng.pc)
 
 install-man: libpng.3 libpngpf.3 png.5
 	-@if [ ! -d $(DESTDIR)$(MANPATH) ]; then mkdir $(DESTDIR)$(MANPATH); fi
@@ -135,14 +148,14 @@
 	-@/bin/rm -f $(DESTDIR)$(MANPATH)/man5/png.5
 	cp png.5 $(DESTDIR)$(MANPATH)/man5
 
-install-config: scripts/libpng-config
+install-config: libpng-config
 	-@if [ ! -d $(DESTDIR)$(BINPATH) ]; then \
 	mkdir $(DESTDIR)$(BINPATH); fi
 	-@/bin/rm -f $(DESTDIR)$(BINPATH)/libpng-config
-	-@/bin/rm -f $(DESTDIR)$(BINPATH)/libpng12-config
-	cp scripts/libpng-config $(DESTDIR)$(BINPATH)/libpng12-config
-	chmod 755 $(DESTDIR)$(BINPATH)/libpng12-config
-	(cd $(DESTDIR)$(BINPATH); ln -sf libpng12-config libpng-config)
+	-@/bin/rm -f $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	cp libpng-config $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	chmod 755 $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	(cd $(DESTDIR)$(BINPATH); ln -sf $(LIBNAME)-config libpng-config)
 
 install: install-static install-shared install-man install-config
 
diff --git a/scripts/makefile.dec b/scripts/makefile.dec
index f037bc1..4c7b794 100644
--- a/scripts/makefile.dec
+++ b/scripts/makefile.dec
@@ -29,7 +29,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 0.  You should not
 # have to change it.
 PNGMAJ = 0
-PNGMIN = 1.2.3rc4
+PNGMIN = 1.2.3rc5
 PNGVER = $(PNGMAJ).$(PNGMIN)
 LIBNAME = libpng12
 
@@ -44,7 +44,7 @@
 	pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \
 	pngwtran.o pngmem.o pngerror.o pngpread.o
 
-all: $(LIBNAME).so libpng.a pngtest libpng.pc
+all: $(LIBNAME).so libpng.a pngtest
 
 libpng.a: $(OBJS)
 	ar rc $@  $(OBJS)
@@ -53,6 +53,20 @@
 libpng.pc:
 	cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
 
+libpng-config:
+	( cat scripts/libpng-config-head.in; \
+	echo prefix=\"$(prefix)\"; \
+	echo cppflags=\"-I$(INCPATH)/libpng12"; \
+	echo cflags=\"-std\"; \
+	echo ldflags=\"-L$(LIBPATH)\"; \
+	echo libs=\"-lpng12 -lz -lm\"; \
+	cat scripts/libpng-config-body.in ) > libpng-config
+	chmod +x libpng-config
+
+	cat scripts/libpng-config.in | sed -e s\!@PREFIX@!$(prefix)! > \
+	  -e s!\#LIBS!-lm! > libpng-config
+	chmod +x libpng-config
+
 $(LIBNAME).so: $(LIBNAME).so.$(PNGMAJ)
 	ln -f -s $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so
 
@@ -103,11 +117,11 @@
 	ln -sf $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so)
 	-@if [ ! -d $(DESTDIR)$(LIBPATH)/pkgconfig ]; then \
 	mkdir $(DESTDIR)$(LIBPATH)/pkgconfig; fi
-	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
+	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/libpng.pc
-	cp libpng.pc $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
-	chmod 644 $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
-	(cd $(DESTDIR)$(LIBPATH)/pkgconfig; ln -sf libpng12.pc libpng.pc)
+	cp libpng.pc $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
+	chmod 644 $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
+	(cd $(DESTDIR)$(LIBPATH)/pkgconfig; ln -sf $(LIBNAME).pc libpng.pc)
 
 install-man: libpng.3 libpngpf.3 png.5
 	-@if [ ! -d $(DESTDIR)$(MANPATH) ]; then mkdir $(DESTDIR)$(MANPATH); fi
@@ -122,14 +136,14 @@
 	-@/bin/rm -f $(DESTDIR)$(MANPATH)/man5/png.5
 	cp png.5 $(DESTDIR)$(MANPATH)/man5
 
-install-config: scripts/libpng-config
+install-config: libpng-config
 	-@if [ ! -d $(DESTDIR)$(BINPATH) ]; then \
 	mkdir $(DESTDIR)$(BINPATH); fi
 	-@/bin/rm -f $(DESTDIR)$(BINPATH)/libpng-config
-	-@/bin/rm -f $(DESTDIR)$(BINPATH)/libpng12-config
-	cp scripts/libpng-config $(DESTDIR)$(BINPATH)/libpng12-config
-	chmod 755 $(DESTDIR)$(BINPATH)/libpng12-config
-	(cd $(DESTDIR)$(BINPATH); ln -sf libpng12-config libpng-config)
+	-@/bin/rm -f $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	cp libpng-config $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	chmod 755 $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	(cd $(DESTDIR)$(BINPATH); ln -sf $(LIBNAME)-config libpng-config)
 
 install: install-static install-shared install-man install-config
 
diff --git a/scripts/makefile.gcmmx b/scripts/makefile.gcmmx
index df01c3c..93bfe23 100644
--- a/scripts/makefile.gcmmx
+++ b/scripts/makefile.gcmmx
@@ -15,7 +15,7 @@
 
 LIBNAME = libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.3rc4
+PNGMIN = 1.2.3rc5
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 CC=gcc
@@ -86,11 +86,27 @@
 .c.pic.o:
 	$(CC) -c $(CFLAGS) -fPIC -o $@ $*.c
 
-all: libpng.a $(LIBNAME).so pngtest pngtest-static libpng.pc
+all: libpng.a $(LIBNAME).so pngtest pngtest-static
 
 libpng.pc:
 	cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
 
+libpng-config:
+	( cat scripts/libpng-config-head.in; \
+	echo prefix=\"$(prefix)\"; \
+	echo cppflags=\"-I$(INCPATH)/libpng12 -DPNG_THREAD_UNSAFE_OK \
+	   -DPNG_USE_PNGGCCRD"; \
+	echo cflags=\"\"; \
+	echo ldflags=\"\"; \
+	echo libs=\"-lpng12 -lz -lm\"; \
+	cat scripts/libpng-config-body.in ) > libpng-config
+	chmod +x libpng-config
+
+	cat scripts/libpng-config.in | sed -e s\!@PREFIX@!$(prefix)! > \
+	  -e s!\#CFLAGS!-DPNG_THREAD_UNSAFE_OK -DPNG_USE_PNGGCCRD! \
+	  -e s!\#LIBS!-lm! > libpng-config
+	chmod +x libpng-config
+
 pnggccrd.o:	pnggccrd.c png.h pngconf.h
 	$(CC) -c $(CFLAGS) -o $@ $*.c
 
@@ -119,7 +135,7 @@
 
 test: pngtest pngtest-static
 	@echo ""
-	@echo "   Running pngtest dynamically linked with libpng12.so:"
+	@echo "   Running pngtest dynamically linked with $(LIBNAME).so:"
 	@echo ""
 	./pngtest
 	@echo ""
@@ -162,11 +178,11 @@
 	ln -sf $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so)
 	-@if [ ! -d $(DESTDIR)$(LIBPATH)/pkgconfig ]; then \
 	mkdir $(DESTDIR)$(LIBPATH)/pkgconfig; fi
-	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
+	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/libpng.pc
-	cp libpng.pc $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
-	chmod 644 $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
-	(cd $(DESTDIR)$(LIBPATH)/pkgconfig; ln -sf libpng12.pc libpng.pc)
+	cp libpng.pc $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
+	chmod 644 $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
+	(cd $(DESTDIR)$(LIBPATH)/pkgconfig; ln -sf $(LIBNAME).pc libpng.pc)
 
 install-man: libpng.3 libpngpf.3 png.5
 	-@if [ ! -d $(DESTDIR)$(MANPATH) ]; then mkdir $(DESTDIR)$(MANPATH); fi
@@ -181,14 +197,14 @@
 	-@/bin/rm -f $(DESTDIR)$(MANPATH)/man5/png.5
 	cp png.5 $(DESTDIR)$(MANPATH)/man5
 
-install-config: scripts/libpng-config
+install-config: libpng-config
 	-@if [ ! -d $(DESTDIR)$(BINPATH) ]; then \
 	mkdir $(DESTDIR)$(BINPATH); fi
 	-@/bin/rm -f $(DESTDIR)$(BINPATH)/libpng-config
-	-@/bin/rm -f $(DESTDIR)$(BINPATH)/libpng12-config
-	cp scripts/libpng-config $(DESTDIR)$(BINPATH)/libpng12-config
-	chmod 755 $(DESTDIR)$(BINPATH)/libpng12-config
-	(cd $(DESTDIR)$(BINPATH); ln -sf libpng12-config libpng-config)
+	-@/bin/rm -f $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	cp libpng-config $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	chmod 755 $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	(cd $(DESTDIR)$(BINPATH); ln -sf $(LIBNAME)-config libpng-config)
 
 install: install-static install-shared install-man install-config
 
diff --git a/scripts/makefile.hpgcc b/scripts/makefile.hpgcc
index 0cf4d79..865efb1 100644
--- a/scripts/makefile.hpgcc
+++ b/scripts/makefile.hpgcc
@@ -35,7 +35,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 0.  You should not
 # have to change it.
 PNGMAJ = 0
-PNGMIN = 1.2.3rc4
+PNGMIN = 1.2.3rc5
 PNGVER = $(PNGMAJ).$(PNGMIN)
 LIBNAME = libpng12
 
@@ -65,7 +65,7 @@
 .c.pic.o:
 	$(CC) -c $(CFLAGS) -fPIC -o $@ $*.c
 
-all: libpng.a $(LIBNAME).sl pngtest libpng.pc
+all: libpng.a $(LIBNAME).sl pngtest
 
 libpng.a: $(OBJS)
 	ar rc $@ $(OBJS)
@@ -74,6 +74,16 @@
 libpng.pc:
 	cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
 
+libpng-config:
+	( cat scripts/libpng-config-head.in; \
+	echo prefix=\"$(prefix)\"; \
+	echo cppflags=\"-I$(INCPATH)/libpng12"; \
+	echo cflags=\"\"; \
+	echo ldflags=\"\"; \
+	echo libs=\"-lpng12 -lz -lm\"; \
+	cat scripts/libpng-config-body.in ) > libpng-config
+	chmod +x libpng-config
+
 $(LIBNAME).sl: $(LIBNAME).sl.$(PNGMAJ)
 	ln -f -s $(LIBNAME).sl.$(PNGMAJ) $(LIBNAME).sl
 
@@ -127,11 +137,11 @@
 	ln -sf $(LIBNAME).sl.$(PNGMAJ) $(LIBNAME).sl)
 	-@if [ ! -d $(DESTDIR)$(LIBPATH)/pkgconfig ]; then mkdir \
 	$(DESTDIR)$(LIBPATH)/pkgconfig; fi
-	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
+	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/libpng.pc
-	cp libpng.pc $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
-	chmod 644 $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
-	(cd $(DESTDIR)$(LIBPATH)/pkgconfig; ln -sf libpng12.pc libpng.pc)
+	cp libpng.pc $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
+	chmod 644 $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
+	(cd $(DESTDIR)$(LIBPATH)/pkgconfig; ln -sf $(LIBNAME).pc libpng.pc)
 
 install-man: libpng.3 libpngpf.3 png.5
 	-@if [ ! -d $(DESTDIR)$(MANPATH) ]; then mkdir $(DESTDIR)$(MANPATH); fi
@@ -146,14 +156,14 @@
 	-@/bin/rm -f $(DESTDIR)$(MANPATH)/man5/png.5
 	cp png.5 $(DESTDIR)$(MANPATH)/man5
 
-install-config: scripts/libpng-config
+install-config: libpng-config
 	-@if [ ! -d $(DESTDIR)$(BINPATH) ]; then \
 	mkdir $(DESTDIR)$(BINPATH); fi
 	-@/bin/rm -f $(DESTDIR)$(BINPATH)/libpng-config
-	-@/bin/rm -f $(DESTDIR)$(BINPATH)/libpng12-config
-	cp scripts/libpng-config $(DESTDIR)$(BINPATH)/libpng12-config
-	chmod 755 $(DESTDIR)$(BINPATH)/libpng12-config
-	(cd $(DESTDIR)$(BINPATH); ln -sf libpng12-config libpng-config)
+	-@/bin/rm -f $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	cp libpng-config $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	chmod 755 $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	(cd $(DESTDIR)$(BINPATH); ln -sf $(LIBNAME)-config libpng-config)
 
 install: install-static install-shared install-man install-config
 
diff --git a/scripts/makefile.hpux b/scripts/makefile.hpux
index ad43edc..20b8bbf 100644
--- a/scripts/makefile.hpux
+++ b/scripts/makefile.hpux
@@ -19,7 +19,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 0.  You should not
 # have to change it.
 PNGMAJ = 0
-PNGMIN = 1.2.3rc4
+PNGMIN = 1.2.3rc5
 PNGVER = $(PNGMAJ).$(PNGMIN)
 LIBNAME = libpng12
 
@@ -51,7 +51,7 @@
 .c.pic.o:
 	$(CC) -c $(CFLAGS) +z -o $@ $*.c
 
-all: libpng.a $(LIBNAME).sl pngtest libpng.pc
+all: libpng.a $(LIBNAME).sl pngtest
 
 libpng.a: $(OBJS)
 	ar rc $@  $(OBJS)
@@ -60,6 +60,16 @@
 libpng.pc:
 	cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
 
+libpng-config:
+	( cat scripts/libpng-config-head.in; \
+	echo prefix=\"$(prefix)\"; \
+	echo cppflags=\"-I$(INCPATH)/libpng12"; \
+	echo cflags=\"-Ae +DA1.1 +DS2.0"; \
+	echo ldflags=\"-L$(LIBPATH)\"; \
+	echo libs=\"-lpng12 -lz -lm\"; \
+	cat scripts/libpng-config-body.in ) > libpng-config
+	chmod +x libpng-config
+
 $(LIBNAME).sl: $(LIBNAME).sl.$(PNGMAJ)
 	ln -sf $(LIBNAME).sl.$(PNGMAJ) $(LIBNAME).sl
 
@@ -112,11 +122,11 @@
 	ln -sf $(LIBNAME).sl.$(PNGMAJ) $(LIBNAME).sl)
 	-@if [ ! -d $(DESTDIR)$(LIBPATH)/pkgconfig ]; then \
 	mkdir $(DESTDIR)$(LIBPATH)/pkgconfig; fi
-	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
+	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/libpng.pc
-	cp libpng.pc $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
-	chmod 644 $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
-	(cd $(DESTDIR)$(LIBPATH)/pkgconfig; ln -sf libpng12.pc libpng.pc)
+	cp libpng.pc $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
+	chmod 644 $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
+	(cd $(DESTDIR)$(LIBPATH)/pkgconfig; ln -sf $(LIBNAME).pc libpng.pc)
 
 install-man: libpng.3 libpngpf.3 png.5
 	-@if [ ! -d $(DESTDIR)$(MANPATH) ]; then mkdir $(DESTDIR)$(MANPATH); fi
@@ -131,14 +141,14 @@
 	-@/bin/rm -f $(DESTDIR)$(MANPATH)/man5/png.5
 	cp png.5 $(DESTDIR)$(MANPATH)/man5
 
-install-config: scripts/libpng-config
+install-config: libpng-config
 	-@if [ ! -d $(DESTDIR)$(BINPATH) ]; then \
 	mkdir $(DESTDIR)$(BINPATH); fi
 	-@/bin/rm -f $(DESTDIR)$(BINPATH)/libpng-config
-	-@/bin/rm -f $(DESTDIR)$(BINPATH)/libpng12-config
-	cp scripts/libpng-config $(DESTDIR)$(BINPATH)/libpng12-config
-	chmod 755 $(DESTDIR)$(BINPATH)/libpng12-config
-	(cd $(DESTDIR)$(BINPATH); ln -sf libpng12-config libpng-config)
+	-@/bin/rm -f $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	cp libpng-config $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	chmod 755 $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	(cd $(DESTDIR)$(BINPATH); ln -sf $(LIBNAME)-config libpng-config)
 
 install: install-static install-shared install-man install-config
 
diff --git a/scripts/makefile.linux b/scripts/makefile.linux
index c5ff7a7..8de6ca7 100644
--- a/scripts/makefile.linux
+++ b/scripts/makefile.linux
@@ -5,7 +5,7 @@
 
 LIBNAME = libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.3rc4
+PNGMIN = 1.2.3rc5
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 CC=gcc
@@ -65,7 +65,7 @@
 .c.pic.o:
 	$(CC) -c $(CFLAGS) -fPIC -o $@ $*.c
 
-all: libpng.a $(LIBNAME).so pngtest libpng.pc
+all: libpng.a $(LIBNAME).so pngtest
 
 libpng.a: $(OBJS)
 	ar rc $@ $(OBJS)
@@ -74,6 +74,20 @@
 libpng.pc:
 	cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
 
+libpng-config:
+	( cat scripts/libpng-config-head.in; \
+	echo prefix=\"$(prefix)\"; \
+	echo cppflags=\"-I$(INCPATH)/libpng12"; \
+	echo cflags=\"\"; \
+	echo ldflags=\"-L$(LIBPATH) -Wl,-rpath,$(LIBPATH)"; \
+	echo libs=\"-lpng12 -lz -lm\"; \
+	cat scripts/libpng-config-body.in ) > libpng-config
+	chmod +x libpng-config
+
+	cat scripts/libpng-config.in | sed -e s\!@PREFIX@!$(prefix)! > \
+	  -e s!\#LIBS!-lm! > libpng-config
+	chmod +x libpng-config
+
 $(LIBNAME).so: $(LIBNAME).so.$(PNGMAJ)
 	ln -sf $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so
 
@@ -136,11 +150,11 @@
 	ln -sf $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so)
 	-@if [ ! -d $(DESTDIR)$(LIBPATH)/pkgconfig ]; then mkdir \
 	$(DESTDIR)$(LIBPATH)/pkgconfig; fi
-	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
+	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/libpng.pc
-	cp libpng.pc $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
-	chmod 644 $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
-	(cd $(DESTDIR)$(LIBPATH)/pkgconfig; ln -sf libpng12.pc libpng.pc)
+	cp libpng.pc $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
+	chmod 644 $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
+	(cd $(DESTDIR)$(LIBPATH)/pkgconfig; ln -sf $(LIBNAME).pc libpng.pc)
 
 install-man: libpng.3 libpngpf.3 png.5
 	-@if [ ! -d $(DESTDIR)$(MANPATH) ]; then mkdir $(DESTDIR)$(MANPATH); fi
@@ -155,14 +169,14 @@
 	-@/bin/rm -f $(DESTDIR)$(MANPATH)/man5/png.5
 	cp png.5 $(DESTDIR)$(MANPATH)/man5
 
-install-config: scripts/libpng-config
+install-config: libpng-config
 	-@if [ ! -d $(DESTDIR)$(BINPATH) ]; then \
 	mkdir $(DESTDIR)$(BINPATH); fi
 	-@/bin/rm -f $(DESTDIR)$(BINPATH)/libpng-config
-	-@/bin/rm -f $(DESTDIR)$(BINPATH)/libpng12-config
-	cp scripts/libpng-config $(DESTDIR)$(BINPATH)/libpng12-config
-	chmod 755 $(DESTDIR)$(BINPATH)/libpng12-config
-	(cd $(DESTDIR)$(BINPATH); ln -sf libpng12-config libpng-config)
+	-@/bin/rm -f $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	cp libpng-config $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	chmod 755 $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	(cd $(DESTDIR)$(BINPATH); ln -sf $(LIBNAME)-config libpng-config)
 
 install: install-static install-shared install-man install-config
 
diff --git a/scripts/makefile.macosx b/scripts/makefile.macosx
index 48ef7e3..bc3d840 100644
--- a/scripts/makefile.macosx
+++ b/scripts/makefile.macosx
@@ -17,7 +17,7 @@
 CC=cc
 
 PNGMAJ = 0
-PNGMIN = 1.2.3rc4
+PNGMIN = 1.2.3rc5
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 CFLAGS=-fno-common -I$(ZLIBINC) -O # -g -DPNG_DEBUG=5
@@ -49,12 +49,27 @@
 	pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \
 	pngwtran.o pngmem.o pngerror.o pngpread.o
 
-all: libpng.a pngtest shared libpng.pc
+all: libpng.a pngtest shared
 
 shared: $(LIBNAME).$(PNGVER).$(SHAREDLIB_POSTFIX)
 
 libpng.pc:
-	cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
+	cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! | \
+	   sed -e s/-lm// > libpng.pc
+
+libpng-config:
+	( cat scripts/libpng-config-head.in; \
+	echo prefix=\"$(prefix)\"; \
+	echo cppflags=\"-I$(INCPATH)/libpng12"; \
+	echo cflags=\"\"; \
+	echo ldflags=\"-L$(LIBPATH)\"; \
+	echo libs=\"-lpng12 -lz\"; \
+	cat scripts/libpng-config-body.in ) > libpng-config
+	chmod +x libpng-config
+
+	cat scripts/libpng-config.in | sed -e s\!@PREFIX@!$(prefix)! > \
+	libpng-config
+	chmod +x libpng-config
 
 libpng.a: $(OBJS)
 	ar rc $@  $(OBJS)
@@ -69,7 +84,6 @@
 test: pngtest
 	./pngtest
 
-
 install-headers: png.h pngconf.h
 	-@if [ ! -d $(DESTDIR)$(INCPATH) ]; then mkdir $(DESTDIR)$(INCPATH); fi
 	-@if [ ! -d $(DESTDIR)$(INCPATH)/$(LIBNAME) ]; then \
@@ -112,11 +126,11 @@
 	$(LIBNAME).$(SHAREDLIB_POSTFIX))
 	-@if [ ! -d $(DESTDIR)$(LIBPATH)/pkgconfig ]; then \
 	mkdir $(DESTDIR)$(LIBPATH)/pkgconfig; fi
-	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
+	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/libpng.pc
-	cp libpng.pc $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
-	chmod 644 $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
-	(cd $(DESTDIR)$(LIBPATH)/pkgconfig; ln -f -s libpng12.pc libpng.pc)
+	cp libpng.pc $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
+	chmod 644 $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
+	(cd $(DESTDIR)$(LIBPATH)/pkgconfig; ln -f -s $(LIBNAME).pc libpng.pc)
 
 install-man: libpng.3 libpngpf.3 png.5
 	-@if [ ! -d $(DESTDIR)$(MANPATH) ]; then mkdir $(DESTDIR)$(MANPATH); fi
@@ -131,14 +145,14 @@
 	-@/bin/rm -f $(DESTDIR)$(MANPATH)/man5/png.5
 	cp png.5 $(DESTDIR)$(MANPATH)/man5
 
-install-config: scripts/libpng-config
+install-config: libpng-config
 	-@if [ ! -d $(DESTDIR)$(BINPATH) ]; then \
 	mkdir $(DESTDIR)$(BINPATH); fi
 	-@/bin/rm -f $(DESTDIR)$(BINPATH)/libpng-config
-	-@/bin/rm -f $(DESTDIR)$(BINPATH)/libpng12-config
-	cp scripts/libpng-config $(DESTDIR)$(BINPATH)/libpng12-config
-	chmod 755 $(DESTDIR)$(BINPATH)/libpng12-config
-	(cd $(DESTDIR)$(BINPATH); ln -sf libpng12-config libpng-config)
+	-@/bin/rm -f $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	cp libpng-config $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	chmod 755 $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	(cd $(DESTDIR)$(BINPATH); ln -sf $(LIBNAME)-config libpng-config)
 
 install: install-static install-shared install-man install-config
 
diff --git a/scripts/makefile.ne12bsd b/scripts/makefile.ne12bsd
index a1c61a4..0581298 100644
--- a/scripts/makefile.ne12bsd
+++ b/scripts/makefile.ne12bsd
@@ -13,7 +13,7 @@
 
 LIB=	png12
 SHLIB_MAJOR=	0
-SHLIB_MINOR=	1.2.3rc4
+SHLIB_MINOR=	1.2.3rc5
 SRCS=	pnggccrd.c png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \
 		pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
 		pngwtran.c pngmem.c pngerror.c pngpread.c
diff --git a/scripts/makefile.netbsd b/scripts/makefile.netbsd
index 3593dca..b86a20f 100644
--- a/scripts/makefile.netbsd
+++ b/scripts/makefile.netbsd
@@ -13,7 +13,7 @@
 
 LIB=	png
 SHLIB_MAJOR=	3
-SHLIB_MINOR=	1.2.3rc4
+SHLIB_MINOR=	1.2.3rc5
 SRCS=	pnggccrd.c png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \
 		pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
 		pngwtran.c pngmem.c pngerror.c pngpread.c
diff --git a/scripts/makefile.sco b/scripts/makefile.sco
index c2c86cb..7b7ce7b 100644
--- a/scripts/makefile.sco
+++ b/scripts/makefile.sco
@@ -26,7 +26,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 0.  You should not
 # have to change it.
 PNGMAJ = 0
-PNGMIN = 1.2.3rc4
+PNGMIN = 1.2.3rc5
 PNGVER = $(PNGMAJ).$(PNGMIN)
 LIBNAME = libpng12
 
@@ -56,7 +56,7 @@
 .c.pic.o:
 	$(CC) -c $(CFLAGS) -KPIC -o $@ $*.c
 
-all: libpng.a $(LIBNAME).so pngtest libpng.pc
+all: libpng.a $(LIBNAME).so pngtest
 
 libpng.a: $(OBJS)
 	ar rc $@ $(OBJS)
@@ -65,6 +65,16 @@
 libpng.pc:
 	cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
 
+libpng-config:
+	( cat scripts/libpng-config-head.in; \
+	echo prefix=\"$(prefix)\"; \
+	echo cppflags=\"-I$(INCPATH)/libpng12"; \
+	echo cflags=\"-belf\"; \
+	echo ldflags=\"-L$(LIBPATH)\"; \
+	echo libs=\"-lpng12 -lz -lm\"; \
+	cat scripts/libpng-config-body.in ) > libpng-config
+	chmod +x libpng-config
+
 $(LIBNAME).so: $(LIBNAME).so.$(PNGMAJ)
 	ln -f -s $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so
 
@@ -120,11 +130,11 @@
 	ln -f -s $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so)
 	-@if [ ! -d $(DESTDIR)$(LIBPATH)/pkgconfig ]; then \
 	mkdir $(DESTDIR)$(LIBPATH)/pkgconfig; fi
-	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
+	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/libpng.pc
-	cp libpng.pc $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
-	chmod 644 $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
-	(cd $(DESTDIR)$(LIBPATH)/pkgconfig; ln -f -s libpng12.pc libpng.pc)
+	cp libpng.pc $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
+	chmod 644 $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
+	(cd $(DESTDIR)$(LIBPATH)/pkgconfig; ln -f -s $(LIBNAME).pc libpng.pc)
 
 install-man: libpng.3 libpngpf.3 png.5
 	-@if [ ! -d $(DESTDIR)$(MANPATH) ]; then mkdir $(DESTDIR)$(MANPATH); fi
@@ -139,14 +149,14 @@
 	-@/bin/rm -f $(DESTDIR)$(MANPATH)/man5/png.5
 	cp png.5 $(DESTDIR)$(MANPATH)/man5
 
-install-config: scripts/libpng-config
+install-config: libpng-config
 	-@if [ ! -d $(DESTDIR)$(BINPATH) ]; then \
 	mkdir $(DESTDIR)$(BINPATH); fi
 	-@/bin/rm -f $(DESTDIR)$(BINPATH)/libpng-config
-	-@/bin/rm -f $(DESTDIR)$(BINPATH)/libpng12-config
-	cp scripts/libpng-config $(DESTDIR)$(BINPATH)/libpng12-config
-	chmod 755 $(DESTDIR)$(BINPATH)/libpng12-config
-	(cd $(DESTDIR)$(BINPATH); ln -sf libpng12-config libpng-config)
+	-@/bin/rm -f $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	cp libpng-config $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	chmod 755 $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	(cd $(DESTDIR)$(BINPATH); ln -sf $(LIBNAME)-config libpng-config)
 
 install: install-static install-shared install-man install-config
 
diff --git a/scripts/makefile.sggcc b/scripts/makefile.sggcc
index 766cfe3..5910083 100644
--- a/scripts/makefile.sggcc
+++ b/scripts/makefile.sggcc
@@ -34,13 +34,13 @@
 CFLAGS=$(ABI) -I$(ZLIBINC) -O2 $(WARNMORE) -fPIC -mabi=n32
 LDFLAGS=$(ABI) -L. -L$(ZLIBLIB) -lpng -lz -lm
 LDSHARED=CC $(ABI) -shared
-
-PNGMAJ = 0
-PNGMIN = 1.2.3rc4
-PNGVER = $(PNGMAJ).$(PNGMIN)
 # See "man dso" for info about shared objects
-LIBS=libpng12.so.$(PNGVER)
+
 LIBNAME=libpng12
+PNGMAJ = 0
+PNGMIN = 1.2.3rc5
+PNGVER = $(PNGMAJ).$(PNGMIN)
+LIBS=$(LIBNAME).so.$(PNGVER)
 INCPATH=$(prefix)/include
 LIBPATH=$(prefix)/lib32
 MANPATH=$(prefix)/man
@@ -63,7 +63,7 @@
 	pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \
 	pngwtran.o pngmem.o pngerror.o pngpread.o
 
-all: libpng.a $(LIBNAME).so.$(PNGVER) pngtest libpng.pc
+all: libpng.a $(LIBNAME).so.$(PNGVER) pngtest
 
 libpng.a: $(OBJS)
 	ar rc $@  $(OBJS)
@@ -72,6 +72,17 @@
 libpng.pc:
 	cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
 
+libpng-config:
+	( cat scripts/libpng-config-head.in; \
+	echo prefix=\"$(prefix)\"; \
+	echo cppflags=\"-I$(INCPATH)/libpng12 -DPNG_USE_PNGGCCRD \
+		-DPNG_NO_ASSEMBLER_CODE\"; \
+	echo cflags=\"$(ABI)\"; \
+	echo ldflags=\"-L$(LIBPATH)\"; \
+	echo libs=\"-lpng12 -lz -lm\"; \
+	cat scripts/libpng-config-body.in ) > libpng-config
+	chmod +x libpng-config
+
 $(LIBNAME).so.$(PNGVER): $(OBJS)
 	$(LDSHARED) -o $@ $(OBJS)
 	rm -f $(LIBNAME).so $(LIBNAME).so.$(PNGMAJ)
@@ -121,11 +132,11 @@
 	ln -sf $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so)
 	-@if [ ! -d $(DESTDIR)$(LIBPATH)/pkgconfig ]; then \
 	mkdir $(DESTDIR)$(LIBPATH)/pkgconfig; fi
-	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
+	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/libpng.pc
-	cp libpng.pc $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
-	chmod 644 $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
-	(cd $(DESTDIR)$(LIBPATH)/pkgconfig; ln -sf libpng12.pc libpng.pc)
+	cp libpng.pc $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
+	chmod 644 $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
+	(cd $(DESTDIR)$(LIBPATH)/pkgconfig; ln -sf $(LIBNAME).pc libpng.pc)
 
 install-man: libpng.3 libpngpf.3 png.5
 	-@if [ ! -d $(DESTDIR)$(MANPATH) ]; then mkdir $(DESTDIR)$(MANPATH); fi
@@ -140,14 +151,14 @@
 	-@/bin/rm -f $(DESTDIR)$(MANPATH)/man5/png.5
 	cp png.5 $(DESTDIR)$(MANPATH)/man5
 
-install-config: scripts/libpng-config
+install-config: libpng-config
 	-@if [ ! -d $(DESTDIR)$(BINPATH) ]; then \
 	mkdir $(DESTDIR)$(BINPATH); fi
 	-@/bin/rm -f $(DESTDIR)$(BINPATH)/libpng-config
-	-@/bin/rm -f $(DESTDIR)$(BINPATH)/libpng12-config
-	cp scripts/libpng-config $(DESTDIR)$(BINPATH)/libpng12-config
-	chmod 755 $(DESTDIR)$(BINPATH)/libpng12-config
-	(cd $(DESTDIR)$(BINPATH); ln -sf libpng12-config libpng-config)
+	-@/bin/rm -f $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	cp libpng-config $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	chmod 755 $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	(cd $(DESTDIR)$(BINPATH); ln -sf $(LIBNAME)-config libpng-config)
 
 install: install-static install-shared install-man install-config
 
diff --git a/scripts/makefile.sgi b/scripts/makefile.sgi
index 5cc3341..6633923 100644
--- a/scripts/makefile.sgi
+++ b/scripts/makefile.sgi
@@ -27,11 +27,11 @@
 LDFLAGS_A=$(ABI) -L. -L$(ZLIBLIB) -lpng12 -lz -lm
 LDFLAGS=$(ABI) -L. -L$(ZLIBLIB) -lpng -lz -lm
 LDSHARED=cc $(ABI) -shared
-
 # See "man dso" for info about shared objects
+
 LIBNAME=libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.3rc4
+PNGMIN = 1.2.3rc5
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 RANLIB=echo
@@ -58,13 +58,24 @@
 	pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \
 	pngwtran.o pngmem.o pngerror.o pngpread.o
 
-all: libpng.a pngtest shared libpng.pc
+all: libpng.a pngtest shared
 
 shared: $(LIBNAME).so.$(PNGVER)
 
 libpng.pc:
 	cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
 
+libpng-config:
+	( cat scripts/libpng-config-head.in; \
+	echo prefix=\"$(prefix)\"; \
+	echo cppflags=\"-I$(INCPATH)/libpng12 -DPNG_USE_PNGGCCRD \
+		-DPNG_NO_ASSEMBLER_CODE\"; \
+	echo cflags=\"$(ABI)\"; \
+	echo ldflags=\"-L$(LIBPATH)\"; \
+	echo libs=\"-lpng12 -lz -lm\"; \
+	cat scripts/libpng-config-body.in ) > libpng-config
+	chmod +x libpng-config
+
 libpng.a: $(OBJS)
 	ar rc $@  $(OBJS)
 	$(RANLIB) $@
@@ -117,11 +128,11 @@
 	ln -sf $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so)
 	-@if [ ! -d $(DESTDIR)$(LIBPATH)/pkgconfig ]; then \
 	mkdir $(DESTDIR)$(LIBPATH)/pkgconfig; fi
-	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
+	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/libpng.pc
-	cp libpng.pc $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
-	chmod 644 $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
-	(cd $(DESTDIR)$(LIBPATH)/pkgconfig; ln -sf libpng12.pc libpng.pc)
+	cp libpng.pc $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
+	chmod 644 $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
+	(cd $(DESTDIR)$(LIBPATH)/pkgconfig; ln -sf $(LIBNAME).pc libpng.pc)
 
 install-man: libpng.3 libpngpf.3 png.5
 	-@if [ ! -d $(DESTDIR)$(MANPATH) ]; then mkdir $(DESTDIR)$(MANPATH); fi
@@ -136,14 +147,14 @@
 	-@/bin/rm -f $(DESTDIR)$(MANPATH)/man5/png.5
 	cp png.5 $(DESTDIR)$(MANPATH)/man5
 
-install-config: scripts/libpng-config
+install-config: libpng-config
 	-@if [ ! -d $(DESTDIR)$(BINPATH) ]; then \
 	mkdir $(DESTDIR)$(BINPATH); fi
 	-@/bin/rm -f $(DESTDIR)$(BINPATH)/libpng-config
-	-@/bin/rm -f $(DESTDIR)$(BINPATH)/libpng12-config
-	cp scripts/libpng-config $(DESTDIR)$(BINPATH)/libpng12-config
-	chmod 755 $(DESTDIR)$(BINPATH)/libpng12-config
-	(cd $(DESTDIR)$(BINPATH); ln -sf libpng12-config libpng-config)
+	-@/bin/rm -f $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	cp libpng-config $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	chmod 755 $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	(cd $(DESTDIR)$(BINPATH); ln -sf $(LIBNAME)-config libpng-config)
 
 install: install-static install-shared install-man install-config
 
diff --git a/scripts/makefile.so9 b/scripts/makefile.so9
index 4162eb6..309f8c0 100644
--- a/scripts/makefile.so9
+++ b/scripts/makefile.so9
@@ -36,7 +36,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 0.  You should not
 # have to change it.
 PNGMAJ = 0
-PNGMIN = 1.2.3rc4
+PNGMIN = 1.2.3rc5
 PNGVER = $(PNGMAJ).$(PNGMIN)
 LIBNAME = libpng12
 
@@ -66,7 +66,7 @@
 .c.pic.o:
 	$(CC) -c $(CFLAGS) -KPIC -o $@ $*.c
 
-all: libpng.a $(LIBNAME).so pngtest libpng.pc
+all: libpng.a $(LIBNAME).so pngtest
 
 libpng.a: $(OBJS)
 	ar rc $@ $(OBJS)
@@ -75,6 +75,16 @@
 libpng.pc:
 	cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
 
+libpng-config:
+	( cat scripts/libpng-config-head.in; \
+	echo prefix=\"$(prefix)\"; \
+	echo cppflags=\"-I$(INCPATH)/libpng12\"; \
+	echo cflags=\"\"; \
+	echo ldflags=\"-L$(LIBPATH) -R$(LIBPATH)\"; \
+	echo libs=\"-lpng12 -lz -lm\"; \
+	cat scripts/libpng-config-body.in ) > libpng-config
+	chmod +x libpng-config
+
 $(LIBNAME).so: $(LIBNAME).so.$(PNGMAJ)
 	ln -f -s $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so
 
@@ -139,11 +149,11 @@
 	ln -f -s $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so)
 	-@if [ ! -d $(DESTDIR)$(LIBPATH)/pkgconfig ]; then mkdir \
 	$(DESTDIR)$(LIBPATH)/pkgconfig; fi
-	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
+	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/libpng.pc
-	cp libpng.pc $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
-	chmod 644 $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
-	(cd $(DESTDIR)$(LIBPATH)/pkgconfig; ln -f -s libpng12.pc libpng.pc)
+	cp libpng.pc $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
+	chmod 644 $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
+	(cd $(DESTDIR)$(LIBPATH)/pkgconfig; ln -f -s $(LIBNAME).pc libpng.pc)
 
 install-man: libpng.3 libpngpf.3 png.5
 	-@if [ ! -d $(DESTDIR)$(MANPATH) ]; then mkdir $(DESTDIR)$(MANPATH); fi
@@ -158,14 +168,14 @@
 	-@/bin/rm -f $(DESTDIR)$(MANPATH)/man5/png.5
 	cp png.5 $(DESTDIR)$(MANPATH)/man5
 
-install-config: scripts/libpng-config
+install-config: libpng-config
 	-@if [ ! -d $(DESTDIR)$(BINPATH) ]; then \
 	mkdir $(DESTDIR)$(BINPATH); fi
 	-@/bin/rm -f $(DESTDIR)$(BINPATH)/libpng-config
-	-@/bin/rm -f $(DESTDIR)$(BINPATH)/libpng12-config
-	cp scripts/libpng-config $(DESTDIR)$(BINPATH)/libpng12-config
-	chmod 755 $(DESTDIR)$(BINPATH)/libpng12-config
-	(cd $(DESTDIR)$(BINPATH); ln -sf libpng12-config libpng-config)
+	-@/bin/rm -f $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	cp libpng-config $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	chmod 755 $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	(cd $(DESTDIR)$(BINPATH); ln -sf $(LIBNAME)-config libpng-config)
 
 install: install-static install-shared install-man install-config
 
diff --git a/scripts/makefile.solaris b/scripts/makefile.solaris
index 1ed9922..aba2485 100644
--- a/scripts/makefile.solaris
+++ b/scripts/makefile.solaris
@@ -32,7 +32,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 0.  You should not
 # have to change it.
 PNGMAJ = 0
-PNGMIN = 1.2.3rc4
+PNGMIN = 1.2.3rc5
 PNGVER = $(PNGMAJ).$(PNGMIN)
 LIBNAME = libpng12
 
@@ -62,7 +62,7 @@
 .c.pic.o:
 	$(CC) -c $(CFLAGS) -fPIC -o $@ $*.c
 
-all: libpng.a $(LIBNAME).so pngtest libpng.pc
+all: libpng.a $(LIBNAME).so pngtest
 
 libpng.a: $(OBJS)
 	ar rc $@ $(OBJS)
@@ -71,6 +71,17 @@
 libpng.pc:
 	cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
 
+libpng-config:
+	( cat scripts/libpng-config-head.in; \
+	echo prefix=\"$(prefix)\"; \
+	echo cppflags=\"-I$(INCPATH)/libpng12 -DPNG_USE_PNGGCCRD \
+		-DPNG_NO_ASSEMBLER_CODE\"; \
+	echo cflags=\"$(ABI)\"; \
+	echo ldflags=\"-L$(LIBPATH) -R$(LIBPATH)\"; \
+	echo libs=\"-lpng12 -lz -lm\"; \
+	cat scripts/libpng-config-body.in ) > libpng-config
+	chmod +x libpng-config
+
 $(LIBNAME).so: $(LIBNAME).so.$(PNGMAJ)
 	ln -f -s $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so
 
@@ -135,11 +146,11 @@
 	ln -f -s $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ))
 	-@if [ ! -d $(DESTDIR)$(LIBPATH)/pkgconfig ]; then \
 	mkdir $(DESTDIR)$(LIBPATH)/pkgconfig; fi
-	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
+	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/pkgconfig/libpng.pc
-	cp libpng.pc $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
-	chmod 644 $(DESTDIR)$(LIBPATH)/pkgconfig/libpng12.pc
-	(cd $(DESTDIR)$(LIBPATH)/pkgconfig; ln -f -s libpng12.pc libpng.pc)
+	cp libpng.pc $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
+	chmod 644 $(DESTDIR)$(LIBPATH)/pkgconfig/$(LIBNAME).pc
+	(cd $(DESTDIR)$(LIBPATH)/pkgconfig; ln -f -s $(LIBNAME).pc libpng.pc)
 
 install-man: libpng.3 libpngpf.3 png.5
 	-@if [ ! -d $(DESTDIR)$(MANPATH) ]; then mkdir $(DESTDIR)$(MANPATH); fi
@@ -154,14 +165,14 @@
 	-@/bin/rm -f $(DESTDIR)$(MANPATH)/man5/png.5
 	cp png.5 $(DESTDIR)$(MANPATH)/man5
 
-install-config: scripts/libpng-config
+install-config: libpng-config
 	-@if [ ! -d $(DESTDIR)$(BINPATH) ]; then \
 	mkdir $(DESTDIR)$(BINPATH); fi
 	-@/bin/rm -f $(DESTDIR)$(BINPATH)/libpng-config
-	-@/bin/rm -f $(DESTDIR)$(BINPATH)/libpng12-config
-	cp scripts/libpng-config $(DESTDIR)$(BINPATH)/libpng12-config
-	chmod 755 $(DESTDIR)$(BINPATH)/libpng12-config
-	(cd $(DESTDIR)$(BINPATH); ln -sf libpng12-config libpng-config)
+	-@/bin/rm -f $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	cp libpng-config $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	chmod 755 $(DESTDIR)$(BINPATH)/$(LIBNAME)-config
+	(cd $(DESTDIR)$(BINPATH); ln -sf $(LIBNAME)-config libpng-config)
 
 install: install-static install-shared install-man install-config
 
diff --git a/scripts/pngdef.pas b/scripts/pngdef.pas
index 2adf4cd..c48c41a 100644
--- a/scripts/pngdef.pas
+++ b/scripts/pngdef.pas
@@ -7,7 +7,7 @@
 interface
 
 const
-  PNG_LIBPNG_VER_STRING = '1.2.3rc4';
+  PNG_LIBPNG_VER_STRING = '1.2.3rc5';
   PNG_LIBPNG_VER        =  10203;
 
 type
diff --git a/scripts/pngos2.def b/scripts/pngos2.def
index 65449d7..b30c7fa 100644
--- a/scripts/pngos2.def
+++ b/scripts/pngos2.def
@@ -2,7 +2,7 @@
 ; PNG.LIB module definition file for OS/2
 ;----------------------------------------
 
-; Version 1.2.3rc4
+; Version 1.2.3rc5
 
 LIBRARY		PNG
 DESCRIPTION	"PNG image compression library for OS/2"
@@ -198,14 +198,10 @@
 
 ; Added at version 1.2.2:
   png_handle_as_unknown
-  png_zalloc
-  png_zfree
 
-; Added at version 1.2.3
-  png_default_read_data
-  png_default_write_data
-  png_default_flush
-  png_push_fill_buffer
+; Added at version 1.2.2 and deleted from 1.2.3:
+; png_zalloc
+; png_zfree
 
 ; These are not present when libpng is compiled with PNG_NO_GLOBAL_ARRAYS
   png_libpng_ver