@@ -113,5 +113,67 @@ SHOBJLDFLAGS='-shared -Wl,--enable-auto-image-base -Wl,--output-def,$[@].def,--out-implib,$[@].a' ;; esac ]) + +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 +])