# Usage: # DC_ASK_OPTLIB(library, function, header, description, packagename, libdefine, headerdefine) # Only the last argument is optional, because they will only be defined if both the lib # and header are found # Example: # DC_ASK_OPTLIB(z, compress2, zlib.h, [ Support zlib], zlib, HAVE_LIBZ, HAVE_ZLIB_H) AC_DEFUN(DC_ASK_OPTLIB, [ AC_ARG_WITH($5, [ --with-$5 $4], [ # Specified LIBSPEC=$withval ], [ # Not specified LIBSPECFLAGS=`pkg-config --libs $5 2>/dev/null` LIBSPECCFLAGS=`pkg-config --cflags $5 2>/dev/null` AC_CHECK_LIB($1, $2, [ OLDCPPFLAGS="$CPPFLAGS" OLDCFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS $LIBSPECCFLAGS" CFLAGS="$CFLAGS $LIBSPECCFLAGS" AC_CHECK_HEADER($3, [ LIBSPEC=yes ], [ LIBSPEC=no ]) CPPFLAGS="$OLDCPPFLAGS" CFLAGS="$OLDCFLAGS" ], [ LIBSPEC=no AC_MSG_WARN(Didn't find $5) ], $LIBSPECFLAGS) ]) case $LIBSPEC in no) AC_MSG_WARN(Support for $5 disabled) ;; *) if test "${LIBSPEC}" = "yes"; then true else LIBSPECFLAGS="-L${LIBSPEC}/lib ${LIBSPECFLAGS}" LIBSPECCFLAGS="-I${LIBSPEC}/include ${LIBSPECCFLAGS}" fi AC_CHECK_LIB($1, $2, [ OLDCFLAGS="$CFLAGS" OLDCPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS ${LIBSPECCFLAGS}" CFLAGS="$CFLAGS ${LIBSPECCFLAGS}" AC_CHECK_HEADER($3, [ if test -n "$7"; then AC_DEFINE($7, [1], [Define to 1 if you have the <$3> header file.]) fi if test -n "$6"; then AC_DEFINE($6, [1], [Define to 1 if you have $2 from $5]) fi LDFLAGS="$LDFLAGS $LIBSPECFLAGS" LIBS="$LIBS -l$1" ], [ CFLAGS="$OLDCFLAGS" CPPFLAGS="$OLDCPPFLAGS" AC_MSG_ERROR(Could not find $3) ]) ], [ AC_MSG_ERROR(Could not find $5) ], $LIBSPECFLAGS) ;; esac ])