<URL: http://bugs.freeciv.org/Ticket/Display.html?id=40242 >

2008/5/13 Marko Lindqvist:
>
>  Checks for libpng are not working too well with some modern environments
>
>  Attached patch improves situation:
>  1) Using pkg-config to detect libpng
>  2) If (1) fails, use old method, but prefer libpng12 over obsoleted name 
> libpng
>  3) Avoid adding unnecessary (duplicate) flags to LDFLAGS

 This version contains only the essential part of the patch - changes
to configure.ac are not really related and the version sent earlier
even broke some compilations.


 - ML

diff -Nurd -X.diff_ignore freeciv/m4/win32-client.m4 freeciv/m4/win32-client.m4
--- freeciv/m4/win32-client.m4	2007-03-05 19:13:41.000000000 +0200
+++ freeciv/m4/win32-client.m4	2008-05-15 01:10:11.000000000 +0300
@@ -7,33 +7,42 @@
 [
   if test "$client" = "win32" || test "$client" = "yes" ; then
     if test "$MINGW32" = "yes"; then
-      AC_CHECK_LIB([z], [gzgets],
+      PKG_CHECK_MODULES([PNG], [libpng],
+      [
+        CLIENT_LIBS="-lwsock32 -lcomctl32 -mwindows $PNG_LIBS"
+        CLIENT_CFLAGS="$PNG_CFLAGS"
+      ],
+      [
+        AC_CHECK_LIB([z], [gzgets],
         [
           AC_CHECK_HEADER([zlib.h],
+          [
+            AC_CHECK_LIB([png12], [png_read_image],,
             [
-              AC_CHECK_LIB([png], [png_read_image],
-                [
-                  AC_CHECK_HEADER([png.h],
-                    [
-                      found_client=yes
-                      client=win32
-                      CLIENT_LIBS="-lwsock32 -lcomctl32  -lpng -lz -mwindows"
-                    ],
-                    [
-                      FC_NO_CLIENT([win32], [libpng-dev is needed])
-                    ])
-                ],
-                [
-                  FC_NO_CLIENT([win32], [libpng is needed])
-                ], [-lz])
+              AC_CHECK_LIB([png], [png_read_image],,
+              [
+                FC_NO_CLIENT([win32], [libpng is needed])
+              ])
+            ])
+
+            AC_CHECK_HEADER([png.h],
+            [
+              found_client=yes
+              client=win32
+              CLIENT_LIBS="-lwsock32 -lcomctl32  -lpng -mwindows"
             ],
             [
-              FC_NO_CLIENT([win32], [zlib-dev is needed])
+              FC_NO_CLIENT([win32], [libpng-dev is needed])
             ])
+          ],
+          [
+            FC_NO_CLIENT([win32], [zlib-dev is needed])
+          ])
         ],
         [
           FC_NO_CLIENT([win32], [zlib is needed])
         ])
+      ])
     else
       FC_NO_CLIENT([win32], [mingw32 is needed])
     fi
diff -Nurd -X.diff_ignore freeciv/m4/xaw-client.m4 freeciv/m4/xaw-client.m4
--- freeciv/m4/xaw-client.m4	2007-03-05 19:13:41.000000000 +0200
+++ freeciv/m4/xaw-client.m4	2008-05-15 01:10:11.000000000 +0300
@@ -22,11 +22,25 @@
     fi
 
     dnl Check for libpng
-    AC_CHECK_LIB(png, png_read_image, [X_LIBS="$X_LIBS -lpng -lm"],
-	AC_MSG_ERROR([Could not find PNG library (libpng).]), [-lm -lz])
-    AC_CHECK_HEADER(png.h, ,
+    PKG_CHECK_MODULES([PNG], [libpng],
+    [
+      X_LIBS="$X_LIBS $PNG_LIBS"
+      X_CFLAGS="$X_CFLAGS $PNG_CFLAGS"
+    ],
+    [
+      AC_CHECK_LIB([png12], [png_read_image], [X_LIBS="$X_LIBS -lpng12 -lm"],
+      [
+        AC_CHECK_LIB([png], [png_read_image], [X_LIBS="$X_LIBS -lpng -lm"],
+        [
+          AC_MSG_ERROR([Could not find PNG library.])
+        ])
+      ])
+      AC_CHECK_HEADER([png.h],,
+      [
 	AC_MSG_ERROR([libpng found but not png.h.
-You may need to install a libpng \"development\" package.]))
+You may need to install a libpng \"development\" package.])
+      ])
+    ])
 
     dnl Try to get additional Xpm paths:
     FC_XPM_PATHS
_______________________________________________
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev

Reply via email to