Commit 61febcb6 authored by Paul Eggert's avatar Paul Eggert

Revert recent libpng changes.

They fix only bugs that aren't being reported, so it may be better
to do them on the trunk.
* configure.ac (PNG_CFLAGS): Remove.  All uses removed.
(LIBPNG): Don't be consistent about -lpng16 versus -lpng.
Ignore libpng-config's exit status.  Always append -lz -lm.
* src/Makefile.in (PNG_CFLAGS): Remove; all uses removed.
* src/image.c [HAVE_LIBPNG_PNG_H]: Include <libpng/png.h>, not <png.h>.

Fixes: debbugs:17339
parent ec5f5b30
2014-05-04 Paul Eggert <eggert@cs.ucla.edu>
Revert recent libpng changes (Bug#17339).
They fix only bugs that aren't being reported, so it may be better
to do them on the trunk.
* configure.ac (PNG_CFLAGS): Remove. All uses removed.
(LIBPNG): Don't be consistent about -lpng16 versus -lpng.
Ignore libpng-config's exit status. Always append -lz -lm.
* configure.ac (LIBPNG): Add -lz -lm on platforms where they're needed
but libpng-config --libs omits them. Problem reported by Glenn
Morris.
......
......@@ -3068,70 +3068,62 @@ AC_SUBST(LIBJPEG)
### mingw32 doesn't use -lpng, since it loads the library dynamically.
HAVE_PNG=no
LIBPNG=
PNG_CFLAGS=
if test "${opsys}" = "mingw32"; then
if test "${with_png}" != "no"; then
AC_CHECK_HEADER([png.h], [HAVE_PNG=yes])
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
dnl NetBSD 6 provides libpng16, not libpng.
if png_cflags=`(libpng-config --cflags) 2>&AS_MESSAGE_LOG_FD` &&
png_libs=`(libpng-config --libs) 2>&AS_MESSAGE_LOG_FD`
then
# 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.
AC_CHECK_HEADERS([png.h libpng/png.h],
[AC_CHECK_LIB([png], [png_get_channels],
[HAVE_PNG=yes
LIBPNG='-lpng -lz -lm'
if test "$ac_cv_header_libpng_png_h" = yes; then
PNG_CFLAGS=-I/usr/include/libpng
fi],
[],
[-lz -lm])
break])
# 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
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
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)
AC_SUBST(PNG_CFLAGS)
HAVE_ZLIB=no
LIBZ=
......
2014-05-04 Paul Eggert <eggert@cs.ucla.edu>
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>.
2014-05-03 Paul Eggert <eggert@cs.ucla.edu>
Handle systems without WCONTINUED consistently. (Bug#15110, 17339)
......
......@@ -77,7 +77,6 @@ C_SWITCH_MACHINE=@C_SWITCH_MACHINE@
C_SWITCH_SYSTEM=@C_SWITCH_SYSTEM@
GNUSTEP_CFLAGS=@GNUSTEP_CFLAGS@
PNG_CFLAGS=@PNG_CFLAGS@
## 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
......@@ -326,7 +325,6 @@ ALL_CFLAGS=-Demacs $(MYCPPFLAGS) -I. -I$(srcdir) \
-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) \
......
......@@ -22,8 +22,12 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#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>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment