dnl notice and this notice are preserved. This file is offered as-is,
dnl without any warranty.
-dnl _LIBPNG_TRY_VERSION(min-version)
-AC_DEFUN([_LIBPNG_TRY_VERSION], [dnl
-shead='s/@<:@0-9@:>@@<:@0-9@:>@*/<<<&>>>/'
-sbody='s/.*<<<\(.*\)>>>.*/\1/;t'
-stail='s/.*/0/'
-png_min_major=`printf '%s' '$1' | sed -e "$shead"1 -e "$sbody" -e "$stail"`
-png_min_minor=`printf '%s' '$1' | sed -e "$shead"2 -e "$sbody" -e "$stail"`
-png_min_release=`printf '%s' '$1' | sed -e "$shead"3 -e "$sbody" -e "$stail"`
-png_min_build=`printf '%s' '$1' | sed -e "$shead"4 -e "$sbody" -e "$stail"`
-png_min_status=`printf '%s' '$1' | sed '
- t
- s/.*alpha.*/PNG_LIBPNG_BUILD_ALPHA/
- t
- s/.*beta.*/PNG_LIBPNG_BUILD_BETA/
- t
- s/.*rc.*/PNG_LIBPNG_BUILD_RC/
- t
- s/.*/PNG_LIBPNG_BUILD_STABLE/
-'`
-
-AC_CACHE_CHECK([for libpng version at least $1],
- [libpng_cv_sufficient_ver],
- [AC_LINK_IFELSE([AC_LANG_PROGRAM([dnl
+dnl _DX_LIBPNG_TEST_PROGRAM(major, minor, release)
+AC_DEFUN([_DX_LIBPNG_TEST_PROGRAM], [AC_LANG_PROGRAM([dnl
#include <png.h>
-#if PNG_LIBPNG_VER_MAJOR < $png_min_major
+ifelse([$1], [], [], [dnl
+#if PNG_LIBPNG_VER_MAJOR < $1
# error Invalid libpng major version
-#elif PNG_LIBPNG_VER_MAJOR == $png_min_major
-# if PNG_LIBPNG_VER_MINOR < $png_min_minor
+ifelse([$2], [], [], [dnl
+#elif PNG_LIBPNG_VER_MAJOR == $1
+# if PNG_LIBPNG_VER_MINOR < $2
# error Invalid libpng minor version
-# elif PNG_LIBPNG_VER_MINOR == $png_min_minor
-# if PNG_LIBPNG_VER_RELEASE < $png_min_release
+ifelse([$3], [], [], [dnl
+# elif PNG_LIBPNG_VER_MINOR == $2
+# if PNG_LIBPNG_VER_RELEASE < $3
# error Invalid libpng release
-# elif PNG_LIBPNG_VER_RELEASE == $png_min_release
-# if PNG_LIBPNG_BUILD_BASE_TYPE < $png_min_status
-# error Invalid libpng release status
-# elif PNG_LIBPNG_BUILD_BASE_TYPE == $png_min_status
-# if PNG_LIBPNG_VER_BUILD < $png_min_build
-# error Invalid libpng build
-# endif
-# endif
# endif
+])dnl
# endif
+])dnl
#endif
+])dnl
], [dnl
png_structp png = png_create_read_struct("", 0, 0, 0);
png_infop info = png_create_info_struct(png);
-])], [libpng_cv_sufficient_ver=yes], [libpng_cv_sufficient_ver=no])])
-])
-
-dnl CHECK_LIBPNG([min-version], [action-if-ok], [action-if-fail])
-AC_DEFUN([CHECK_LIBPNG],
-[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
-AC_ARG_VAR([LIBPNG_CFLAGS], [C compiler flags for libpng])dnl
-AC_ARG_VAR([LIBPNG_LIBS], [linker flags for libpng])dnl
-
-if test x"$PKG_CONFIG" != x; then
- AC_MSG_CHECKING([pkg-config database for libpng])
- _PKG_CONFIG([libpng_cflags], [cflags], [libpng])
- _PKG_CONFIG([libpng_libs], [libs], [libpng])
- if test x$pkg_failed = xyes; then
- errors=`$PKG_CONFIG --errors-to-stdout --print-errors libpng`
- echo "$errors" >&AS_MESSAGE_LOG_FD
- AC_MSG_RESULT([no])
- else
- if test x"$LIBPNG_CFLAGS" = x; then
- LIBPNG_CFLAGS=$pkg_cv_libpng_cflags
- fi
- if test x"$LIBPNG_LIBS" = x; then
- LIBPNG_LIBS=$pkg_cv_libpng_libs
- fi
-
- AC_MSG_RESULT([yes])
- fi
-fi
-
-if test x"$LIBPNG_LIBS" = x; then
- LIBPNG_LIBS=-lpng
-fi
-
-AC_LANG_PUSH([C])
-old_cflags=$CFLAGS
-old_libs=$LIBS
-CFLAGS="$LIBPNG_CFLAGS $CFLAGS"
-LIBS="$LIBPNG_LIBS $LIBS"
-
-_LIBPNG_TRY_VERSION(ifelse([$1], [], [1.0], [$1]))
-
-CFLAGS=$old_cflags
-LIBS=$old_libs
-AC_LANG_POP([C])
-
-if test x"$libpng_cv_sufficient_ver" = x"yes"; then
- AC_SUBST([LIBPNG_CFLAGS])
- AC_SUBST([LIBPNG_LIBS])
- ifelse([$2], [], [true], [$2])
+])])
+
+dnl DX_CHECK_LIBPNG([min-version], [action-if-ok], [action-if-fail])
+AC_DEFUN([DX_CHECK_LIBPNG],
+[DX_PKG_CONFIG([libpng], [libpng], [libpng])
+
+DX_CHECK_LIB([libpng],
+ [for libpng[]ifelse([$1], [], [], [ version at least $1])],
+ [m4_apply([_DX_LIBPNG_TEST_PROGRAM], m4_split([$1], [\.]))], [dnl
+ [[$LIBPNG_CFLAGS], [$LIBPNG_LIBS]],
+ [[$pkg_cv_libpng_cflags], [$pkg_cv_libpng_libs],
+ [test ! x"$pkg_failed" = x"yes"]],
+ [[], [-lpng]],
+ ])
+
+if test x"$dx_cv_libpng_found" = x"yes"; then
+ ifelse([$2], [], [:], [$2])
else
ifelse([$3], [], [AC_MSG_FAILURE([dnl
-libpng version >= ifelse([$1], [], [1.0], [$1]) is required. The latest
+libpng[]ifelse([$1], [], [], [ version at least $1]) is required. The latest
version can be obtained from http://libpng.org/pub/png/libpng.html.
If libpng is installed but was not found by this configure script,