[devel] Enabled 'attribute' warnings that are relevant to library APIs

  and callbacks.
Changed rules for generation of the various symbol files and added a new
  rule for a DEF file (which is also added to the distribution).
Updated the symbol file generation to stop it adding spurious spaces
  to EOL (coming from preprocessor macro expansion).  Added a facility
  to join tokens in the output and rewrite *.dfn to use this.
diff --git a/scripts/def.dfn b/scripts/def.dfn
new file mode 100644
index 0000000..525c3be
--- /dev/null
+++ b/scripts/def.dfn
@@ -0,0 +1,32 @@
+
+/* def.dfn - define format of libpng.def
+ *
+ * Last changed in libpng 1.5.0 [March 12, 2010]
+ * Copyright (c) 1998-2010 Glenn Randers-Pehrson
+ *
+ * This code is released under the libpng license.
+ * For conditions of distribution and use, see the disclaimer
+ * and license in png.h
+ */
+
+#define PNG_EXPORT(type, name, args, attributes, ordinal)\
+	PNG_DEFN_MAGIC- name @ordinal-PNG_DEFN_END
+#define PNG_REMOVED(name, ordinal)\
+	PNG_DEFN_MAGIC-; name @ordinal-PNG_DEFN_END
+
+PNG_DEFN_MAGIC-;---------------------------------------------------------------PNG_DEFN_END
+PNG_DEFN_MAGIC-; LIBPNG module definition file for Windows, WindowsCE and OS/2-PNG_DEFN_END
+PNG_DEFN_MAGIC-; On OS/2 uncomment lines preceded by ;0S2-PNG_DEFN_END
+PNG_DEFN_MAGIC-;---------------------------------------------------------------PNG_DEFN_END
+PNG_DEFN_MAGIC--PNG_DEFN_END
+PNG_DEFN_MAGIC-; If you give the library an explicit name one or other files-PNG_DEFN_END
+PNG_DEFN_MAGIC-; may need modifying to support the new name on one or more-PNG_DEFN_END
+PNG_DEFN_MAGIC-; systems.-PNG_DEFN_END
+PNG_DEFN_MAGIC-LIBRARY-PNG_DEFN_END
+PNG_DEFN_MAGIC-;OS2 DESCRIPTION	"PNG image compression library"-PNG_DEFN_END
+PNG_DEFN_MAGIC-;OS2 CODE		PRELOAD MOVEABLE DISCARDABLE-PNG_DEFN_END
+PNG_DEFN_MAGIC--PNG_DEFN_END
+PNG_DEFN_MAGIC-EXPORTS-PNG_DEFN_END
+PNG_DEFN_MAGIC-;Version PNGLIB_VERSION-PNG_DEFN_END
+
+#include "../png.h"
diff --git a/scripts/sym.dfn b/scripts/sym.dfn
new file mode 100644
index 0000000..d2c219b
--- /dev/null
+++ b/scripts/sym.dfn
@@ -0,0 +1,15 @@
+
+/* sym.dfn - define format of libpng.sym
+ *
+ * Last changed in libpng 1.5.0 [March 12, 2010]
+ * Copyright (c) 1998-2010 Glenn Randers-Pehrson
+ *
+ * This code is released under the libpng license.
+ * For conditions of distribution and use, see the disclaimer
+ * and license in png.h
+ */
+
+#define PNG_EXPORT(type, name, args, attributes, ordinal)\
+	PNG_DEFN_MAGIC-SYMBOL_PREFIX @@@ name-PNG_DEFN_END
+
+#include "../png.h"
diff --git a/scripts/vers.dfn b/scripts/vers.dfn
new file mode 100644
index 0000000..1b27111
--- /dev/null
+++ b/scripts/vers.dfn
@@ -0,0 +1,26 @@
+
+/* vers.dfn - define format of libpng.vers
+ *
+ * Last changed in libpng 1.5.0 [March 12, 2010]
+ * Copyright (c) 1998-2010 Glenn Randers-Pehrson
+ *
+ * This code is released under the libpng license.
+ * For conditions of distribution and use, see the disclaimer
+ * and license in png.h
+ */
+
+#define HEADER PNG_DEFN_MAGIC-PNGLIB_LIBNAME {global:-PNG_DEFN_END
+
+/* NOTE: @@@ is interpreted by the calling script as a signal to
+ * join the two things on either side, so we can do symbol
+ * substitution within the name, regular C ## joins the pp-tokens,
+ * not their final values.
+ */
+#define PNG_EXPORT(type, name, args, attributes, ordinal)\
+	PNG_DEFN_MAGIC- SYMBOL_PREFIX @@@ name;-PNG_DEFN_END
+
+#define TRAILER PNG_DEFN_MAGIC-local: *; };-PNG_DEFN_END
+
+HEADER
+#include "../png.h"
+TRAILER