Annotation of XML/configure.in, revision 1.47

1.1       veillard    1: dnl Process this file with autoconf to produce a configure script.
                      2: AC_PREREQ(2.2)
1.42      veillard    3: AC_INIT(entities.c)
                      4: AM_CONFIG_HEADER(config.h)
                      5: AC_CANONICAL_HOST
1.1       veillard    6: 
1.26      daniel      7: LIBXML_MAJOR_VERSION=2
1.34      veillard    8: LIBXML_MINOR_VERSION=2
1.47    ! veillard    9: LIBXML_MICRO_VERSION=7
1.4       daniel     10: LIBXML_VERSION=$LIBXML_MAJOR_VERSION.$LIBXML_MINOR_VERSION.$LIBXML_MICRO_VERSION
                     11: LIBXML_VERSION_INFO=`expr $LIBXML_MAJOR_VERSION + $LIBXML_MINOR_VERSION`:$LIBXML_MICRO_VERSION:$LIBXML_MINOR_VERSION
                     12: 
1.28      daniel     13: LIBXML_VERSION_NUMBER=`expr $LIBXML_MAJOR_VERSION \* 10000 + $LIBXML_MINOR_VERSION \* 100 + $LIBXML_MICRO_VERSION`
                     14: 
1.4       daniel     15: AC_SUBST(LIBXML_MAJOR_VERSION)
                     16: AC_SUBST(LIBXML_MINOR_VERSION)
                     17: AC_SUBST(LIBXML_MICRO_VERSION)
                     18: AC_SUBST(LIBXML_VERSION)
                     19: AC_SUBST(LIBXML_VERSION_INFO)
1.28      daniel     20: AC_SUBST(LIBXML_VERSION_NUMBER)
1.4       daniel     21: 
1.42      veillard   22: VERSION=${LIBXML_VERSION}
                     23: 
                     24: AM_INIT_AUTOMAKE(libxml2, $VERSION)
                     25: 
                     26: AC_ARG_WITH(html-dir, [  --with-html-dir=PATH path to installed docs ])
1.4       daniel     27: 
1.1       veillard   28: dnl Checks for programs.
                     29: AC_PROG_CC
                     30: AC_PROG_INSTALL
1.42      veillard   31: AC_PROG_CPP
1.1       veillard   32: AC_PATH_PROG(RM, rm, /bin/rm)
                     33: AC_PATH_PROG(MV, mv, /bin/mv)
                     34: AC_PATH_PROG(TAR, tar, /bin/tar)
                     35: 
1.42      veillard   36: dnl Make sure we have an ANSI compiler
                     37: AM_C_PROTOTYPES
                     38: test "x$U" != "x" && AC_MSG_ERROR(Compiler not ANSI compliant)
                     39: 
1.43      veillard   40: # No fucking shared libs when I debug !
                     41: AC_DISABLE_SHARED
1.42      veillard   42: AM_PROG_LIBTOOL
                     43: 
                     44: AM_MAINTAINER_MODE
                     45: 
                     46: dnl Checks for zlib library.
                     47: _cppflags="${CPPFLAGS}"
                     48: _ldflags="${LDFLAGS}"
                     49: 
                     50: AC_ARG_WITH(zlib,
                     51: [  --with-zlib[=DIR]       use libz in DIR],[
                     52:   if test "$withval" != "no" -a "$withval" != "yes"; then
                     53:     Z_DIR=$withval
                     54:     CPPFLAGS="${CPPFLAGS} -I$withval/include"
                     55:     LDFLAGS="${LDFLAGS} -L$withval/lib"
                     56:   fi
                     57: ])
                     58: 
                     59: AC_CHECK_HEADERS(zlib.h,
                     60:     AC_CHECK_LIB(z, gzread,[
                     61:        AC_DEFINE(HAVE_LIBZ)
                     62:         if test "x${Z_DIR}" != "x"; then
                     63:             Z_CFLAGS="-I${Z_DIR}/include"
                     64:             Z_LIBS="-L${Z_DIR}/lib -lz"
                     65:         else
                     66:             Z_LIBS="-lz"
                     67:         fi]))
                     68: AC_SUBST(Z_CFLAGS)
                     69: AC_SUBST(Z_LIBS)
