### 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=