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