emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r117059: Consult libpng-config more consistently.


From: Paul Eggert
Subject: [Emacs-diffs] trunk r117059: Consult libpng-config more consistently.
Date: Sun, 04 May 2014 21:28:11 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 117059
revision-id: address@hidden
parent: address@hidden
fixes bug: http://debbugs.gnu.org/17339
committer: Paul Eggert <address@hidden>
branch nick: trunk
timestamp: Sun 2014-05-04 14:28:08 -0700
message:
  Consult libpng-config more consistently.
  
  This is mainly for simplicity, but it should also avoid
  some future problems like the ones we recently had with NetBSD.
  * configure.ac (LIBPNG): Configure after LIBZ.  Use libpng-config
  for cflags, too.  Append -lz if we're not already doing that with
  LIBZ.  Do not bother appending -lm, since we always append that.
  Coalesce some duplicate code.
  * src/Makefile.in (PNG_CFLAGS): New var.
  (ALL_CFLAGS): Use it.
  * src/image.c [HAVE_PNG]: Don't worry about <libpng/png.h>, as
  CFLAGS now handles this.
modified:
  ChangeLog                      changelog-20091113204419-o5vbwnq5f7feedwu-1538
  configure.ac                   
configure.in-20091113204419-o5vbwnq5f7feedwu-783
  src/ChangeLog                  changelog-20091113204419-o5vbwnq5f7feedwu-1438
  src/Makefile.in                makefile.in-20091113204419-o5vbwnq5f7feedwu-631
  src/image.c                    image.c-20091113204419-o5vbwnq5f7feedwu-2969
=== modified file 'ChangeLog'
--- a/ChangeLog 2014-05-04 21:18:30 +0000
+++ b/ChangeLog 2014-05-04 21:28:08 +0000
@@ -1,5 +1,13 @@
 2014-05-04  Paul Eggert  <address@hidden>
 
+       Consult libpng-config more consistently (Bug#17339).
+       This is mainly for simplicity, but it should also avoid
+       some future problems like the ones we recently had with NetBSD.
+       * configure.ac (LIBPNG): Configure after LIBZ.  Use libpng-config
+       for cflags, too.  Append -lz if we're not already doing that with
+       LIBZ.  Do not bother appending -lm, since we always append that.
+       Coalesce some duplicate code.
+
        * autogen.sh: Use ‘"’ to quote a message that often contains ‘'’.
 
        Require ImageMagick >= 6.3.5, due to PixelSetMagickColor (Bug#17339).

=== modified file 'configure.ac'
--- a/configure.ac      2014-05-04 19:37:56 +0000
+++ b/configure.ac      2014-05-04 21:28:08 +0000
@@ -3014,67 +3014,6 @@
 fi
 AC_SUBST(LIBJPEG)
 
-### Use -lpng if available, unless `--with-png=no'.
-### mingw32 doesn't use -lpng, since it loads the library dynamically.
-HAVE_PNG=no
-LIBPNG=
-if test "${opsys}" = "mingw32"; then
-  if test "${with_png}" != "no"; then
-    AC_CHECK_HEADER(png.h, HAVE_PNG=yes, HAVE_PNG=no)
-  fi
-  if test "${HAVE_PNG}" = "yes"; then
-    AC_DEFINE(HAVE_PNG, 1, [Define to 1 if you have the png library (-lpng).])
-
-    AC_CHECK_DECL(png_longjmp,
-      [],
-      [AC_DEFINE(PNG_DEPSTRUCT, [],
-        [Define to empty to suppress deprecation warnings when building
-         with --enable-gcc-warnings and with libpng versions before 1.5,
-         which lack png_longjmp.])],
-      [[#ifdef HAVE_LIBPNG_PNG_H
-       # include <libpng/png.h>
-       #else
-       # include <png.h>
-       #endif
-      ]])
-  fi
-elif test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then
-  if test "${with_png}" != "no"; then
-    # Debian unstable as of July 2003 has multiple libpngs, and puts png.h
-    # in /usr/include/libpng.
-    AC_CHECK_HEADERS(png.h libpng/png.h, break)
-    if test "$ac_cv_header_png_h" = yes || test "$ac_cv_header_libpng_png_h" = 
yes ; then
-      AC_CHECK_LIB(png, png_get_channels, HAVE_PNG=yes, , -lz -lm)
-    fi
-  fi
-
-  if test "${HAVE_PNG}" = "yes"; then
-    AC_DEFINE(HAVE_PNG, 1, [Define to 1 if you have the png library.])
-
-    dnl Some systems, eg NetBSD 6, only provide eg "libpng16", not "libpng".
-    lpng=`libpng-config --libs 2> /dev/null`
-    case $lpng in
-      -l*) : ;;
-      *) lpng="-lpng" ;;
-    esac
-    LIBPNG="$lpng -lz -lm"
-
-    AC_CHECK_DECL(png_longjmp,
-      [],
-      [AC_DEFINE(PNG_DEPSTRUCT, [],
-        [Define to empty to suppress deprecation warnings when building
-         with --enable-gcc-warnings and with libpng versions before 1.5,
-         which lack png_longjmp.])],
-      [[#ifdef HAVE_LIBPNG_PNG_H
-       # include <libpng/png.h>
-       #else
-       # include <png.h>
-       #endif
-      ]])
-  fi
-fi
-AC_SUBST(LIBPNG)
-
 HAVE_ZLIB=no
 LIBZ=
 if test "${with_zlib}" != "no"; then
@@ -3094,6 +3033,58 @@
 fi
 AC_SUBST(LIBZ)
 
+### Use -lpng if available, unless `--with-png=no'.
+HAVE_PNG=no
+LIBPNG=
+PNG_CFLAGS=
+if test "${with_png}" != no; then
+  # mingw32 loads the library dynamically.
+  if test "$opsys" = mingw32; then
+    AC_CHECK_HEADER([png.h], [HAVE_PNG=yes])
+  elif 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
+    # libpng-config does not work; configure by hand.
+    # Debian unstable as of July 2003 has multiple libpngs, and puts png.h
+    # in /usr/include/libpng.
+    AC_CHECK_HEADERS([png.h libpng/png.h],
+      [AC_CHECK_LIB([png], [png_get_channels],
+        [HAVE_PNG=yes
+         LIBPNG='-lpng'
+         if test "$ac_cv_header_png_h" != yes; then
+           PNG_CFLAGS=-I/usr/include/libpng
+         fi
+         break],
+         [], [-lz -lm])])
+  fi
+  # $LIBPNG requires explicit -lz in some cases.
+  # We don't know what those cases are, exactly, so play it safe and
+  # append -lz to any nonempty $LIBPNG, unless we're already using LIBZ.
+  if test -n "$LIBPNG" && test -z "$LIBZ"; then
+    LIBPNG="$LIBPNG -lz"
+  fi
+fi
+if test $HAVE_PNG = yes; then
+  AC_DEFINE([HAVE_PNG], [1], [Define to 1 if you have the png library.])
+
+  SAVE_CFLAGS=$CFLAGS
+  CFLAGS="$CFLAGS $PNG_CFLAGS"
+  AC_CHECK_DECL([png_longjmp],
+    [],
+    [AC_DEFINE([PNG_DEPSTRUCT], [],
+       [Define to empty to suppress deprecation warnings when building
+       with --enable-gcc-warnings and with libpng versions before 1.5,
+       which lack png_longjmp.])],
+    [[#include <png.h>
+    ]])
+  CFLAGS=$SAVE_CFLAGS
+fi
+AC_SUBST(LIBPNG)
+AC_SUBST(PNG_CFLAGS)
 
 ### Use -ltiff if available, unless `--with-tiff=no'.
 ### mingw32 doesn't use -ltiff, since it loads the library dynamically.

=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2014-05-04 19:37:56 +0000
+++ b/src/ChangeLog     2014-05-04 21:28:08 +0000
@@ -1,8 +1,10 @@
 2014-05-04  Paul Eggert  <address@hidden>
 
-       Revert recent libpng changes (Bug#17339).
-       * Makefile.in (PNG_CFLAGS): Remove; all uses removed.
-       * image.c [HAVE_LIBPNG_PNG_H]: Include <libpng/png.h>, not <png.h>.
+       Consult libpng-config more consistently (Bug#17339).
+       * Makefile.in (PNG_CFLAGS): New var.
+       (ALL_CFLAGS): Use it.
+       * image.c [HAVE_PNG]: Don't worry about <libpng/png.h>, as
+       CFLAGS now handles this.
 
 2014-05-03  Paul Eggert  <address@hidden>
 
@@ -15,14 +17,6 @@
 
        * buffer.c (overlay_strings): Fix the wording of the commentary.
 
-2014-05-02  Paul Eggert  <address@hidden>
-
-       Consult libpng-config more consistently (Bug#17339).
-       * Makefile.in (PNG_CFLAGS): New var.
-       (ALL_CFLAGS): Use it.
-       * image.c [HAVE_PNG]: Don't worry about <libpng/png.h>, as
-       CFLAGS now handles this.
-
 2014-05-01  Glenn Morris  <address@hidden>
 
        * floatfns.c (Fisnan):

=== modified file 'src/Makefile.in'
--- a/src/Makefile.in   2014-05-04 18:51:32 +0000
+++ b/src/Makefile.in   2014-05-04 21:28:08 +0000
@@ -77,6 +77,7 @@
 address@hidden@
 
 address@hidden@
address@hidden@
 
 ## Define C_SWITCH_X_SITE to contain any special flags your compiler
 ## may need to deal with X Windows.  For instance, if you've defined
@@ -325,6 +326,7 @@
   -I$(lib) -I$(srcdir)/../lib \
   $(C_SWITCH_MACHINE) $(C_SWITCH_SYSTEM) $(C_SWITCH_X_SITE) \
   $(GNUSTEP_CFLAGS) $(CFLAGS_SOUND) $(RSVG_CFLAGS) $(IMAGEMAGICK_CFLAGS) \
+  $(PNG_CFLAGS) \
   $(LIBXML2_CFLAGS) $(DBUS_CFLAGS) $(XRANDR_CFLAGS) $(XINERAMA_CFLAGS) \
   $(SETTINGS_CFLAGS) $(FREETYPE_CFLAGS) $(FONTCONFIG_CFLAGS) \
   $(LIBOTF_CFLAGS) $(M17N_FLT_CFLAGS) $(DEPFLAGS) \

=== modified file 'src/image.c'
--- a/src/image.c       2014-05-04 19:37:56 +0000
+++ b/src/image.c       2014-05-04 21:28:08 +0000
@@ -22,12 +22,8 @@
 #include <unistd.h>
 
 #ifdef HAVE_PNG
-#if defined HAVE_LIBPNG_PNG_H
-# include <libpng/png.h>
-#else
 # include <png.h>
 #endif
-#endif
 
 #include <setjmp.h>
 #include <c-ctype.h>


reply via email to

[Prev in Thread] Current Thread [Next in Thread]