use libpng's pkg-config files rather than the ugly xxx-config scripts --- a/configure.ac +++ b/configure.ac @@ -47,6 +47,7 @@ AC_PROG_LIBTOOL AC_PROG_LN_S AC_PROG_MAKE_SET #AC_PROG_RANLIB +PKG_PROG_PKG_CONFIG dnl may be required for freetype and Xpm AC_PATH_X @@ -340,74 +341,26 @@ AC_CHECK_LIB(z,deflate, dnl libpng is required AC_ARG_WITH(png,dnl [ --with-png=DIR where to find the png library],, - withval=yes) - -# libpng12.so is a nightmare. We have to test separately for -# libpng12-config and libpng-config. If we find libpng12-config, -# we don't look for the other, which will just be a symlink to it, -# confusing autoconf into thinking the library itself will be named -lpng, -# which it won't be. Awful. This code will suffice unless the libpng -# authors decide to do this AGAIN. Which I really hope they won't. TBB - -if test "$withval" != no; then - AC_PATH_PROG([LIBPNG12_CONFIG], [libpng12-config]) - AC_PATH_PROG([LIBPNG_CONFIG], [libpng-config]) - if test -n "$LIBPNG12_CONFIG"; then - libpng_CPPFLAGS=`libpng12-config --cflags` - # should be --ldopts, but it's currently broken - libpng_LDFLAGS=`libpng12-config --ldflags` - libpng_LDFLAGS=`echo " $libpng_LDFLAGS" | sed 's/ -l[[^ ]][[^ ]]*//g'` - elif test -n "$LIBPNG_CONFIG"; then - libpng_CPPFLAGS=`libpng-config --cflags` - # should be --ldopts, but it's currently broken - libpng_LDFLAGS=`libpng-config --ldflags` - libpng_LDFLAGS=`echo " $libpng_LDFLAGS" | sed 's/ -l[[^ ]][[^ ]]*//g'` - elif test -d "$withval"; then - libpng_CPPFLAGS="-I$withval/include" - libpng_LDFLAGS="-L$withval/lib" - fi - - AC_CHECK_HEADERS(png.h,, - [AC_CHECK_HEADERS(libpng/png.h, - [CPPFLAGS="$CPPFLAGS $libpng_CPPFLAGS/libpng"], - [CPPFLAGS="$_cppflags"])]) - - _ldflags="$LDFLAGS" - LDFLAGS="$libpng_LDFLAGS $LDFLAGS" - - if test -n "$LIBPNG12_CONFIG"; then - AC_CHECK_LIB(png12,png_create_read_struct, - [LIBS="-lpng12 $LIBS" - FEATURES="GD_PNG $FEATURES" - AC_DEFINE(HAVE_LIBPNG, 1, [ Define if you have the png library. ])], - [LDFLAGS="$_ldflags" - AC_MSG_WARN([libpng is required - see http://www.libpng.org/pub/png/])]) - elif test -n "$LIBPNG_CONFIG"; then - AC_CHECK_LIB(png,png_create_read_struct, - [LIBS="-lpng $LIBS" - FEATURES="GD_PNG $FEATURES" - AC_DEFINE(HAVE_LIBPNG, 1, [ Define if you have the png library. ])], - [LDFLAGS="$_ldflags" - AC_MSG_WARN([libpng is required - see http://www.libpng.org/pub/png/])]) - else - AC_CHECK_LIB(png,png_create_read_struct, - [LIBS="-lpng $LIBS" - FEATURES="GD_PNG $FEATURES" - AC_DEFINE(HAVE_LIBPNG, 1, [ Define if you have the png library. ])], - [LDFLAGS="$_ldflags" - AC_MSG_WARN([libpng is required - see http://www.libpng.org/pub/png/])]) - fi -else - ac_cv_lib_png_png_create_read_struct=no + with_png=detect) + +if test "$with_png" != no; then + PKG_CHECK_MODULES([LIBPNG], libpng, [ + FEATURES="GD_PNG $FEATURES" + AC_DEFINE(HAVE_LIBPNG, 1, [ Define if you have the png library. ]) + CPPFLAGS="$CPPFLAGS $LIBPNG_CFLAGS" + LDFLAGS="$LDFLAGS $LIBPNG_LIBS" + with_png=yes + ],[ + if test "$with_png" = yes; then + AC_MSG_ERROR([png support requested, but not found]) + fi + with_png=no + ]) +fi +if test "$with_png" = no; then AC_MSG_WARN([libpng is required - see http://www.libpng.org/pub/png/]) fi -#TBB: png12's png_create_read_struct is just as good -#2.0.23: should be = not == -if test "$ac_cv_lib_png12_png_create_read_struct" = yes; then - ac_cv_lib_png_png_create_read_struct=yes -fi - dnl FreeType configure tests snarfed from libwmf .. AC_ARG_WITH(freetype,dnl [ --with-freetype=DIR where to find the freetype 2.x library], @@ -528,7 +481,7 @@ dnl report configuration AC_MSG_RESULT([ ** Configuration summary for $PACKAGE $VERSION: - Support for PNG library: $ac_cv_lib_png_png_create_read_struct + Support for PNG library: $with_png Support for JPEG library: $ac_cv_lib_jpeg_jpeg_set_defaults Support for Freetype 2.x library: $ac_cv_lib_freetype_FT_Init_FreeType Support for Fontconfig library: $ac_cv_lib_fontconfig_FcInit