Hi Keith, On Mon, 2007-07-23 at 20:55 +0100, Keith Marshall wrote: > Are you sure that your compiler is searching /usr/include, as the > default include path? > > # mkdir -p /usr/include/libxml2/libxml > # touch /usr/include/libxml2/libxml/xpath.h > > $ cat > configure.ac > AC_INIT > AC_PROG_CC > AC_CHECK_HEADER([libxml2/libxml/xpath.h],, > [AC_MSG_ERROR([cannot find xml headers])]) > > $ autoconf > $ ./configure > checking for gcc... gcc > checking for C compiler default output file name... a.out ... .. > checking for stdint.h... yes > checking for unistd.h... yes > checking libxml2/libxml/xpath.h usability... yes > checking libxml2/libxml/xpath.h presence... yes > checking for libxml2/libxml/xpath.h... yes Well... I'm unable to get my system to work as yours... it seems to me your system is not refusing to look into /usr/include/libxml2/..... mine is... In order to get this to work I had to explicitlly 'ask' ./configure dig into the libxml2 dir.... check this out (configure.ac) ---------------------------------------------- XTRAINCPATHS="-I/usr/include/libxml2/" CFLAGS="$CFLAGS $XTRAINCPATHS" CPPFLAGS="$CPPFLAGS $XTRAINCPATHS" #now that we got the include paths right lets check AC_CHECK_HEADERS([libxml/xmlreader.h libxml/xpath.h],,AC_MSG_ERROR([cannot find headers for libxml2])) AC_CHECK_HEADER([libxslt/xslt.h],,[AC_MSG_ERROR([cannot find headers for libxslt])]) ------------------------------ it seems to me that, on my system, I need to tell both to configure and to make some extra include path.... notice that I did not have to tell it the path to libxslt.... but I did have to tell it the path to libxml (my guess is it's because libxml does not reside directllu in /usr/include(, which makes some sense)... bellow is my whole configure.ac :) cheers jmf > > HTH, > Keith. --------------------------------------------------------------- AC_INIT([libbabel],[0.4]) #path to some source file just for Autoconf to double-check what it's doing AC_CONFIG_SRCDIR([langs.c]) #generate and include a header file to deal with != functions and headers in != systems #config.h is generated by autoheader, from things like: AC_HEADER_STDC, AC_CHECK_FUNCS, AC_CHECK_HEADERS #autoheader: a) reads configure.ac, b) looks into the system and c) generates config.h accordinglly AC_CONFIG_HEADER([config.h]) #initializa Automake AM_INIT_AUTOMAKE #AC_LANG([C]) #we need a C compiler, a standard install program and AC_PROG_CC AC_PROG_INSTALL #we need libtool; we need shared libraries; AM_PROG_LIBTOOL AC_PROG_LIBTOOL AC_ENABLE_SHARED #check for STDC headers in the system AC_HEADER_STDC AC_CHECK_HEADERS(unistd.h sys/socket.h) AC_CHECK_FUNCS(socket htons) #these extra pathS could also (maybe they really should) be later at (after) the "./configure ..." #this is because in some systems these includes could reside somewhere else... WTF !!! XTRAINCPATHS="-I/usr/include/libxml2/" CFLAGS="$CFLAGS $XTRAINCPATHS" CPPFLAGS="$CPPFLAGS $XTRAINCPATHS" #in fact these settings will end up in the Makefile #but they first allow for ./configure to find the libxml/xpath header #If libmxl/*.h were located at /usr/include/ none of this would be needed, would it ?! No. jmf. #now that we got the include paths right lets check if the system has the needed headers AC_CHECK_HEADERS([libxml/xmlreader.h libxml/xpath.h],,AC_MSG_ERROR([cannot find headers for libxml2])) AC_CHECK_HEADER([libxslt/xslt.h],,[AC_MSG_ERROR([cannot find headers for libxslt])]) #and the needed libs for linking #checks for existance of lib, the specified function and adds it to $(LIBS) in link phase of make AC_CHECK_LIB(xml2,xmlParseDoc,,AC_MSG_ERROR([cannot link to libxml2])) AC_CHECK_LIB(xslt,xsltInit,,AC_MSG_ERROR([cannot link to libxslt])) #set some sanity flags... well... some compilers don't know them... "gcc sweet gcc" # additionally -Werror would be too optimistic, wouldn't it ?!... CFLAGS="$CFLAGS -Wshadow -Wunused -Wall -Werror" #now we ask Autoconf to output just the top-level Makefile (we have no more levels... do we ?) AC_CONFIG_FILES([Makefile]) #mandatory AC_OUTPUT AC_OUTPUT --------------------------------------------------------------- _______________________________________________ Autoconf mailing list Autoconf@xxxxxxx http://lists.gnu.org/mailman/listinfo/autoconf