[master] Make PNG_DEPSTRUCT, etc., configurable.

Only #define PNG_DEPSTRUCT, etc. in pngconf.h if not already defined.
diff --git a/ANNOUNCE b/ANNOUNCE
index 3de0a2a..eee63f8 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -141,6 +141,7 @@
 version 1.2.41beta16 [November 9, 2009]
   Removed three direct references to read_info_ptr members in pngtest.c
     that were detected by the new PNG_DEPSTRUCT macro.
+  Only #define PNG_DEPSTRUCT, etc. in pngconf.h if not already defined.
 
 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
 
diff --git a/CHANGES b/CHANGES
index 6e942a3..d2e2313 100644
--- a/CHANGES
+++ b/CHANGES
@@ -2572,6 +2572,7 @@
 version 1.2.41beta16 [November 9, 2009]
   Removed three direct references to read_info_ptr members in pngtest.c
     that were detected by the new PNG_DEPSTRUCT macro.
+  Only #define PNG_DEPSTRUCT, etc. in pngconf.h if not already defined.
 
 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
 (subscription required; visit
diff --git a/pngconf.h b/pngconf.h
index 3691b78..a627d9c 100644
--- a/pngconf.h
+++ b/pngconf.h
@@ -1528,17 +1528,27 @@
  * version 1.2.41.
  */
 #ifdef __GNUC__
-#  define PNG_DEPRECATED __attribute__((__deprecated__))
-#  define PNG_USE_RESULT __attribute__((__warn_unused_result__))
-#  define PNG_NORETURN   __attribute__((__noreturn__))
-#  define PNG_ALLOCATED  __attribute__((__malloc__))
+#  ifndef PNG_DEPRECATED
+#    define PNG_DEPRECATED __attribute__((__deprecated__))
+#  endif
+#  ifndef PNG_USE_RESULT
+#    define PNG_USE_RESULT __attribute__((__warn_unused_result__))
+#  endif
+#  ifndef PNG_NORETURN
+#    define PNG_NORETURN   __attribute__((__noreturn__))
+#  endif
+#  ifndef PNG_ALLOCATED
+#    define PNG_ALLOCATED  __attribute__((__malloc__))
+#  endif
 
 #  ifndef PNG_CONFIGURE_LIBPNG
-   /* This specifically protects structure members that should only be
-    * accessed from within the library, therefore should be empty during
-    * a library build.
-    */
-#    define PNG_DEPSTRUCT  __attribute__((__deprecated__))
+    /* This specifically protects structure members that should only be
+     * accessed from within the library, therefore should be empty during
+     * a library build.
+     */
+#    ifndef PNG_DEPSTRUCT
+#      define PNG_DEPSTRUCT  __attribute__((__deprecated__))
+#    endif
 #  endif
 #endif