1dnl Process this file with autoconf to produce a configure script. 2AC_PREREQ([2.63]) 3 4m4_define([MAJOR_VERSION], 2) 5m4_define([MINOR_VERSION], 9) 6m4_define([MICRO_VERSION], 11) 7 8AC_INIT([libxml2],[MAJOR_VERSION.MINOR_VERSION.MICRO_VERSION]) 9AC_CONFIG_SRCDIR([entities.c]) 10AC_CONFIG_HEADERS([config.h]) 11AM_MAINTAINER_MODE([enable]) 12AC_CONFIG_MACRO_DIR([m4]) 13AC_CANONICAL_HOST 14 15LIBXML_MAJOR_VERSION=MAJOR_VERSION 16LIBXML_MINOR_VERSION=MINOR_VERSION 17LIBXML_MICRO_VERSION=MICRO_VERSION 18LIBXML_MICRO_VERSION_SUFFIX= 19LIBXML_VERSION=$LIBXML_MAJOR_VERSION.$LIBXML_MINOR_VERSION.$LIBXML_MICRO_VERSION$LIBXML_MICRO_VERSION_SUFFIX 20LIBXML_VERSION_INFO=`expr $LIBXML_MAJOR_VERSION + $LIBXML_MINOR_VERSION`:$LIBXML_MICRO_VERSION:$LIBXML_MINOR_VERSION 21 22LIBXML_VERSION_NUMBER=`expr $LIBXML_MAJOR_VERSION \* 10000 + $LIBXML_MINOR_VERSION \* 100 + $LIBXML_MICRO_VERSION` 23 24if test -f CVS/Entries ; then 25 extra=`grep ChangeLog CVS/Entries | grep -v LIBXML | sed -e s\%/ChangeLog/1\.%% -e s\%/.*$%%` 26 echo extra=$extra 27 if test "$extra" != "" 28 then 29 LIBXML_VERSION_EXTRA="-CVS$extra" 30 fi 31else if test -d .svn ; then 32 extra=`svn info | grep Revision | sed 's+Revision: ++'` 33 echo extra=$extra 34 if test "$extra" != "" 35 then 36 LIBXML_VERSION_EXTRA="-SVN$extra" 37 fi 38else if test -d .git ; then 39 extra=`git describe 2>/dev/null | sed 's+LIBXML[[0-9.]]*-++'` 40 echo extra=$extra 41 if test "$extra" != "" 42 then 43 LIBXML_VERSION_EXTRA="-GIT$extra" 44 fi 45fi 46fi 47fi 48AC_SUBST(LIBXML_MAJOR_VERSION) 49AC_SUBST(LIBXML_MINOR_VERSION) 50AC_SUBST(LIBXML_MICRO_VERSION) 51AC_SUBST(LIBXML_VERSION) 52AC_SUBST(LIBXML_VERSION_INFO) 53AC_SUBST(LIBXML_VERSION_NUMBER) 54AC_SUBST(LIBXML_VERSION_EXTRA) 55 56VERSION=${LIBXML_VERSION} 57 58AM_INIT_AUTOMAKE([foreign]) 59 60# Support silent build rules, requires at least automake-1.11. Disable 61# by either passing --disable-silent-rules to configure or passing V=1 62# to make 63m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) 64 65dnl Checks for programs. 66AC_PROG_CC 67AC_PROG_INSTALL 68AC_PROG_LN_S 69AC_PROG_MKDIR_P 70AC_PROG_CPP 71AC_PATH_PROG(MV, mv, /bin/mv) 72AC_PATH_PROG(TAR, tar, /bin/tar) 73AC_PATH_PROG(PERL, perl, /usr/bin/perl) 74AC_PATH_PROG(WGET, wget, /usr/bin/wget) 75AC_PATH_PROG(XMLLINT, xmllint, /usr/bin/xmllint) 76AC_PATH_PROG(XSLTPROC, xsltproc, /usr/bin/xsltproc) 77PKG_PROG_PKG_CONFIG 78 79LT_INIT 80 81dnl 82dnl if the system support linker version scripts for symbol versioning 83dnl then add it 84dnl 85VERSION_SCRIPT_FLAGS= 86# lt_cv_prog_gnu_ld is from libtool 2.+ 87if test "$lt_cv_prog_gnu_ld" = yes; then 88 VERSION_SCRIPT_FLAGS=-Wl,--version-script= 89else 90 case $host in 91 *-*-sunos*) VERSION_SCRIPT_FLAGS="-Wl,-M -Wl,";; 92 esac 93fi 94AC_SUBST(VERSION_SCRIPT_FLAGS) 95AM_CONDITIONAL([USE_VERSION_SCRIPT], [test -n "$VERSION_SCRIPT_FLAGS"]) 96 97dnl 98dnl We process the AC_ARG_WITH first so that later we can modify 99dnl some of them to try to prevent impossible combinations. This 100dnl also allows up so alphabetize the choices 101dnl 102 103dnl 104dnl zlib option might change flags, so we save them initially 105dnl 106_cppflags="${CPPFLAGS}" 107_libs="${LIBS}" 108 109AC_ARG_WITH(c14n, 110[ --with-c14n add the Canonicalization support (on)]) 111AC_ARG_WITH(catalog, 112[ --with-catalog add the Catalog support (on)]) 113AC_ARG_WITH(debug, 114[ --with-debug add the debugging module (on)]) 115AC_ARG_WITH(docbook, 116[ --with-docbook add Docbook SGML support (on)]) 117AC_ARG_WITH(fexceptions, 118[ --with-fexceptions add GCC flag -fexceptions for C++ exceptions (off)]) 119AC_ARG_WITH(ftp, 120[ --with-ftp add the FTP support (on)]) 121AC_ARG_WITH(history, 122[ --with-history add history support to xmllint shell(off)]) 123AC_ARG_WITH(html, 124[ --with-html add the HTML support (on)]) 125dnl Specific dir for HTML output ? 126AC_ARG_WITH(html-dir, AS_HELP_STRING([--with-html-dir=path], 127 [path to base html directory, default $datadir/doc/html]), 128 [HTML_DIR=$withval], [HTML_DIR='$(datadir)/doc']) 129 130AC_ARG_WITH(html-subdir, AS_HELP_STRING([--with-html-subdir=path], 131 [directory used under html-dir, default $PACKAGE-$VERSION/html]), 132 [test "x$withval" != "x" && HTML_DIR="$HTML_DIR/$withval"], 133 [HTML_DIR="$HTML_DIR/\$(PACKAGE)-\$(VERSION)/html"]) 134AC_SUBST(HTML_DIR) 135AC_ARG_WITH(http, 136[ --with-http add the HTTP support (on)]) 137AC_ARG_WITH(iconv, 138[ --with-iconv[[=DIR]] add ICONV support (on)]) 139AC_ARG_WITH(icu, 140[ --with-icu add ICU support (off)]) 141AC_ARG_WITH(iso8859x, 142[ --with-iso8859x add ISO8859X support if no iconv (on)]) 143AC_ARG_WITH(legacy, 144[ --with-legacy add deprecated APIs for compatibility (on)]) 145AC_ARG_WITH(mem_debug, 146[ --with-mem-debug add the memory debugging module (off)]) 147AC_ARG_WITH(minimum, 148[ --with-minimum build a minimally sized library (off)]) 149AC_ARG_WITH(output, 150[ --with-output add the serialization support (on)]) 151AC_ARG_WITH(pattern, 152[ --with-pattern add the xmlPattern selection interface (on)]) 153AC_ARG_WITH(push, 154[ --with-push add the PUSH parser interfaces (on)]) 155AC_ARG_WITH(python, 156[ --with-python[[=DIR]] build Python bindings if found]) 157AC_ARG_WITH(python_install_dir, 158[ --with-python-install-dir=DIR 159 install Python bindings in DIR]) 160AC_ARG_WITH(reader, 161[ --with-reader add the xmlReader parsing interface (on)]) 162AC_ARG_WITH(readline, 163[ --with-readline=DIR use readline in DIR],[ 164 if test "$withval" != "no" -a "$withval" != "yes"; then 165 RDL_DIR=$withval 166 CPPFLAGS="${CPPFLAGS} -I$withval/include" 167 LDFLAGS="${LDFLAGS} -L$withval/lib" 168 fi 169]) 170AC_ARG_WITH(regexps, 171[ --with-regexps add Regular Expressions support (on)]) 172AC_ARG_WITH(run_debug, 173[ --with-run-debug add the runtime debugging module (off)]) 174AC_ARG_WITH(sax1, 175[ --with-sax1 add the older SAX1 interface (on)]) 176AC_ARG_WITH(schemas, 177[ --with-schemas add Relax-NG and Schemas support (on)]) 178AC_ARG_WITH(schematron, 179[ --with-schematron add Schematron support (on)]) 180AC_ARG_WITH(threads, 181[ --with-threads add multithread support(on)]) 182AC_ARG_WITH(thread-alloc, 183[ --with-thread-alloc add per-thread memory(off)]) 184AC_ARG_WITH(tree, 185[ --with-tree add the DOM like tree manipulation APIs (on)]) 186AC_ARG_WITH(valid, 187[ --with-valid add the DTD validation support (on)]) 188AC_ARG_WITH(writer, 189[ --with-writer add the xmlWriter saving interface (on)]) 190AC_ARG_WITH(xinclude, 191[ --with-xinclude add the XInclude support (on)]) 192AC_ARG_WITH(xpath, 193[ --with-xpath add the XPATH support (on)]) 194AC_ARG_WITH(xptr, 195[ --with-xptr add the XPointer support (on)]) 196AC_ARG_WITH(modules, 197[ --with-modules add the dynamic modules support (on)]) 198AC_ARG_WITH(zlib, 199[ --with-zlib[[=DIR]] use libz in DIR],[ 200 if test "$withval" != "no" -a "$withval" != "yes"; then 201 Z_DIR=$withval 202 CPPFLAGS="${CPPFLAGS} -I$withval/include" 203 LDFLAGS="${LDFLAGS} -L$withval/lib" 204 fi 205]) 206AC_ARG_WITH(lzma, 207[ --with-lzma[[=DIR]] use liblzma in DIR],[ 208 if test "$withval" != "no" -a "$withval" != "yes"; then 209 LZMA_DIR=$withval 210 CPPFLAGS="${CPPFLAGS} -I$withval/include" 211 LDFLAGS="${LDFLAGS} -L$withval/lib" 212 fi 213]) 214AC_ARG_WITH(coverage, 215[ --with-coverage build for code coverage with GCC (off)]) 216 217AC_ARG_ENABLE(rebuild-docs, 218[ --enable-rebuild-docs[[=yes/no]] rebuild some generated docs [[default=no]]]) 219if test "$enable_rebuild_docs" = "yes" -a "$srcdir" != "."; then 220 AC_MSG_ERROR([cannot rebuild docs when builddir != srcdir]) 221fi 222AM_CONDITIONAL([REBUILD_DOCS], [test "$enable_rebuild_docs" = "yes" -o "$USER" = "veillard"]) 223 224dnl 225dnl hard dependencies on options 226dnl 227if test "$with_schemas" = "yes" 228then 229 with_pattern=yes 230 with_regexps=yes 231fi 232if test "$with_schematron" = "yes" 233then 234 with_pattern=yes 235 with_tree=yes 236 with_xpath=yes 237fi 238if test "$with_reader" = "yes" 239then 240 with_push=yes 241fi 242if test "$with_xptr" = "yes" 243then 244 with_xpath=yes 245fi 246dnl 247dnl option to build a minimal libxml2 library 248dnl 249if test "$with_minimum" = "yes" 250then 251 echo "Configuring for a minimal library" 252 if test "$with_c14n" = "" 253 then 254 with_c14n=no 255 fi 256 if test "$with_catalog" = "" 257 then 258 with_catalog=no 259 fi 260 echo So far so good! 261 if test "$with_debug" = "" 262 then 263 with_debug=no 264 fi 265 if test "$with_docbook" = "" 266 then 267 with_docbook=no 268 fi 269 if test "$with_fexceptions" = "" 270 then 271 with_fexceptions=no 272 fi 273 if test "$with_ftp" = "" 274 then 275 with_ftp=no 276 fi 277 if test "$with_history" = "" 278 then 279 with_history=no 280 fi 281 if test "$with_html" = "" 282 then 283 with_html=no 284 fi 285 if test "$with_http" = "" 286 then 287 with_http=no 288 fi 289 if test "$with_iconv" = "" 290 then 291 with_iconv=no 292 fi 293 if test "$with_iso8859x" = "" 294 then 295 with_iso8859x=no 296 fi 297 if test "$with_legacy" = "" 298 then 299 with_legacy=no 300 fi 301 if test "$with_mem_debug" = "" 302 then 303 with_mem_debug=no 304 fi 305 if test "$with_output" = "" 306 then 307 with_output=no 308 fi 309 if test "$with_pattern" = "" 310 then 311 with_pattern=no 312 fi 313 if test "$with_push" = "" 314 then 315 with_push=no 316 fi 317 if test "$with_python" = "" 318 then 319 with_python=no 320 fi 321 if test "$with_reader" = "" 322 then 323 with_reader=no 324 fi 325 if test "$with_readline" = "" 326 then 327 with_readline=no 328 fi 329 if test "$with_regexps" = "" 330 then 331 with_regexps=no 332 fi 333 if test "$with_run_debug" = "" 334 then 335 with_run_debug=no 336 fi 337 if test "$with_sax1" = "" 338 then 339 with_sax1=no 340 fi 341 if test "$with_schemas" = "" 342 then 343 with_schemas=no 344 fi 345 if test "$with_schematron" = "" 346 then 347 with_schematron=no 348 fi 349 if test "$with_threads" = "" 350 then 351 with_threads=no 352 fi 353 if test "$with_thread_alloc" = "" 354 then 355 with_thread_alloc=no 356 fi 357 if test "$with_tree" = "" 358 then 359 with_tree=no 360 fi 361 if test "$with_valid" = "" 362 then 363 with_valid=no 364 fi 365 if test "$with_writer" = "" 366 then 367 with_writer=no 368 fi 369 if test "$with_xinclude" = "" 370 then 371 with_xinclude=no 372 fi 373 if test "$with_xpath" = "" 374 then 375 with_xpath=no 376 fi 377 if test "$with_xptr" = "" 378 then 379 with_xptr=no 380 fi 381 if test "$with_zlib" = "" 382 then 383 with_zlib=no 384 fi 385 if test "$with_modules" = "" 386 then 387 with_modules=no 388 fi 389fi 390 391echo Checking zlib 392 393dnl Checks for zlib library. 394 395WITH_ZLIB=0 396if test "$with_zlib" = "no"; then 397 echo "Disabling zlib compression support" 398else 399 # Don't run pkg-config if with_zlib contains a path. 400 if test "x$Z_DIR" = "x"; then 401 # Try pkg-config first so that static linking works. 402 PKG_CHECK_MODULES([Z],[zlib], 403 [WITH_ZLIB=1], 404 [:]) 405 fi 406 407 if test "$WITH_ZLIB" = "0"; then 408 AC_CHECK_HEADERS(zlib.h, 409 AC_CHECK_LIB(z, gzread,[ 410 WITH_ZLIB=1 411 if test "x${Z_DIR}" != "x"; then 412 Z_CFLAGS="-I${Z_DIR}/include" 413 Z_LIBS="-L${Z_DIR}/lib -lz" 414 [case ${host} in 415 *-*-solaris*) 416 Z_LIBS="-L${Z_DIR}/lib -R${Z_DIR}/lib -lz" 417 ;; 418 esac] 419 else 420 Z_LIBS="-lz" 421 fi]) 422 ) 423 fi 424fi 425 426AC_SUBST(Z_CFLAGS) 427AC_SUBST(Z_LIBS) 428AC_SUBST(WITH_ZLIB) 429 430echo Checking lzma 431 432dnl Checks for lzma library. 433 434WITH_LZMA=0 435if test "$with_lzma" = "no"; then 436 echo "Disabling lzma compression support" 437else 438 # Don't run pkg-config if with_lzma contains a path. 439 if test "x$LZMA_DIR" = "x"; then 440 # Try pkg-config first so that static linking works. 441 PKG_CHECK_MODULES([LZMA],[liblzma], 442 [WITH_LZMA=1], 443 [:]) 444 fi 445 446 # If pkg-config failed, fall back to AC_CHECK_LIB. This 447 # will not pick up the necessary LIBS flags for liblzma's 448 # private dependencies, though, so static linking may fail. 449 if test "$WITH_LZMA" = "0"; then 450 AC_CHECK_HEADERS(lzma.h, 451 AC_CHECK_LIB(lzma, lzma_code,[ 452 WITH_LZMA=1 453 if test "x${LZMA_DIR}" != "x"; then 454 LZMA_CFLAGS="-I${LZMA_DIR}/include" 455 LZMA_LIBS="-L${LZMA_DIR}/lib -llzma" 456 else 457 LZMA_LIBS="-llzma" 458 fi]) 459 ) 460 fi 461fi 462 463AC_SUBST(LZMA_CFLAGS) 464AC_SUBST(LZMA_LIBS) 465AC_SUBST(WITH_LZMA) 466 467CPPFLAGS=${_cppflags} 468LIBS=${_libs} 469 470echo Checking headers 471 472dnl Checks for header files. 473AC_HEADER_DIRENT 474AC_HEADER_STDC 475AC_CHECK_HEADERS([fcntl.h]) 476AC_CHECK_HEADERS([unistd.h]) 477AC_CHECK_HEADERS([ctype.h]) 478AC_CHECK_HEADERS([dirent.h]) 479AC_CHECK_HEADERS([errno.h]) 480AC_CHECK_HEADERS([malloc.h]) 481AC_CHECK_HEADERS([stdarg.h]) 482AC_CHECK_HEADERS([sys/stat.h]) 483AC_CHECK_HEADERS([sys/types.h]) 484AC_CHECK_HEADERS([stdint.h]) 485AC_CHECK_HEADERS([inttypes.h]) 486AC_CHECK_HEADERS([time.h]) 487AC_CHECK_HEADERS([math.h]) 488AC_CHECK_HEADERS([limits.h]) 489AC_CHECK_HEADERS([float.h]) 490AC_CHECK_HEADERS([stdlib.h]) 491AC_CHECK_HEADERS([sys/socket.h], [], [], 492[#if HAVE_SYS_TYPES_H 493# include <sys/types.h> 494# endif 495]) 496AC_CHECK_HEADERS([netinet/in.h], [], [], 497[#if HAVE_SYS_TYPES_H 498# include <sys/types.h> 499# endif 500]) 501AC_CHECK_HEADERS([arpa/inet.h], [], [], 502[#if HAVE_SYS_TYPES_H 503# include <sys/types.h> 504# endif 505#if HAVE_ARPA_INET_H 506# include <arpa/inet.h> 507# endif 508]) 509AC_CHECK_HEADERS([netdb.h]) 510AC_CHECK_HEADERS([sys/time.h]) 511AC_CHECK_HEADERS([sys/select.h]) 512AC_CHECK_HEADERS([poll.h]) 513AC_CHECK_HEADERS([sys/mman.h]) 514AC_CHECK_HEADERS([sys/timeb.h]) 515AC_CHECK_HEADERS([signal.h]) 516AC_CHECK_HEADERS([arpa/nameser.h], [], [], 517[#if HAVE_SYS_TYPES_H 518# include <sys/types.h> 519# endif 520]) 521AC_CHECK_HEADERS([resolv.h], [], [], 522[#if HAVE_SYS_TYPES_H 523# include <sys/types.h> 524# endif 525#if HAVE_NETINET_IN_H 526# include <netinet/in.h> 527# endif 528#if HAVE_ARPA_NAMESER_H 529# include <arpa/nameser.h> 530# endif 531]) 532AC_CHECK_HEADERS([dl.h]) 533AC_CHECK_HEADERS([dlfcn.h]) 534 535 536echo Checking types 537 538AC_TYPE_UINT32_T 539 540 541echo Checking libraries 542 543dnl Checks for library functions. 544AC_FUNC_STRFTIME 545AC_CHECK_FUNCS(strftime localtime gettimeofday ftime) 546AC_CHECK_FUNCS(stat signal) 547AC_CHECK_FUNCS(rand rand_r srand time) 548AC_CHECK_FUNCS(isascii mmap munmap putenv) 549 550AH_VERBATIM([HAVE_MUNMAP_AFTER],[/* mmap() is no good without munmap() */ 551#if defined(HAVE_MMAP) && !defined(HAVE_MUNMAP) 552# undef /**/ HAVE_MMAP 553#endif]) 554 555dnl Checking for va_copy availability 556AC_MSG_CHECKING([for va_copy]) 557AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdarg.h> 558va_list ap1,ap2;]], [[va_copy(ap1,ap2);]])], 559have_va_copy=yes, 560have_va_copy=no) 561AC_MSG_RESULT($have_va_copy) 562if test x"$have_va_copy" = x"yes"; then 563 AC_DEFINE(HAVE_VA_COPY,1,[Whether va_copy() is available]) 564else 565 AC_MSG_CHECKING([for __va_copy]) 566 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdarg.h> 567 va_list ap1,ap2;]], [[__va_copy(ap1,ap2);]])], 568 have___va_copy=yes, 569 have___va_copy=no) 570 AC_MSG_RESULT($have___va_copy) 571 if test x"$have___va_copy" = x"yes"; then 572 AC_DEFINE(HAVE___VA_COPY,1,[Whether __va_copy() is available]) 573 fi 574fi 575 576dnl Checking whether va_list is an array type 577AC_MSG_CHECKING([whether va_list is an array type]) 578AC_TRY_COMPILE2([ 579#include <stdarg.h> 580void a(va_list * ap) {}],[ 581va_list ap1, ap2; a(&ap1); ap2 = (va_list) ap1],[ 582 AC_MSG_RESULT(no)],[ 583 AC_MSG_RESULT(yes) 584 AC_DEFINE([VA_LIST_IS_ARRAY], [1],[Define if va_list is an array type])]) 585 586dnl Checks for inet libraries: 587AC_SEARCH_LIBS(gethostent, [nsl]) 588AC_SEARCH_LIBS(setsockopt, [socket net network]) 589AC_SEARCH_LIBS(connect, [inet]) 590 591dnl Determine what socket length (socklen_t) data type is 592AC_MSG_CHECKING([for type of socket length (socklen_t)]) 593AC_TRY_COMPILE2([ 594#include <stddef.h> 595#include <sys/types.h> 596#include <sys/socket.h>],[ 597(void)getsockopt (1, 1, 1, NULL, (socklen_t *)NULL)],[ 598 AC_MSG_RESULT(socklen_t *) 599 XML_SOCKLEN_T=socklen_t],[ 600 AC_TRY_COMPILE2([ 601#include <stddef.h> 602#include <sys/types.h> 603#include <sys/socket.h>],[ 604(void)getsockopt (1, 1, 1, NULL, (size_t *)NULL)],[ 605 AC_MSG_RESULT(size_t *) 606 XML_SOCKLEN_T=size_t],[ 607 AC_TRY_COMPILE2([ 608#include <stddef.h> 609#include <sys/types.h> 610#include <sys/socket.h>],[ 611(void)getsockopt (1, 1, 1, NULL, (int *)NULL)],[ 612 AC_MSG_RESULT(int *) 613 XML_SOCKLEN_T=int],[ 614 AC_MSG_WARN(could not determine) 615 XML_SOCKLEN_T="int"])])]) 616AC_DEFINE_UNQUOTED(XML_SOCKLEN_T, $XML_SOCKLEN_T, [Determine what socket length (socklen_t) data type is]) 617 618dnl Checking if gethostbyname() argument is const. 619AC_MSG_CHECKING([for const gethostbyname() argument]) 620AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <netdb.h>]], 621 [[(void)gethostbyname((const char *)"");]])], 622have_gethostbyname_const_arg=yes, 623have_gethostbyname_const_arg=no) 624AC_MSG_RESULT($have_gethostbyname_const_arg) 625if test x"$have_gethostbyname_const_arg" = x"yes"; then 626 AC_DEFINE([GETHOSTBYNAME_ARG_CAST], [], 627 [Type cast for the gethostbyname() argument]) 628else 629 AC_DEFINE([GETHOSTBYNAME_ARG_CAST], [(char *)], 630 [Type cast for the gethostbyname() argument]) 631fi 632 633dnl Checking if send() second argument is const. 634AC_MSG_CHECKING([for const send() second argument]) 635AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h> 636#include <sys/socket.h>]], 637 [[(void)send(1,(const char *)"",1,1);]])], 638have_send_const_arg2=yes, 639have_send_const_arg2=no) 640AC_MSG_RESULT($have_send_const_arg2) 641if test x"$have_send_const_arg2" = x"yes"; then 642 AC_DEFINE([SEND_ARG2_CAST], [], 643 [Type cast for the send() function 2nd arg]) 644else 645 AC_DEFINE([SEND_ARG2_CAST], [(char *)], 646 [Type cast for the send() function 2nd arg]) 647fi 648 649dnl Checking whether __attribute__((destructor)) is accepted by the compiler 650AC_MSG_CHECKING([whether __attribute__((destructor)) is accepted]) 651AC_TRY_COMPILE2([ 652void __attribute__((destructor)) 653f(void) {}], [], [ 654 AC_MSG_RESULT(yes) 655 AC_DEFINE([HAVE_ATTRIBUTE_DESTRUCTOR], [1],[Define if __attribute__((destructor)) is accepted]) 656 AC_DEFINE([ATTRIBUTE_DESTRUCTOR], [__attribute__((destructor))],[A form that will not confuse apibuild.py])],[ 657 AC_MSG_RESULT(no)]) 658 659 660dnl ***********************Checking for availability of IPv6******************* 661 662AC_MSG_CHECKING([whether to enable IPv6]) 663AC_ARG_ENABLE(ipv6, [ --enable-ipv6[[=yes/no]] enables compilation of IPv6 code [[default=yes]]],, enable_ipv6=yes) 664if test "$with_minimum" = "yes" 665then 666 enable_ipv6=no 667fi 668if test $enable_ipv6 = yes; then 669 have_ipv6=no 670 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 671# include <sys/types.h> 672# include <sys/socket.h> 673 ]], [[ 674 struct sockaddr_storage ss; 675 socket(AF_INET6, SOCK_STREAM, 0) 676 ]])], 677 have_ipv6=yes, 678 have_ipv6=no 679 ) 680 AC_MSG_RESULT($have_ipv6) 681 682 if test $have_ipv6 = yes; then 683 AC_DEFINE([SUPPORT_IP6], [], [Support for IPv6]) 684 have_broken_ss_family=no 685 686 dnl ********************************************************************* 687 dnl on some platforms (like AIX 5L), the structure sockaddr doesn't have 688 dnl a ss_family member, but rather __ss_family. Let's detect that 689 dnl and define the HAVE_BROKEN_SS_FAMILY when we are on one of these 690 dnl platforms. However, we should only do this if ss_family is not 691 dnl present. 692 dnl ******************************************************************** 693 AC_MSG_CHECKING([struct sockaddr::ss_family]) 694 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 695# include <sys/types.h> 696# include <sys/socket.h> 697 ]], [[ 698 struct sockaddr_storage ss ; 699 ss.ss_family = 0 ; 700 ]])], 701 have_ss_family=yes, 702 have_ss_family=no 703 ) 704 AC_MSG_RESULT($have_ss_family) 705 if test x$have_ss_family = xno ; then 706 AC_MSG_CHECKING([broken struct sockaddr::ss_family]) 707 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 708# include <sys/types.h> 709# include <sys/socket.h> 710 ]], [[ 711 struct sockaddr_storage ss ; 712 ss.__ss_family = 0 ; 713 ]])], 714 have_broken_ss_family=yes, 715 have_broken_ss_family=no 716 ) 717 AC_MSG_RESULT($have_broken_ss_family) 718 if test x$have_broken_ss_family = xyes ; then 719 AC_DEFINE(HAVE_BROKEN_SS_FAMILY, [], 720 [Whether struct sockaddr::__ss_family exists]) 721 AC_DEFINE(ss_family, __ss_family, 722 [ss_family is not defined here, use __ss_family instead]) 723 else 724 AC_MSG_WARN(ss_family and __ss_family not found) 725 fi 726 fi 727 728 have_getaddrinfo=no 729 AC_CHECK_FUNC(getaddrinfo, have_getaddrinfo=yes) 730 if test $have_getaddrinfo != yes; then 731 for lib in bsd socket inet; do 732 AC_CHECK_LIB($lib, getaddrinfo, [LIBS="$LIBS -l$lib";have_getaddrinfo=yes;break]) 733 done 734 fi 735 736 if test $have_getaddrinfo = yes; then 737 AC_DEFINE([HAVE_GETADDRINFO], [], [Define if getaddrinfo is there]) 738 fi 739 fi 740fi 741 742dnl ******************************End IPv6 checks****************************** 743 744dnl Checks for isnan in libm if not in libc 745AC_CHECK_FUNC(isnan, AC_DEFINE([HAVE_ISNAN],[], [Define if isnan is there]) , AC_CHECK_LIB(m, isnan, 746 [AC_DEFINE([HAVE_ISNAN],[], [Define if isnan is there])])) 747 748AC_CHECK_FUNC(isinf, AC_DEFINE([HAVE_ISINF], [], [Define if isinf is there]) , AC_CHECK_LIB(m, isinf, 749 [AC_DEFINE([HAVE_ISINF], [], [Define if isinf is there])])) 750 751XML_LIBDIR='-L${libdir}' 752XML_INCLUDEDIR='-I${includedir}/libxml2' 753 754dnl 755dnl Extra flags 756dnl 757XML_CFLAGS="" 758RDL_LIBS="" 759 760dnl 761dnl Workaround for native compilers 762dnl HP : http://bugs.gnome.org/db/31/3163.html 763dnl DEC : Enable NaN/Inf 764dnl 765if test "${GCC}" != "yes" ; then 766 case "${host}" in 767 hppa*-*-hpux* ) 768 EXTRA_CFLAGS="${EXTRA_CFLAGS} -Wp,-H30000" 769 ;; 770 *-dec-osf* ) 771 EXTRA_CFLAGS="${EXTRA_CFLAGS} -ieee" 772 ;; 773 alpha*-*-linux* ) 774 EXTRA_CFLAGS="${EXTRA_CFLAGS} -ieee" 775 ;; 776 esac 777else 778 if test "$with_fexceptions" = "yes" 779 then 780 # 781 # Not activated by default because this inflates the code size 782 # Used to allow propagation of C++ exceptions through the library 783 # 784 EXTRA_CFLAGS="${EXTRA_CFLAGS} -fexceptions" 785 fi 786 787 # warnings we'd like to see 788 EXTRA_CFLAGS="${EXTRA_CFLAGS} -pedantic -Wall -Wextra -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls" 789 # warnings we'd like to suppress 790 EXTRA_CFLAGS="${EXTRA_CFLAGS} -Wno-long-long -Wno-format-extra-args" 791 case "${host}" in 792 alpha*-*-linux* ) 793 EXTRA_CFLAGS="${EXTRA_CFLAGS} -mieee" 794 ;; 795 alpha*-*-osf* ) 796 EXTRA_CFLAGS="${EXTRA_CFLAGS} -mieee" 797 ;; 798 esac 799fi 800case ${host} in 801 *-*-solaris*) 802 XML_LIBDIR="${XML_LIBDIR} -R${libdir}" 803 ;; 804 hppa*-hp-mpeix) 805 NEED_TRIO=1 806 ;; 807 *-*-mingw* | *-*-cygwin* | *-*-msvc* ) 808 # If the host is Windows, and shared libraries are disabled, we 809 # need to add -DLIBXML_STATIC to EXTRA_CFLAGS in order for linking to 810 # work properly (without it, xmlexports.h would force the use of 811 # DLL imports, which obviously aren't present in a static 812 # library). 813 if test "x$enable_shared" = "xno"; then 814 XML_CFLAGS="$XML_CFLAGS -DLIBXML_STATIC" 815 EXTRA_CFLAGS="$EXTRA_CFLAGS -DLIBXML_STATIC" 816 fi 817 ;; 818esac 819 820 821dnl 822dnl check for python 823dnl 824 825PYTHON_VERSION= 826PYTHON_INCLUDES= 827PYTHON_SITE_PACKAGES= 828PYTHON_TESTS= 829pythondir= 830if test "$with_python" != "no" ; then 831 if test -x "$with_python/bin/python" 832 then 833 echo Found python in $with_python/bin/python 834 PYTHON="$with_python/bin/python" 835 else 836 if test -x "$with_python/python.exe" 837 then 838 echo Found python in $with_python/python.exe 839 PYTHON="$with_python/python.exe" 840 else 841 if test -x "$with_python" 842 then 843 echo Found python in $with_python 844 PYTHON="$with_python" 845 else 846 if test -x "$PYTHON" 847 then 848 echo Found python in environment PYTHON=$PYTHON 849 with_python=`$PYTHON -c "import sys; print(sys.exec_prefix)"` 850 else 851 AC_PATH_PROG(PYTHON, python python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5) 852 fi 853 fi 854 fi 855 fi 856 if test "$PYTHON" != "" 857 then 858 PYTHON_VERSION=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_version())"` 859 PYTHON_INCLUDES=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_inc())"` 860# does not work as it produce a /usr/lib/python path instead of/usr/lib64/python 861# 862# PYTHON_SITE_PACKAGES=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_lib())"` 863 echo Found Python version $PYTHON_VERSION 864 fi 865 if test "$PYTHON_VERSION" != "" -a "$PYTHON_INCLUDES" = "" 866 then 867 if test -r $with_python/include/python$PYTHON_VERSION/Python.h 868 then 869 PYTHON_INCLUDES=$with_python/include/python$PYTHON_VERSION 870 else 871 if test -r $prefix/include/python$PYTHON_VERSION/Python.h 872 then 873 PYTHON_INCLUDES=$prefix/include/python$PYTHON_VERSION 874 else 875 if test -r /usr/include/python$PYTHON_VERSION/Python.h 876 then 877 PYTHON_INCLUDES=/usr/include/python$PYTHON_VERSION 878 else 879 if test -r $with_python/include/Python.h 880 then 881 PYTHON_INCLUDES=$with_python/include 882 else 883 echo could not find python$PYTHON_VERSION/Python.h or $with_python/include/Python.h 884 fi 885 fi 886 fi 887 fi 888 fi 889 if test "$with_python_install_dir" != "" 890 then 891 PYTHON_SITE_PACKAGES="$with_python_install_dir" 892 fi 893 if test "$PYTHON_VERSION" != "" -a "$PYTHON_SITE_PACKAGES" = "" 894 then 895 if test -d $libdir/python$PYTHON_VERSION/site-packages 896 then 897 PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages 898 else 899 if test -d $with_python/lib/site-packages 900 then 901 PYTHON_SITE_PACKAGES=$with_python/lib/site-packages 902 else 903 PYTHON_SITE_PACKAGES=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_lib())"` 904 fi 905 fi 906 fi 907 pythondir='$(PYTHON_SITE_PACKAGES)' 908 PYTHON_LIBS=`python$PYTHON_VERSION-config --ldflags` 909else 910 PYTHON= 911fi 912AM_CONDITIONAL(WITH_PYTHON, test "$PYTHON_INCLUDES" != "") 913if test "$PYTHON_INCLUDES" != "" 914then 915 PYTHON_SUBDIR=python 916else 917 PYTHON_SUBDIR= 918fi 919AC_SUBST(pythondir) 920AC_SUBST(PYTHON_SUBDIR) 921AC_SUBST(PYTHON_LIBS) 922 923dnl check for dso support 924WITH_MODULES=0 925TEST_MODULES= 926 927if test "$with_modules" != "no" ; then 928 case "$host" in 929 *-*-cygwin*) 930 MODULE_EXTENSION=".dll" 931 AC_CHECK_LIB(cygwin, dlopen, [ 932 WITH_MODULES=1 933 MODULE_PLATFORM_LIBS= 934 AC_DEFINE([HAVE_DLOPEN], [], [Have dlopen based dso]) 935 ]) 936 ;; 937 *-*-mingw*) 938 MODULE_EXTENSION=".dll" 939 WITH_MODULES=1 940 ;; 941 *) 942 AC_CHECK_FUNC(shl_load, libxml_have_shl_load=yes, [ 943 AC_CHECK_LIB(dld, shl_load, [ 944 MODULE_PLATFORM_LIBS="-ldld" 945 libxml_have_shl_load=yes], [ 946 AC_CHECK_FUNC(dlopen, libxml_have_dlopen=yes, [ 947 AC_CHECK_LIB(dl, dlopen, [ 948 MODULE_PLATFORM_LIBS="-ldl" 949 libxml_have_dlopen=yes])])])]) 950 951 if test "${libxml_have_shl_load}" = "yes"; then 952 MODULE_EXTENSION=".sl" 953 WITH_MODULES=1 954 AC_DEFINE([HAVE_SHLLOAD], [], [Have shl_load based dso]) 955 fi 956 957 if test "${libxml_have_dlopen}" = "yes"; then 958 case "${host}" in 959 *-*-hpux* ) 960 MODULE_EXTENSION=".sl" 961 ;; 962 * ) 963 MODULE_EXTENSION=".so" 964 ;; 965 esac 966 967 WITH_MODULES=1 968 AC_DEFINE([HAVE_DLOPEN], [], [Have dlopen based dso]) 969 fi 970 ;; 971 esac 972fi 973 974if test "${WITH_MODULES}" = "1"; then 975 TEST_MODULES="ModuleTests" 976fi 977 978AC_SUBST(WITH_MODULES) 979AC_SUBST(MODULE_PLATFORM_LIBS) 980AC_SUBST(MODULE_EXTENSION) 981AC_SUBST(TEST_MODULES) 982 983dnl 984dnl Tester makes use of readline if present 985dnl 986 987dnl 988dnl specific tests to setup DV and Bill's devel environments with debug etc ... 989dnl (-Wunreachable-code) 990dnl 991if [[ "${LOGNAME}" = "veillard" -a "`pwd`" = "/u/veillard/XML" ]] || \ 992 [[ "${LOGNAME}" = "veillard" -a "`pwd`" = "/home/veillard/libxml2" ]] || \ 993 [[ "${LOGNAME}" = "bill" -a "`pwd`" = "/home/bill/gnomesvn/libxml2" ]] 994 then 995 if test "$with_minimum" != "yes" 996 then 997 if test "${with_mem_debug}" = "" ; then 998 echo Activating memory debugging 999 with_mem_debug="yes" 1000 with_run_debug="yes" 1001 fi 1002 if test "${with_docbook}" = "" ; then 1003 with_docbook="yes" 1004 fi 1005 fi 1006 if test "${GCC}" = "yes" ; then 1007 EXTRA_CFLAGS="-g -O -pedantic -W -Wformat -Wno-format-extra-args -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -Wall" 1008 fi 1009 STATIC_BINARIES="-static" 1010dnl -Wcast-qual -ansi 1011else 1012 STATIC_BINARIES= 1013fi 1014AC_SUBST(STATIC_BINARIES) 1015 1016dnl 1017dnl Check for trio string functions 1018dnl 1019 1020if test "${NEED_TRIO}" = "1" ; then 1021 echo Adding trio library for string functions 1022 WITH_TRIO=1 1023else 1024 WITH_TRIO=0 1025fi 1026AM_CONDITIONAL(WITH_TRIO_SOURCES, test "${NEED_TRIO}" = "1") 1027AC_SUBST(WITH_TRIO) 1028 1029dnl 1030dnl Allow to enable/disable various pieces 1031dnl 1032echo Checking configuration requirements 1033 1034dnl 1035dnl Thread-related stuff 1036dnl 1037THREAD_LIBS="" 1038BASE_THREAD_LIBS="" 1039WITH_THREADS=0 1040THREAD_CFLAGS="" 1041TEST_THREADS="" 1042THREADS_W32="" 1043WITH_THREAD_ALLOC=0 1044 1045if test "$with_threads" = "no" ; then 1046 echo Disabling multithreaded support 1047else 1048 echo Enabling multithreaded support 1049 1050 dnl Default to native threads on Windows 1051 case $host_os in 1052 *mingw*) if test "$with_threads" != "pthread" && test "$with_threads" != "no"; then 1053 WITH_THREADS="1" 1054 THREADS_W32="1" 1055 THREAD_CFLAGS="$THREAD_CFLAGS -DHAVE_WIN32_THREADS" 1056 fi 1057 ;; 1058 esac 1059 1060 dnl Use pthread by default in other cases 1061 if test -z "$THREADS_W32"; then 1062 if test "$with_threads" = "pthread" || test "$with_threads" = "" || test "$with_threads" = "yes" ; then 1063 AC_CHECK_HEADER(pthread.h, 1064 AC_CHECK_LIB(pthread, pthread_join,[ 1065 THREAD_LIBS="-lpthread" 1066 AC_DEFINE([HAVE_LIBPTHREAD], [], [Define if pthread library is there (-lpthread)]) 1067 AC_DEFINE([HAVE_PTHREAD_H], [], [Define if <pthread.h> is there]) 1068 WITH_THREADS="1"])) 1069 fi 1070 fi 1071 1072 case $host_os in 1073 *cygwin*) THREAD_LIBS="" 1074 ;; 1075 *beos*) WITH_THREADS="1" 1076 THREAD_CFLAGS="$THREAD_CFLAGS -DHAVE_BEOS_THREADS" 1077 ;; 1078 *linux*) 1079 if test "${GCC}" = "yes" ; then 1080 GCC_VERSION=`${CC} --version | head -1 | awk '{print $3}'` 1081 GCC_MAJOR=`echo ${GCC_VERSION} | sed 's+\..*++'` 1082 GCC_MEDIUM=`echo ${GCC_VERSION} | sed 's+[[0-9]]*\.++' | sed 's+\..*++'` 1083 if test "${THREAD_LIBS}" = "-lpthread" ; then 1084 if expr ${GCC_MEDIUM} \> 2 \& ${GCC_MAJOR} = 3 > /dev/null 1085 then 1086 THREAD_LIBS="" 1087 BASE_THREAD_LIBS="-lpthread" 1088 else 1089 if expr ${GCC_MAJOR} \> 3 > /dev/null 1090 then 1091 THREAD_LIBS="" 1092 BASE_THREAD_LIBS="-lpthread" 1093 else 1094 echo old GCC disabling weak symbols for pthread 1095 fi 1096 fi 1097 fi 1098 fi 1099 ;; 1100 esac 1101 if test "$WITH_THREADS" = "1" ; then 1102 THREAD_CFLAGS="$THREAD_CFLAGS -D_REENTRANT" 1103 TEST_THREADS="Threadtests" 1104 fi 1105fi 1106if test "$with_thread_alloc" = "yes" -a "$WITH_THREADS" = "1" ; then 1107 WITH_THREAD_ALLOC=1 1108fi 1109 1110AC_SUBST(THREAD_LIBS) 1111AC_SUBST(BASE_THREAD_LIBS) 1112AC_SUBST(WITH_THREADS) 1113AC_SUBST(THREAD_CFLAGS) 1114AC_SUBST(TEST_THREADS) 1115AC_SUBST(WITH_THREAD_ALLOC) 1116AM_CONDITIONAL([THREADS_W32],[test -n "$THREADS_W32"]) 1117 1118dnl 1119dnl xmllint shell history 1120dnl 1121if test "$with_history" = "yes" ; then 1122 echo Enabling xmllint shell history 1123 dnl check for terminal library. this is a very cool solution 1124 dnl from octave's configure.in 1125 unset tcap 1126 for termlib in ncurses curses termcap terminfo termlib; do 1127 AC_CHECK_LIB(${termlib}, tputs, [tcap="-l$termlib"]) 1128 test -n "$tcap" && break 1129 done 1130 1131 AC_CHECK_HEADER(readline/history.h, 1132 AC_CHECK_LIB(history, append_history,[ 1133 RDL_LIBS="-lhistory" 1134 AC_DEFINE([HAVE_LIBHISTORY], [], [Define if history library is there (-lhistory)])])) 1135 AC_CHECK_HEADER(readline/readline.h, 1136 AC_CHECK_LIB(readline, readline,[ 1137 RDL_LIBS="-lreadline $RDL_LIBS $tcap" 1138 AC_DEFINE([HAVE_LIBREADLINE], [], [Define if readline library is there (-lreadline)])], , $tcap)) 1139 if test -n "$RDL_DIR" -a -n "$RDL_LIBS"; then 1140 CPPFLAGS="$CPPFLAGS -I${RDL_DIR}/include" 1141 RDL_LIBS="-L${RDL_DIR}/lib $RDL_LIBS" 1142 fi 1143fi 1144 1145dnl 1146dnl Tree functions 1147dnl 1148if test "$with_tree" = "no" ; then 1149 echo Disabling DOM like tree manipulation APIs 1150 WITH_TREE=0 1151else 1152 WITH_TREE=1 1153fi 1154AC_SUBST(WITH_TREE) 1155 1156if test "$with_ftp" = "no" ; then 1157 echo Disabling FTP support 1158 WITH_FTP=0 1159 FTP_OBJ= 1160else 1161 WITH_FTP=1 1162 FTP_OBJ=nanoftp.o 1163fi 1164AC_SUBST(WITH_FTP) 1165AC_SUBST(FTP_OBJ) 1166 1167if test "$with_http" = "no" ; then 1168 echo Disabling HTTP support 1169 WITH_HTTP=0 1170 HTTP_OBJ= 1171else 1172 WITH_HTTP=1 1173 HTTP_OBJ=nanohttp.o 1174fi 1175AC_SUBST(WITH_HTTP) 1176AC_SUBST(HTTP_OBJ) 1177 1178if test "$with_legacy" = "no" ; then 1179 echo Disabling deprecated APIs 1180 WITH_LEGACY=0 1181else 1182 WITH_LEGACY=1 1183fi 1184AC_SUBST(WITH_LEGACY) 1185 1186if test "$with_reader" = "no" ; then 1187 echo Disabling the xmlReader parsing interface 1188 WITH_READER=0 1189 READER_TEST= 1190else 1191 WITH_READER=1 1192 READER_TEST=Readertests 1193 if test "$with_push" = "no" ; then 1194 echo xmlReader requires Push interface - enabling it 1195 with_push=yes 1196 fi 1197fi 1198AC_SUBST(WITH_READER) 1199AC_SUBST(READER_TEST) 1200 1201if test "$with_writer" = "no" ; then 1202 echo Disabling the xmlWriter saving interface 1203 WITH_WRITER=0 1204# WRITER_TEST= 1205else 1206 WITH_WRITER=1 1207# WRITER_TEST=Writertests 1208 if test "$with_push" = "no" ; then 1209 echo xmlWriter requires Push interface - enabling it 1210 with_push=yes 1211 fi 1212 if test "$with_output" = "no" ; then 1213 echo xmlWriter requires Output interface - enabling it 1214 with_output=yes 1215 fi 1216fi 1217AC_SUBST(WITH_WRITER) 1218#AC_SUBST(WRITER_TEST) 1219 1220if test "$with_pattern" = "no" ; then 1221 echo Disabling the xmlPattern parsing interface 1222 WITH_PATTERN=0 1223 TEST_PATTERN= 1224else 1225 WITH_PATTERN=1 1226 TEST_PATTERN=Patterntests 1227fi 1228AC_SUBST(WITH_PATTERN) 1229AC_SUBST(TEST_PATTERN) 1230 1231if test "$with_sax1" = "no" ; then 1232 echo Disabling the older SAX1 interface 1233 WITH_SAX1=0 1234 TEST_SAX= 1235else 1236 WITH_SAX1=1 1237 TEST_SAX=SAXtests 1238fi 1239AC_SUBST(WITH_SAX1) 1240AM_CONDITIONAL(WITH_SAX1_SOURCES, test "${WITH_TRIO}" = "1") 1241AC_SUBST(TEST_SAX) 1242 1243if test "$with_push" = "no" ; then 1244 echo Disabling the PUSH parser interfaces 1245 WITH_PUSH=0 1246 TEST_PUSH= 1247else 1248 WITH_PUSH=1 1249 TEST_PUSH="XMLPushtests" 1250fi 1251AC_SUBST(WITH_PUSH) 1252AC_SUBST(TEST_PUSH) 1253 1254if test "$with_html" = "no" ; then 1255 echo Disabling HTML support 1256 WITH_HTML=0 1257 HTML_OBJ= 1258 TEST_HTML= 1259else 1260 WITH_HTML=1 1261 HTML_OBJ="HTMLparser.o HTMLtree.o" 1262 TEST_HTML=HTMLtests 1263 if test "$with_push" != "no" ; then 1264 TEST_PHTML=HTMLPushtests 1265 else 1266 TEST_PHTML= 1267 fi 1268fi 1269AC_SUBST(WITH_HTML) 1270AC_SUBST(HTML_OBJ) 1271AC_SUBST(TEST_HTML) 1272AC_SUBST(TEST_PHTML) 1273 1274if test "$with_valid" = "no" ; then 1275 echo Disabling DTD validation support 1276 WITH_VALID=0 1277 TEST_VALID= 1278 TEST_VTIME= 1279else 1280 WITH_VALID=1 1281 TEST_VALID=Validtests 1282 TEST_VTIME=VTimingtests 1283fi 1284AC_SUBST(WITH_VALID) 1285AC_SUBST(TEST_VALID) 1286AC_SUBST(TEST_VTIME) 1287 1288if test "$with_catalog" = "no" ; then 1289 echo Disabling Catalog support 1290 WITH_CATALOG=0 1291 CATALOG_OBJ= 1292 TEST_CATALOG= 1293else 1294 WITH_CATALOG=1 1295 CATALOG_OBJ="catalog.o" 1296 TEST_CATALOG=Catatests 1297fi 1298AC_SUBST(WITH_CATALOG) 1299AC_SUBST(CATALOG_OBJ) 1300AC_SUBST(TEST_CATALOG) 1301 1302if test "$with_docbook" = "no" ; then 1303 echo Disabling Docbook support 1304 WITH_DOCB=0 1305 DOCB_OBJ= 1306else 1307 WITH_DOCB=1 1308 DOCB_OBJ="DOCBparser.o" 1309fi 1310AC_SUBST(WITH_DOCB) 1311AC_SUBST(DOCB_OBJ) 1312 1313 1314if test "$with_xptr" = "no" ; then 1315 echo Disabling XPointer support 1316 WITH_XPTR=0 1317 XPTR_OBJ= 1318 TEST_XPTR= 1319else 1320 WITH_XPTR=1 1321 XPTR_OBJ=xpointer.o 1322 TEST_XPTR=XPtrtests 1323 if test "$with_xpath" = "no" ; then 1324 echo XPointer requires XPath support - enabling it 1325 with_xpath=yes 1326 fi 1327fi 1328AC_SUBST(WITH_XPTR) 1329AC_SUBST(XPTR_OBJ) 1330AC_SUBST(TEST_XPTR) 1331 1332if test "$with_c14n" = "no" ; then 1333 echo Disabling C14N support 1334 WITH_C14N=0 1335 C14N_OBJ= 1336 TEST_C14N= 1337else 1338 WITH_C14N=1 1339 C14N_OBJ="c14n.c" 1340 TEST_C14N=C14Ntests 1341 if test "$with_xpath" = "no" ; then 1342 echo C14N requires XPath support - enabling it 1343 with_xpath=yes 1344 fi 1345fi 1346AC_SUBST(WITH_C14N) 1347AC_SUBST(C14N_OBJ) 1348AC_SUBST(TEST_C14N) 1349 1350if test "$with_xinclude" = "no" ; then 1351 echo Disabling XInclude support 1352 WITH_XINCLUDE=0 1353 XINCLUDE_OBJ= 1354 with_xinclude="no" 1355 TEST_XINCLUDE= 1356else 1357 WITH_XINCLUDE=1 1358 XINCLUDE_OBJ=xinclude.o 1359 TEST_XINCLUDE=XIncludetests 1360 if test "$with_xpath" = "no" ; then 1361 echo XInclude requires XPath support - enabling it 1362 with_xpath=yes 1363 fi 1364fi 1365AC_SUBST(WITH_XINCLUDE) 1366AC_SUBST(XINCLUDE_OBJ) 1367AC_SUBST(TEST_XINCLUDE) 1368 1369if test "$with_xptr" = "" -a "$with_xpath" = "no" ; then 1370 with_xptr=no 1371fi 1372 1373if test "$with_schematron" = "" -a "$with_xpath" = "no" ; then 1374 with_schematron=no 1375fi 1376 1377if test "$with_schematron" = "no" ; then 1378 echo "Disabling Schematron support" 1379 WITH_SCHEMATRON=0 1380 TEST_SCHEMATRON= 1381else 1382 echo "Enabled Schematron support" 1383 WITH_SCHEMATRON=1 1384 TEST_SCHEMATRON="Schematrontests" 1385 with_xpath=yes 1386 with_pattern=yes 1387 with_schematron=yes 1388fi 1389AC_SUBST(WITH_SCHEMATRON) 1390AC_SUBST(TEST_SCHEMATRON) 1391 1392if test "$with_xpath" = "no" ; then 1393 echo Disabling XPATH support 1394 WITH_XPATH=0 1395 XPATH_OBJ= 1396 TEST_XPATH= 1397else 1398 WITH_XPATH=1 1399 XPATH_OBJ=xpath.o 1400 TEST_XPATH=XPathtests 1401fi 1402AC_SUBST(WITH_XPATH) 1403AC_SUBST(XPATH_OBJ) 1404AC_SUBST(TEST_XPATH) 1405 1406dnl 1407dnl output functions 1408dnl 1409if test "$with_output" = "no" ; then 1410 echo Disabling serialization/saving support 1411 WITH_OUTPUT=0 1412else 1413 WITH_OUTPUT=1 1414fi 1415AC_SUBST(WITH_OUTPUT) 1416 1417WITH_ICONV=0 1418if test "$with_iconv" = "no" ; then 1419 echo Disabling ICONV support 1420else 1421 if test "$with_iconv" != "yes" -a "$with_iconv" != "" ; then 1422 CPPFLAGS="${CPPFLAGS} -I$with_iconv/include" 1423 # Export this since our headers include iconv.h 1424 XML_INCLUDEDIR="${XML_INCLUDEDIR} -I$with_iconv/include" 1425 ICONV_LIBS="-L$with_iconv/lib" 1426 fi 1427 1428 AC_CHECK_HEADER(iconv.h, 1429 AC_MSG_CHECKING(for iconv) 1430 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdlib.h> 1431#include <iconv.h>]],[[ 1432iconv_t cd = iconv_open ("",""); 1433iconv (cd, NULL, NULL, NULL, NULL);]])],[ 1434 AC_MSG_RESULT(yes) 1435 WITH_ICONV=1],[ 1436 AC_MSG_RESULT(no) 1437 AC_MSG_CHECKING(for iconv in -liconv) 1438 1439 _ldflags="${LDFLAGS}" 1440 _libs="${LIBS}" 1441 LDFLAGS="${LDFLAGS} ${ICONV_LIBS}" 1442 LIBS="${LIBS} -liconv" 1443 1444 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdlib.h> 1445#include <iconv.h>]],[[ 1446iconv_t cd = iconv_open ("",""); 1447iconv (cd, NULL, NULL, NULL, NULL);]])],[ 1448 AC_MSG_RESULT(yes) 1449 WITH_ICONV=1 1450 ICONV_LIBS="${ICONV_LIBS} -liconv" 1451 LIBS="${_libs}" 1452 LDFLAGS="${_ldflags}"],[ 1453 AC_MSG_RESULT(no) 1454 LIBS="${_libs}" 1455 LDFLAGS="${_ldflags}"])])) 1456 1457 if test "$WITH_ICONV" = "1" ; then 1458 AC_MSG_CHECKING([for iconv declaration]) 1459 AC_CACHE_VAL(xml_cv_iconv_arg2, [ 1460 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdlib.h> 1461#include <iconv.h> 1462extern 1463#ifdef __cplusplus 1464"C" 1465#endif 1466#if defined(__STDC__) || defined(__cplusplus) 1467size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); 1468#else 1469size_t iconv(); 1470#endif 1471]], [])], xml_cv_iconv_arg2="", xml_cv_iconv_arg2="const")]) 1472 1473 xml_cv_iconv_decl="extern size_t iconv (iconv_t cd, $xml_cv_iconv_arg2 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);" 1474 AC_MSG_RESULT([${xml_xxx:- 1475 }$xml_cv_iconv_decl]) 1476 AC_DEFINE_UNQUOTED(ICONV_CONST, $xml_cv_iconv_arg2, 1477 [Define as const if the declaration of iconv() needs const.]) 1478 fi 1479fi 1480case "$host" in 1481 *mingw*) M_LIBS="" 1482 ;; 1483 *beos*) M_LIBS="" 1484 ;; 1485 *haiku*) M_LIBS="" 1486 ;; 1487 *) M_LIBS="-lm" 1488 ;; 1489esac 1490AC_SUBST(WITH_ICONV) 1491 1492WITH_ICU=0 1493ICU_LIBS="" 1494if test "$with_icu" != "yes" ; then 1495 echo Disabling ICU support 1496else 1497 # Try pkg-config first so that static linking works. 1498 # If this succeeeds, we ignore the WITH_ICU directory. 1499 PKG_CHECK_MODULES([ICU],[icu-i18n], 1500 [have_libicu=yes], 1501 [have_libicu=no]) 1502 1503 # If pkg-config failed, fall back to AC_CHECK_LIB. This 1504 # will not pick up the necessary LIBS flags for liblzma's 1505 # private dependencies, though, so static linking may fail. 1506 if test "x$have_libicu" = "xno"; then 1507 ICU_CONFIG=icu-config 1508 if ${ICU_CONFIG} --cflags >/dev/null 2>&1 1509 then 1510 ICU_LIBS=`${ICU_CONFIG} --ldflags` 1511 have_libicu=yes 1512 echo Enabling ICU support 1513 else 1514 if test "$with_icu" != "yes" -a "$with_iconv" != "" ; then 1515 CPPFLAGS="${CPPFLAGS} -I$with_icu" 1516 # Export this since our headers include icu.h 1517 XML_INCLUDEDIR="${XML_INCLUDEDIR} -I$with_icu" 1518 fi 1519 1520 AC_CHECK_HEADER(unicode/ucnv.h, 1521 AC_MSG_CHECKING(for icu) 1522 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <unicode/ucnv.h>]], [[ 1523 UConverter *utf = ucnv_open("UTF-8", NULL);]])],[ 1524 AC_MSG_RESULT(yes) 1525 have_libicu=yes],[ 1526 AC_MSG_RESULT(no) 1527 AC_MSG_CHECKING(for icu in -licucore) 1528 1529 _ldflags="${LDFLAGS}" 1530 _libs="${LIBS}" 1531 LDFLAGS="${LDFLAGS} ${ICU_LIBS}" 1532 LIBS="${LIBS} -licucore" 1533 1534 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <unicode/ucnv.h>]], [[ 1535 UConverter *utf = ucnv_open("UTF-8", NULL);]])],[ 1536 AC_MSG_RESULT(yes) 1537 have_libicu=yes 1538 ICU_LIBS="${ICU_LIBS} -licucore" 1539 LIBS="${_libs}" 1540 LDFLAGS="${_ldflags}"],[ 1541 AC_MSG_RESULT(no) 1542 LIBS="${_libs}" 1543 LDFLAGS="${_ldflags}"])])) 1544 fi 1545 fi 1546 1547 # Found the library via either method? 1548 if test "x$have_libicu" = "xyes"; then 1549 WITH_ICU=1 1550 fi 1551fi 1552XML_LIBS="-lxml2" 1553XML_PRIVATE_LIBS="$Z_LIBS $LZMA_LIBS $THREAD_LIBS $ICONV_LIBS $ICU_LIBS $M_LIBS $LIBS" 1554XML_LIBTOOLLIBS="libxml2.la" 1555AC_SUBST(WITH_ICU) 1556 1557WITH_ISO8859X=1 1558if test "$WITH_ICONV" != "1" ; then 1559if test "$with_iso8859x" = "no" ; then 1560 echo Disabling ISO8859X support 1561 WITH_ISO8859X=0 1562fi 1563fi 1564AC_SUBST(WITH_ISO8859X) 1565 1566if test "$with_schemas" = "no" ; then 1567 echo "Disabling Schemas/Relax-NG support" 1568 WITH_SCHEMAS=0 1569 TEST_SCHEMAS= 1570else 1571 echo "Enabled Schemas/Relax-NG support" 1572 WITH_SCHEMAS=1 1573 TEST_SCHEMAS="Schemastests Relaxtests" 1574 if test "$PYTHON_INCLUDES" != "" ; then 1575 PYTHON_TESTS="$PYTHON_TESTS RelaxNGPythonTests SchemasPythonTests" 1576 fi 1577 with_regexps=yes 1578fi 1579AC_SUBST(WITH_SCHEMAS) 1580AC_SUBST(TEST_SCHEMAS) 1581 1582if test "$with_regexps" = "no" ; then 1583 echo Disabling Regexps support 1584 WITH_REGEXPS=0 1585 TEST_REGEXPS= 1586else 1587 WITH_REGEXPS=1 1588 TEST_REGEXPS="Regexptests Automatatests" 1589fi 1590AC_SUBST(WITH_REGEXPS) 1591AC_SUBST(TEST_REGEXPS) 1592 1593if test "$with_debug" = "no" ; then 1594 echo Disabling DEBUG support 1595 WITH_DEBUG=0 1596 DEBUG_OBJ= 1597 TEST_DEBUG= 1598else 1599 WITH_DEBUG=1 1600 DEBUG_OBJ=debugXML.o 1601 TEST_DEBUG=Scripttests 1602fi 1603AC_SUBST(WITH_DEBUG) 1604AC_SUBST(DEBUG_OBJ) 1605AC_SUBST(TEST_DEBUG) 1606 1607if test "$with_mem_debug" = "yes" ; then 1608 if test "$with_thread_alloc" = "yes" ; then 1609 echo Disabling memory debug - cannot use mem-debug with thread-alloc! 1610 WITH_MEM_DEBUG=0 1611 else 1612 echo Enabling memory debug support 1613 WITH_MEM_DEBUG=1 1614 fi 1615else 1616 WITH_MEM_DEBUG=0 1617fi 1618AC_SUBST(WITH_MEM_DEBUG) 1619 1620if test "$with_run_debug" = "yes" ; then 1621 echo Enabling runtime debug support 1622 WITH_RUN_DEBUG=1 1623else 1624 WITH_RUN_DEBUG=0 1625fi 1626AC_SUBST(WITH_RUN_DEBUG) 1627 1628WIN32_EXTRA_LIBADD= 1629WIN32_EXTRA_LDFLAGS= 1630CYGWIN_EXTRA_LDFLAGS= 1631CYGWIN_EXTRA_PYTHON_LIBADD= 1632WIN32_EXTRA_PYTHON_LIBADD= 1633case "$host" in 1634 *-*-mingw*) 1635 CPPFLAGS="$CPPFLAGS -DWIN32" 1636 WIN32_EXTRA_LIBADD="-lws2_32" 1637 WIN32_EXTRA_LDFLAGS="-no-undefined" 1638 if test "${PYTHON}" != "" 1639 then 1640 case "$host" in 1641 *-w64-mingw*) 1642 WIN32_EXTRA_PYTHON_LIBADD="-shrext .pyd -L${pythondir}/../../lib -lpython${PYTHON_VERSION}" 1643 ;; 1644 *) 1645 WIN32_EXTRA_PYTHON_LIBADD="-L${pythondir}/../../libs -lpython$(echo ${PYTHON_VERSION} | tr -d .)" 1646 ;; 1647 esac 1648 fi 1649 ;; 1650 *-*-cygwin*) 1651 CYGWIN_EXTRA_LDFLAGS="-no-undefined" 1652 if test "${PYTHON}" != "" 1653 then 1654 CYGWIN_EXTRA_PYTHON_LIBADD="-L/usr/lib/python${PYTHON_VERSION}/config -lpython${PYTHON_VERSION}" 1655 fi 1656 ;; 1657esac 1658AC_SUBST(WIN32_EXTRA_LIBADD) 1659AC_SUBST(WIN32_EXTRA_LDFLAGS) 1660AC_SUBST(WIN32_EXTRA_PYTHON_LIBADD) 1661AC_SUBST(CYGWIN_EXTRA_LDFLAGS) 1662AC_SUBST(CYGWIN_EXTRA_PYTHON_LIBADD) 1663 1664dnl Checking the standard string functions availability 1665dnl 1666dnl Note mingw* has C99 implementation that produce expected xml numbers 1667dnl if code use {v}snprintf functions. 1668dnl If you like to activate at run-time C99 compatible number output 1669dnl see release note for mingw runtime 3.15: 1670dnl http://sourceforge.net/project/shownotes.php?release_id=24832 1671dnl 1672dnl Also *win32*config.h files redefine them for various MSC compilers. 1673dnl 1674dnl So do not redefine {v}snprintf to _{v}snprintf like following: 1675dnl AC_DEFINE([snprintf],[_snprintf],[Win32 Std C name mangling work-around]) 1676dnl AC_DEFINE([vsnprintf],[_vsnprintf],[Win32 Std C name mangling work-around]) 1677dnl and do not redefine those functions is C-source files. 1678dnl 1679AC_CHECK_FUNCS(printf sprintf fprintf snprintf vfprintf vsprintf vsnprintf sscanf,, 1680 NEED_TRIO=1) 1681 1682if test "$with_coverage" = "yes" -a "${GCC}" = "yes" 1683then 1684 echo Enabling code coverage for GCC 1685 EXTRA_CFLAGS="$EXTRA_CFLAGS -fprofile-arcs -ftest-coverage" 1686 LDFLAGS="$LDFLAGS -fprofile-arcs -ftest-coverage" 1687else 1688 echo Disabling code coverage for GCC 1689fi 1690 1691AC_SUBST(CPPFLAGS) 1692AC_SUBST(EXTRA_CFLAGS) 1693AC_SUBST(LDFLAGS) 1694AC_SUBST(XML_CFLAGS) 1695 1696AC_SUBST(XML_LIBDIR) 1697AC_SUBST(XML_LIBS) 1698AC_SUBST(XML_PRIVATE_LIBS) 1699AC_SUBST(XML_LIBTOOLLIBS) 1700AC_SUBST(ICONV_LIBS) 1701AC_SUBST(ICU_LIBS) 1702AC_SUBST(XML_INCLUDEDIR) 1703AC_SUBST(HTML_DIR) 1704AC_SUBST(HAVE_ISNAN) 1705AC_SUBST(HAVE_ISINF) 1706AC_SUBST(PYTHON) 1707AC_SUBST(PYTHON_VERSION) 1708AC_SUBST(PYTHON_INCLUDES) 1709AC_SUBST(PYTHON_SITE_PACKAGES) 1710 1711AC_SUBST(M_LIBS) 1712AC_SUBST(RDL_LIBS) 1713 1714dnl for the spec file 1715RELDATE=`date +'%a %b %e %Y'` 1716AC_SUBST(RELDATE) 1717AC_SUBST(PYTHON_TESTS) 1718 1719rm -f COPYING.LIB COPYING 1720ln -s $srcdir/Copyright COPYING 1721 1722# keep on one line for cygwin c.f. #130896 1723AC_CONFIG_FILES([libxml2.spec:libxml.spec.in Makefile include/Makefile include/libxml/Makefile doc/Makefile doc/examples/Makefile doc/devhelp/Makefile example/Makefile fuzz/Makefile python/Makefile python/tests/Makefile xstc/Makefile include/libxml/xmlversion.h libxml-2.0.pc libxml-2.0-uninstalled.pc libxml2-config.cmake]) 1724AC_CONFIG_FILES([python/setup.py], [chmod +x python/setup.py]) 1725AC_CONFIG_FILES([xml2-config], [chmod +x xml2-config]) 1726AC_OUTPUT 1727 1728echo Done configuring 1729