1.3       daniel     70: 
1.42      veillard   71: CPPFLAGS=${_cppflags}
                     72: LDFLAGS=${_ldflags}
1.9       daniel     73: 
1.1       veillard   74: dnl Checks for header files.
                     75: AC_HEADER_DIRENT
                     76: AC_HEADER_STDC
                     77: AC_CHECK_HEADERS(fcntl.h unistd.h ctype.h dirent.h errno.h malloc.h)
1.42      veillard   78: AC_CHECK_HEADERS(stdarg.h sys/stat.h sys/types.h time.h)
                     79: AC_CHECK_HEADERS(ieeefp.h nan.h math.h fp_class.h float.h)
1.10      daniel     80: AC_CHECK_HEADERS(stdlib.h sys/socket.h netinet/in.h arpa/inet.h)
1.42      veillard   81: AC_CHECK_HEADERS(netdb.h sys/time.h sys/select.h sys/mman.h)
                     82: 
                     83: dnl Specific dir for HTML output ?
                     84: if test "x$with_html_dir" = "x" ; then
                     85:   HTML_DIR='${datadir}/gtk-doc/html'
                     86: else
                     87:   HTML_DIR=$with_html_dir
                     88: fi
                     89: 
                     90: AC_SUBST(HTML_DIR)
                     91: 
                     92: AC_ARG_ENABLE(corba,
                     93: [  --enable-corba           Add Corba support (default)])
                     94: 
                     95: dnl
                     96: dnl Corba is enabled by default
                     97: dnl
                     98: if test "$enable_corba" = "no" ; then
                     99:    CORBA_CFLAGS="-DWITHOUT_CORBA"
                    100: fi
                    101: AC_SUBST(CORBA_CFLAGS)
1.1       veillard  102: 
                    103: dnl Checks for library functions.
                    104: AC_FUNC_STRFTIME
1.8       daniel    105: AC_CHECK_FUNCS(strdup strndup strerror snprintf)
1.42      veillard  106: AC_CHECK_FUNCS(finite isnand fp_class class fpclass)
                    107: AC_CHECK_FUNCS(strftime localtime)
                    108: 
                    109: dnl Checks for inet libraries:
                    110: AC_CHECK_FUNC(gethostent, , AC_CHECK_LIB(nsl, gethostent))
                    111: AC_CHECK_FUNC(setsockopt, , AC_CHECK_LIB(socket, setsockopt))
                    112: AC_CHECK_FUNC(connect, , AC_CHECK_LIB(inet, connect))
                    113: 
                    114: dnl Determine what socket length (socklen_t) data type is
                    115: AC_MSG_CHECKING([for type of socket length (socklen_t)])
                    116: AC_TRY_COMPILE2([
                    117: #include <stddef.h>
                    118: #include <sys/types.h>
                    119: #include <sys/socket.h>],[
                    120: (void)getsockopt (1, 1, 1, NULL, (socklen_t *)NULL)],[
                    121:   AC_MSG_RESULT(socklen_t *)
                    122:   SOCKLEN_T=socklen_t],[
                    123:   AC_TRY_COMPILE2([
                    124: #include <stddef.h>
                    125: #include <sys/types.h>
                    126: #include <sys/socket.h>],[
                    127: (void)getsockopt (1, 1, 1, NULL, (size_t *)NULL)],[
                    128:     AC_MSG_RESULT(size_t *)
                    129:     SOCKLEN_T=size_t],[
                    130:     AC_TRY_COMPILE2([
                    131: #include <stddef.h>
                    132: #include <sys/types.h>
                    133: #include <sys/socket.h>],[
                    134: (void)getsockopt (1, 1, 1, NULL, (int *)NULL)],[
                    135:       AC_MSG_RESULT(int *)
                    136:       SOCKLEN_T=int],[
                    137:       AC_MSG_WARN(could not determine)])])])
                    138: AC_DEFINE_UNQUOTED(SOCKLEN_T, $SOCKLEN_T)
                    139: 
                    140: dnl Checks for isnan in libm if not in libc
                    141: AC_CHECK_FUNC(isnan, , AC_CHECK_LIB(m, isnan,
                    142:   [M_LIBS="-lm"; AC_DEFINE(HAVE_ISNAN)]))
                    143: 
                    144: AC_CHECK_FUNC(isinf, , AC_CHECK_LIB(m, isinf,
                    145:   [M_LIBS="-lm"; AC_DEFINE(HAVE_ISINF)]))
                    146: 
                    147: XML_LIBDIR='-L${libdir}'
                    148: XML_INCLUDEDIR='-I${includedir}/libxml -I${includedir}'
                    149: XML_LIBS="-lxml $Z_LIBS $M_LIBS $LIBS"
                    150: 
                    151: dnl
                    152: dnl Extra flags
                    153: dnl
                    154: XML_CFLAGS=""
