X-Git-Url: https://git.draconx.ca/gitweb/liblbx.git/blobdiff_plain/5fb804f880836324897bc519615625410720d886..cdfd126039d367b116f0e462b3583e30a7db5cd9:/m4/libpng.m4 diff --git a/m4/libpng.m4 b/m4/libpng.m4 index da3bac9..52db43e 100644 --- a/m4/libpng.m4 +++ b/m4/libpng.m4 @@ -4,104 +4,49 @@ dnl are permitted in any medium without royalty provided the copyright 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 -#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,