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