configure does not work with OE pkg-config for the libxml2 option Upstream-Status: OE specific Signed-off-by: Armin Kuster Index: opendnssec-2.1.6/m4/acx_libxml2.m4 =================================================================== --- opendnssec-2.1.6.orig/m4/acx_libxml2.m4 +++ opendnssec-2.1.6/m4/acx_libxml2.m4 @@ -1,37 +1,67 @@ +#serial 11 +AU_ALIAS([CHECK_XML2], [ACX_LIBXML2]) AC_DEFUN([ACX_LIBXML2],[ - AC_ARG_WITH(libxml2, - [AS_HELP_STRING([--with-libxml2=DIR],[look for libxml2 in this dir])], - [ - XML2_PATH="$withval" - AC_PATH_PROGS(XML2_CONFIG, xml2-config, xml2-config, $XML2_PATH/bin) - ],[ - XML2_PATH="/usr/local" - AC_PATH_PROGS(XML2_CONFIG, xml2-config, xml2-config, $PATH) - ]) - if test -x "$XML2_CONFIG" - then - AC_MSG_CHECKING(what are the xml2 includes) - XML2_INCLUDES="`$XML2_CONFIG --cflags`" - AC_MSG_RESULT($XML2_INCLUDES) - - AC_MSG_CHECKING(what are the xml2 libs) - XML2_LIBS="`$XML2_CONFIG --libs`" - AC_MSG_RESULT($XML2_LIBS) - - tmp_CPPFLAGS=$CPPFLAGS - tmp_LIBS=$LIBS - - CPPFLAGS="$CPPFLAGS $XML2_INCLUDES" - LIBS="$LIBS $XML2_LIBS" - - AC_CHECK_LIB(xml2, xmlDocGetRootElement,,[AC_MSG_ERROR([Can't find libxml2 library])]) - - CPPFLAGS=$tmp_CPPFLAGS - LIBS=$tmp_LIBS - else - AC_MSG_ERROR([libxml2 required, but not found.]) - fi + found=false + AC_ARG_WITH([libxml2], + [AS_HELP_STRING([--with-libxml2=DIR], + [root of the libxml directory])], + [ + case "$withval" in + "" | y | ye | yes | n | no) + AC_MSG_ERROR([Invalid --with-libxml2 value]) + ;; + *) xml2dirs="$withval" + ;; + esac + ], [ + # if pkg-config is installed and openssl has installed a .pc file, + # then use that information and don't search ssldirs + AC_CHECK_TOOL([PKG_CONFIG], [pkg-config]) + if test x"$PKG_CONFIG" != x""; then + XML2_LDFLAGS=`$PKG_CONFIG libxml-2.0 --libs-only-L 2>/dev/null` + if test $? = 0; then + XML2_LIBS=`$PKG_CONFIG libxml-2.0 --libs-only-l 2>/dev/null` + XML2_INCLUDES=`$PKG_CONFIG libxml-2.0 --cflags-only-I 2>/dev/null` + found=true + fi + fi - AC_SUBST(XML2_INCLUDES) - AC_SUBST(XML2_LIBS) + # no such luck; use some default ssldirs + if ! $found; then + xml2dirs="/usr/local/libxml /usr/lib/libxml /usr/libxml /usr/pkg /usr/local /usr" + fi + ] + ) + + + # note that we #include , so the libxml2 headers have to be in + # an 'libxml' subdirectory + + if ! $found; then + XML2_INCLUDES= + for xml2dir in $xml2dirs; do + AC_MSG_CHECKING([for XML2 in $xml2dir]) + if test -f "$xml2dir/include/libxml2/libxml/tree.h"; then + XML2_INCLUDES="-I$xml2dir/include/libxml2" + XML2_LDFLAGS="-L$xml2dir/lib" + XML2_LIBS="-lxml2" + found=true + AC_MSG_RESULT([yes]) + break + else + AC_MSG_RESULT([no]) + fi + done + + # if the file wasn't found, well, go ahead and try the link anyway -- maybe + # it will just work! + fi + + LDFLAGS="$LDFLAGS $XML2_LDFLAGS" + LIBS="$XML2_LIBS $LIBS" + CPPFLAGS="$XML2_INCLUDES $CPPFLAGS" + + AC_SUBST(XML2_INCLUDES) + AC_SUBST(XML2_LIBS) + AC_SUBST(XML2_LDFLAGS) ])