]> git.eshelyaron.com Git - emacs.git/commitdiff
* configure.ac (LIBPNG): Add -lz -lm on platforms where they're needed
authorPaul Eggert <eggert@cs.ucla.edu>
Sun, 4 May 2014 06:34:04 +0000 (23:34 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sun, 4 May 2014 06:34:04 +0000 (23:34 -0700)
but libpng-config --libs omits them.  Problem reported by Glenn
Morris.

ChangeLog
configure.ac

index 83d378374b9cac058df561e81cb1054b5d68c606..8589f4123856b81ff946c1a753caf2e8336bbb44 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2014-05-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * configure.ac (LIBPNG): Add -lz -lm on platforms where they're needed
+       but libpng-config --libs omits them.  Problem reported by Glenn
+       Morris.
+
 2014-05-03  Paul Eggert  <eggert@cs.ucla.edu>
 
        Require ImageMagick >= 6.3.5, due to PixelSetMagickColor (Bug#17339).
index 4fd842817b6a56e9e92ca299d19d60df591afca0..1f458771bbd8da11505a696989eae52148b41022 100644 (file)
@@ -3080,10 +3080,25 @@ elif test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then
     if png_cflags=`(libpng-config --cflags) 2>&AS_MESSAGE_LOG_FD` &&
        png_libs=`(libpng-config --libs) 2>&AS_MESSAGE_LOG_FD`
     then
-      HAVE_PNG=yes
-      PNG_CFLAGS=`AS_ECHO(["$png_cflags"]) | sed -e "$edit_cflags"`
-      LIBPNG=$png_libs
-    else
+      # On some platforms, LIBPNG must also contain -lz -lm.
+      SAVE_CFLAGS=$CFLAGS
+      SAVE_LIBS=$LIBS
+      CFLAGS="$CFLAGS $png_cflags"
+      for png_libextras in '' ' -lz -lm'; do
+       LIBS="$png_libs$png_libextras $SAVE_LIBS"
+       AC_LINK_IFELSE(
+         [AC_LANG_PROGRAM([[#include <png.h>
+                          ]],
+                          [[return png_get_channels (0, 0);]])],
+         [HAVE_PNG=yes
+          PNG_CFLAGS=`AS_ECHO(["$png_cflags"]) | sed -e "$edit_cflags"`
+          LIBPNG=$png_libs$png_libextras])
+       test $HAVE_PNG = yes && break
+      done
+      CFLAGS=$SAVE_CFLAGS
+      LIBS=$SAVE_LIBS
+    fi
+    if test $HAVE_PNG != yes; then
       # libpng-config does not work; configure it by hand.
       # Debian unstable as of July 2003 has multiple libpngs, and puts png.h
       # in /usr/include/libpng.