1.1       veillard  155: 
1.15      daniel    156: dnl
1.42      veillard  157: dnl Workaround for HP native compiler
1.15      daniel    158: dnl http://bugs.gnome.org/db/31/3163.html
                    159: dnl
1.42      veillard  160: if test "${GCC}" != "yes" ; then
1.15      daniel    161:     case "${host}" in
                    162:           *-*-hpux* )
1.42      veillard  163:               CFLAGS="${CFLAGS} -Wp,-H30000"
1.15      daniel    164:               ;;
                    165:     esac
1.44      veillard  166: else
                    167:     case "${host}" in
                    168:           *linux* )
                    169:                CFLAGS="${CFLAGS} -pedantic"
                    170:                ;;
                    171:     esac
1.15      daniel    172: fi
1.42      veillard  173: case ${host} in
                    174:     *-*-solaris*)
                    175:         XML_LIBDIR="${XML_LIBDIR} -R${libdir}"
                    176:         ;;
                    177: esac
1.44      veillard  178: if test "${LOGNAME}" = "veillard" ; then
                    179:     if test "${with_mem_debug}" = "" ; then
                    180:         with_mem_debug="yes"
                    181:     fi
                    182:     if test "${with_docbook}" = "" ; then
                    183:         with_docbook="yes"
                    184:     fi
                    185:     if test "${with_xptr}" = "" ; then
                    186:         with_xptr="yes"
                    187:     fi
                    188:     CFLAGS="-Wall -g -pedantic"
                    189: fi
                    190: 
1.42      veillard  191: 
1.27      daniel    192: 
1.28      daniel    193: 
                    194: dnl
                    195: dnl Use buffers for content
                    196: dnl
                    197: 
1.42      veillard  198: AC_ARG_WITH(buffers, [  --with-buffers          Use buffers for node content])
1.28      daniel    199: if test "$with_buffers" = "yes" ; then
                    200:     CFLAGS="${CFLAGS} -DXML_USE_BUFFER_CONTENT"
1.42      veillard  201:     XML_CFLAGS="${XML_CFLAGS}  -DXML_USE_BUFFER_CONTENT"
1.27      daniel    202: fi
                    203: 
1.42      veillard  204: dnl
                    205: dnl Tester makes use of readline if present
                    206: dnl
                    207: _cppflags="${CPPFLAGS}"
                    208: _ldflags="${LDFLAGS}"
                    209: 
                    210: AC_ARG_WITH(readline,
                    211: [  --with-readline=DIR     use readline in DIR],[
                    212:   if test "$withval" != "no" -a "$withval" != "yes"; then
                    213:     RDL_DIR=$withval
                    214:     CPPFLAGS="${CPPFLAGS} -I$withval/include"
                    215:     LDFLAGS="${LDFLAGS} -L$withval/lib"
                    216:   fi
                    217: ])
                    218: 
                    219: dnl check for terminal library. this is a very cool solution
                    220: dnl from octave's configure.in
                    221: unset tcap
                    222: for termlib in ncurses curses termcap terminfo termlib; do
                    223:     AC_CHECK_LIB(${termlib}, tputs, [tcap="-l$termlib"])
                    224:     test -n "$tcap" && break
                    225: done
                    226: 
                    227: AC_CHECK_HEADER(readline/history.h,
                    228:     AC_CHECK_LIB(history, append_history,[
                    229:        RDL_LIBS="-lhistory"
                    230:        AC_DEFINE(HAVE_LIBHISTORY)]))
                    231: AC_CHECK_HEADER(readline/readline.h,
                    232:     AC_CHECK_LIB(readline, readline,[
                    233:        RDL_LIBS="-lreadline $RDL_LIBS $tcap"
                    234:        AC_DEFINE(HAVE_LIBREADLINE)], , $tcap))
                    235: if test -n "$RDL_DIR" -a -n "$RDL_LIBS"; then
                    236:     CPPFLAGS="$CPPFLAGS -I${RDL_DIR}/include"
                    237:     RDL_LIBS="-L${RDL_DIR}/lib $RDL_LIBS"
                    238: else
                    239:     CPPFLAGS=${_cppflags}
                    240: fi
                    241: LDFLAGS=${_ldflags}
