[ Date Index ] [ Thread Index ] [ <= Previous by date / thread ] [ Next by date / thread => ]
On Wed, 2008-03-26 at 13:16 +0000, Robin Cornelius wrote: > I'm doing a test for libxml2 such so this can be enabled with a > --with-shared-libxml2 option.... > > AC_ARG_WITH([shared-libxml],[ --with-shared-libxml=[location] Use > system shared libxml2 as xmlparser],[ > if test "x$withval" = "xyes"; then > withval= > fi > LIBXML2_LOCATION=$withval; > > AC_CHECK_HEADERS([libxml/parser.h], [], [AC_MSG_ERROR([Sorry > libxml/parser.h not found, is libxmlrpc and libxmlrpc-dev installed?])],[]) That seems a little restrictive - it would be easier to use pkg-config IMHO (it deals with extra directories in the path). Also, this check is run no matter what - should it be inside the conditional ? > AC_DEFINE([HAVE_LIBXML]) > HAVE_LIBXML=1; > ], > []) > > > The code is a bit rough but the question is:- > > if a with option specifies a location how to i use this. I am catching > the $withval but on Debian libxml/parser.h is infact under > /usr/include/libxml2/libxml/parser.h > > I can force libxml2 to be found by specifying > CFLAGS=-I/usr/include/libxml2 on the command line when i call configure > i get a warning about the preprocessor not being able to find parser.h > but the compiler is ok so it continues and builds ok. Is this the > correct way to build in this situation? No. :-) LIBXML2_REQUIRED=2.5.10 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= $LIBXML2_REQUIRED) LIBXML_VERSION=`xml2-config --version` AC_SUBST(LIBXML2_CFLAGS) AC_SUBST(LIBXML2_LIBS) > what should i do with $withval in general (or in this case > $LIBXML_LOCATION) should something like this happen :- See the QOF source where conditionals are used around libxml2 to determine if the build should use the (hefty) libxml2 or the (tiny) libsqlite0: AC_ARG_ENABLE(embedded, [ --enable-embedded Enable the SQLite backend for embedded systems and DISABLE libgdasql and the QSF XML backend. (no)], [case "${enableval}" in no) embedded="no" ;; yes) embedded="yes" ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-embedded) ;; esac]) if test "$embedded" = "yes"; then PKG_CHECK_MODULES(SQLITE, sqlite >= 2.8.0) AC_SUBST(SQLITE_LIBS) AC_SUBST(SQLITE_CFLAGS) backend="sqlite" else LIBXML2_REQUIRED=2.5.10 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= $LIBXML2_REQUIRED) LIBXML_VERSION=`xml2-config --version` AC_SUBST(LIBXML2_CFLAGS) AC_SUBST(LIBXML2_LIBS) backend="libxml2 == $LIBXML_VERSION" fi AM_CONDITIONAL(EMBEDDED, [test "$embedded" = "yes"]) sqlite="yes" AC_ARG_ENABLE(sqlite, [ --disable-sqlite Disable the SQLite backend module.], [case "${enableval}" in no) sqlite="no" ;; yes) sqlite="yes" ;; *) AC_MSG_ERROR(bad value ${enableval} for --disable-sqlite) ;; esac]) if test "$embedded" != "yes"; then if test "$sqlite" = "yes"; then SQLITE_REQUIRED=2.8.0 PKG_CHECK_MODULES(SQLITE, sqlite >= $SQLITE_REQUIRED) AC_SUBST(SQLITE_LIBS) AC_SUBST(SQLITE_CFLAGS) backend2="sqlite" fi fi AM_CONDITIONAL(USE_SQLITE, [test "$sqlite" = "yes"]) > Which is ok if you move things to /usr/local/ or > /home/robin/tests/include and /home/robin/tests/lib but it still breaks > in this particular Debian case where the headers are in an additional > subfolder. pkg-config is the tool for the job here - it copes with all these vagaries because the pc file encodes the relevant directory on a system-specific basis. -- Neil Williams ============= http://www.data-freedom.org/ http://www.nosoftwarepatents.com/ http://www.linux.codehelp.co.uk/
Attachment:
signature.asc
Description: This is a digitally signed message part
-- The Mailing List for the Devon & Cornwall LUG http://mailman.dclug.org.uk/listinfo/list FAQ: http://www.dcglug.org.uk/linux_adm/list-faq.html