1.15      daniel    242: 
1.42      veillard  243: AC_SUBST(RDL_LIBS)
1.20      daniel    244: 
1.28      daniel    245: dnl
1.42      veillard  246: dnl Aloow to disable various pieces
1.28      daniel    247: dnl
                    248: 
                    249: AC_ARG_WITH(ftp, [  --with-ftp              Add the FTP support (on)])
                    250: if test "$with_ftp" = "no" ; then
                    251:     echo Disabling FTP support
                    252:     WITH_FTP=0
                    253:     FTP_OBJ=
                    254: else    
                    255:     WITH_FTP=1
                    256:     FTP_OBJ=nanoftp.o
                    257: fi
                    258: AC_SUBST(WITH_FTP)
                    259: AC_SUBST(FTP_OBJ)
                    260: 
                    261: AC_ARG_WITH(http, [  --with-http             Add the HTTP support (on)])
                    262: if test "$with_http" = "no" ; then
                    263:     echo Disabling HTTP support
                    264:     WITH_HTTP=0
                    265:     HTTP_OBJ=
                    266: else    
                    267:     WITH_HTTP=1
                    268:     HTTP_OBJ=nanohttp.o
                    269: fi
                    270: AC_SUBST(WITH_HTTP)
                    271: AC_SUBST(HTTP_OBJ)
                    272: 
                    273: AC_ARG_WITH(html, [  --with-html             Add the HTML support (on)])
                    274: if test "$with_html" = "no" ; then
                    275:     echo Disabling HTML support
                    276:     WITH_HTML=0
                    277:     HTML_OBJ=
                    278: else    
                    279:     WITH_HTML=1
                    280:     HTML_OBJ="HTMLparser.o HTMLtree.o"
                    281: fi
                    282: AC_SUBST(WITH_HTML)
                    283: AC_SUBST(HTML_OBJ)
1.37      veillard  284: 
                    285: AC_ARG_WITH(docbook, [  --with-docbook         Add the Docbook support (off)])
                    286: if test "$with_docbook" = "yes" ; then
                    287:     echo Enabling Docbook support
                    288:     WITH_SGML=1
                    289:     SGML_OBJ="SGMLparser.o"
1.42      veillard  290: else
1.37      veillard  291:     WITH_SGML=0
                    292:     SGML_OBJ=
                    293: fi
                    294: AC_SUBST(WITH_SGML)
                    295: AC_SUBST(SGML_OBJ)
1.28      daniel    296: 
                    297: AC_ARG_WITH(xpath, [  --with-xpath            Add the XPATH support (on)])
                    298: if test "$with_xpath" = "no" ; then
                    299:     echo Disabling XPATH support
                    300:     WITH_XPATH=0
                    301:     XPATH_OBJ=
                    302: else    
                    303:     WITH_XPATH=1
                    304:     XPATH_OBJ=xpath.o
                    305: fi
                    306: AC_SUBST(WITH_XPATH)
                    307: AC_SUBST(XPATH_OBJ)
1.40      veillard  308: 
1.41      veillard  309: AC_ARG_WITH(xptr, [  --with-xptr             Add the XPointer support (on)])
                    310: if test "$with_xptr" = "no" ; then
                    311:     echo Disabling XPointer support
                    312:     WITH_XPTR=0
                    313:     XPTR_OBJ=
                    314: else    
1.40      veillard  315:     WITH_XPTR=1
                    316:     XPTR_OBJ=xpointer.o
                    317: fi
                    318: AC_SUBST(WITH_XPTR)
                    319: AC_SUBST(XPTR_OBJ)
1.29      daniel    320: 
1.30      daniel    321: AC_ARG_WITH(iconv, [  --with-iconv            Add the ICONV support (on)])
                    322: if test "$with_iconv" = "no" ; then
                    323:     echo Disabling ICONV support
                    324:     WITH_ICONV=0
                    325: else    
1.38      veillard  326:     AC_CHECK_FUNCS(iconv)
1.29      daniel    327:     if test "$have_iconv" != "" ; then
                    328:         echo Iconv support not found
1.42      veillard  329:         WITH_ICONV=0
1.29      daniel    330:     else
1.42      veillard  331:         WITH_ICONV=1
1.29      daniel    332:     fi
1.42      veillard  333: fi  
1.29      daniel    334: AC_SUBST(WITH_ICONV)
1.28      daniel    335: 
                    336: AC_ARG_WITH(debug, [  --with-debug            Add the debugging module (on)])
                    337: if test "$with_debug" = "no" ; then
                    338:     echo Disabling DEBUG support
                    339:     WITH_DEBUG=0
                    340:     DEBUG_OBJ=
                    341: else    
                    342:     WITH_DEBUG=1
                    343:     DEBUG_OBJ=debugXML.o
                    344: fi
                    345: AC_SUBST(WITH_DEBUG)
                    346: AC_SUBST(DEBUG_OBJ)
                    347: 
                    348: AC_ARG_WITH(mem_debug, [  --with-mem-debug        Add the memory debugging module (off)])
1.42      veillard  349: if test "$with_mem_debug" = "yes" ; then
1.28      daniel    350:     echo Enabling memory debug support
                    351:     WITH_MEM_DEBUG=1
1.42      veillard  352: else    
                    353:     WITH_MEM_DEBUG=0
1.28      daniel    354: fi
                    355: AC_SUBST(WITH_MEM_DEBUG)
                    356: 
1.42      veillard  357: AC_SUBST(CFLAGS)
                    358: AC_SUBST(XML_CFLAGS)
                    359: 
                    360: AC_SUBST(XML_LIBDIR)
                    361: AC_SUBST(XML_LIBS)
                    362: AC_SUBST(XML_INCLUDEDIR)
                    363: AC_SUBST(HTML_DIR)
                    364: AC_SUBST(HAVE_ISNAN)
                    365: AC_SUBST(HAVE_ISINF)
                    366: 
                    367: AC_SUBST(M_LIBS)
                    368: AC_SUBST(RDL_LIBS)
                    369: 
                    370: dnl
                    371: dnl create the libxml and include links needed to get dependencies right
                    372: dnl
                    373: if test ! -d $srcdir/include/libxml
                    374: then
                    375:     if test ! -d $srcdir/include
                    376:     then
                    377:         rm -f $srcdir/include
                    378:         mkdir $srcdir/include
                    379:     fi
                    380:     rm -f $srcdir/libxml
                    381:     (cd $srcdir/include ; ln -s .. libxml)
                    382: fi
1.45      veillard  383: if test ! -h $srcdir/libxml
1.42      veillard  384: then
                    385:     (cd $srcdir ; ln -s include/libxml libxml)
                    386: fi
1.45      veillard  387: if test ! -h include/libxml
1.42      veillard  388: then
                    389:     if test ! -d include
                    390:     then
                    391:         rm -f include
                    392:         mkdir include
                    393:     fi
                    394:     (cd include ; ln -s ../libxml libxml)
                    395: fi
1.45      veillard  396: if test ! -f libxml
1.42      veillard  397: then
                    398:     rm -rf libxml
                    399:     ln -s $srcdir/include/libxml libxml
                    400: fi
                    401: 
                    402: AC_OUTPUT(libxml.spec Makefile include/Makefile doc/Makefile example/Makefile libxml/xmlversion.h xml-config libxml-2.0.pc)
1.28      daniel    403: 

Webmaster