blob: 3ff8a3eee2d21318480053645f29d6a4ac932a73 [file] [log] [blame]
Daniel Veillard01791d51998-07-24 19:24:09 +00001dnl Process this file with autoconf to produce a configure script.
Daniel Richard Gec4fc522012-08-17 10:04:30 +08002AC_PREREQ([2.68])
3AC_INIT
4AC_CONFIG_SRCDIR([entities.c])
5AC_CONFIG_HEADERS([config.h])
Daniel Veillard3157e512010-03-09 11:32:46 +01006AC_CONFIG_MACRO_DIR([m4])
Daniel Veillardd2ade932000-09-30 14:39:55 +00007AC_CANONICAL_HOST
Daniel Veillard14fff061999-06-22 21:49:07 +00008
Daniel Veillardcf461992000-03-14 18:30:20 +00009LIBXML_MAJOR_VERSION=2
Daniel Veillardaa017c52012-08-10 10:42:56 +080010LIBXML_MINOR_VERSION=9
Daniel Veillardc943f702012-05-23 17:10:59 +080011LIBXML_MICRO_VERSION=0
Daniel Veillard3e35f8e2003-10-21 00:05:38 +000012LIBXML_MICRO_VERSION_SUFFIX=
Daniel Veillard4fc52812003-09-01 20:33:13 +000013LIBXML_VERSION=$LIBXML_MAJOR_VERSION.$LIBXML_MINOR_VERSION.$LIBXML_MICRO_VERSION$LIBXML_MICRO_VERSION_SUFFIX
Daniel Veillard14fff061999-06-22 21:49:07 +000014LIBXML_VERSION_INFO=`expr $LIBXML_MAJOR_VERSION + $LIBXML_MINOR_VERSION`:$LIBXML_MICRO_VERSION:$LIBXML_MINOR_VERSION
15
Daniel Veillard361d8452000-04-03 19:48:13 +000016LIBXML_VERSION_NUMBER=`expr $LIBXML_MAJOR_VERSION \* 10000 + $LIBXML_MINOR_VERSION \* 100 + $LIBXML_MICRO_VERSION`
17
Daniel Veillard9cb1b642007-01-03 15:07:44 +000018if test -f CVS/Entries ; then
Daniel Veillarddab93ea2004-08-20 16:47:10 +000019 extra=`grep ChangeLog CVS/Entries | grep -v LIBXML | sed -e s\%/ChangeLog/1\.%% -e s\%/.*$%%`
20 echo extra=$extra
21 if test "$extra" != ""
22 then
23 LIBXML_VERSION_EXTRA="-CVS$extra"
24 fi
Daniel Veillard9cb1b642007-01-03 15:07:44 +000025else if test -d .svn ; then
26 extra=`svn info | grep Revision | sed 's+Revision: ++'`
27 echo extra=$extra
28 if test "$extra" != ""
29 then
30 LIBXML_VERSION_EXTRA="-SVN$extra"
31 fi
veillard97c7be62009-05-12 08:43:54 +020032else if test -d .git ; then
Christian Dywan040dcb52012-05-10 22:55:07 +080033 extra=`git describe 2>/dev/null | sed 's+LIBXML[[0-9.]]*-++'`
veillard97c7be62009-05-12 08:43:54 +020034 echo extra=$extra
35 if test "$extra" != ""
36 then
37 LIBXML_VERSION_EXTRA="-GIT$extra"
38 fi
39fi
Daniel Veillard9cb1b642007-01-03 15:07:44 +000040fi
William M. Brackf4025492004-08-18 21:08:46 +000041fi
Daniel Veillard14fff061999-06-22 21:49:07 +000042AC_SUBST(LIBXML_MAJOR_VERSION)
43AC_SUBST(LIBXML_MINOR_VERSION)
44AC_SUBST(LIBXML_MICRO_VERSION)
45AC_SUBST(LIBXML_VERSION)
46AC_SUBST(LIBXML_VERSION_INFO)
Daniel Veillard361d8452000-04-03 19:48:13 +000047AC_SUBST(LIBXML_VERSION_NUMBER)
William M. Brackf4025492004-08-18 21:08:46 +000048AC_SUBST(LIBXML_VERSION_EXTRA)
Daniel Veillard14fff061999-06-22 21:49:07 +000049
Daniel Veillard361d8452000-04-03 19:48:13 +000050VERSION=${LIBXML_VERSION}
Daniel Veillard14fff061999-06-22 21:49:07 +000051
Daniel Veillardedfb29b2000-03-14 19:59:05 +000052AM_INIT_AUTOMAKE(libxml2, $VERSION)
Daniel Veillard1164e751999-02-16 16:29:17 +000053
Stefan Kostc9c939d2011-05-10 10:34:41 +030054# Support silent build rules, requires at least automake-1.11. Disable
55# by either passing --disable-silent-rules to configure or passing V=1
56# to make
57m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
58
Daniel Veillard01791d51998-07-24 19:24:09 +000059dnl Checks for programs.
60AC_PROG_CC
61AC_PROG_INSTALL
Daniel Richard G5706b6d2012-08-06 11:32:54 +080062AC_PROG_LN_S
Adrian Bunk64b0d602010-11-04 09:43:31 +010063AC_PROG_MKDIR_P
Sebastian Wilhelmia44c8a41998-08-07 08:38:58 +000064AC_PROG_CPP
Daniel Veillard01791d51998-07-24 19:24:09 +000065AC_PATH_PROG(RM, rm, /bin/rm)
66AC_PATH_PROG(MV, mv, /bin/mv)
67AC_PATH_PROG(TAR, tar, /bin/tar)
William M. Brack1826d0a2004-07-21 09:03:57 +000068AC_PATH_PROG(PERL, perl, /usr/bin/perl)
Daniel Veillard33a2de92006-10-11 08:33:22 +000069AC_PATH_PROG(WGET, wget, /usr/bin/wget)
Daniel Veillard8b817da2004-09-30 09:19:33 +000070AC_PATH_PROG(XMLLINT, xmllint, /usr/bin/xmllint)
Daniel Veillard06500c82004-09-07 09:12:44 +000071AC_PATH_PROG(XSLTPROC, xsltproc, /usr/bin/xsltproc)
Daniel Veillard01791d51998-07-24 19:24:09 +000072
Daniel Richard G5706b6d2012-08-06 11:32:54 +080073LT_INIT
Daniel Veillard01791d51998-07-24 19:24:09 +000074
Daniel Veillard4432df22003-09-28 18:58:27 +000075dnl
Daniel Veillard8ed10722009-08-20 19:17:36 +020076dnl if the system support linker version scripts for symbol versioning
77dnl then add it
78dnl
79VERSION_SCRIPT_FLAGS=
Roumen Petrovf39adc22010-03-11 14:49:13 +010080# lt_cv_prog_gnu_ld is from libtool 2.+
81if test "$lt_cv_prog_gnu_ld" = yes; then
82 VERSION_SCRIPT_FLAGS=-Wl,--version-script=
83else
84 case $host in
85 *-*-sunos*) VERSION_SCRIPT_FLAGS="-Wl,-M -Wl,";;
86 esac
87fi
Daniel Veillard8ed10722009-08-20 19:17:36 +020088AC_SUBST(VERSION_SCRIPT_FLAGS)
Daniel Veillard00819872010-11-04 21:53:14 +010089AM_CONDITIONAL([USE_VERSION_SCRIPT], [test -n "$VERSION_SCRIPT_FLAGS"])
Daniel Veillard8ed10722009-08-20 19:17:36 +020090
91dnl
William M. Brack21e4ef22005-01-02 09:53:13 +000092dnl We process the AC_ARG_WITH first so that later we can modify
93dnl some of them to try to prevent impossible combinations. This
94dnl also allows up so alphabetize the choices
Daniel Veillard4432df22003-09-28 18:58:27 +000095dnl
Daniel Veillard4432df22003-09-28 18:58:27 +000096
William M. Brack21e4ef22005-01-02 09:53:13 +000097dnl
98dnl zlib option might change flags, so we save them initially
99dnl
Owen Taylor3473f882001-02-23 17:55:21 +0000100_cppflags="${CPPFLAGS}"
101_ldflags="${LDFLAGS}"
Daniel Veillard71b656e2000-01-05 14:46:17 +0000102
William M. Brack21e4ef22005-01-02 09:53:13 +0000103AC_ARG_WITH(c14n,
104[ --with-c14n add the Canonicalization support (on)])
105AC_ARG_WITH(catalog,
106[ --with-catalog add the Catalog support (on)])
107AC_ARG_WITH(debug,
108[ --with-debug add the debugging module (on)])
109AC_ARG_WITH(docbook,
110[ --with-docbook add Docbook SGML support (on)])
111AC_ARG_WITH(fexceptions,
112[ --with-fexceptions add GCC flag -fexceptions for C++ exceptions (off)])
113AC_ARG_WITH(ftp,
114[ --with-ftp add the FTP support (on)])
115AC_ARG_WITH(history,
116[ --with-history add history support to xmllint shell(off)])
117AC_ARG_WITH(html,
118[ --with-html add the HTML support (on)])
119dnl Specific dir for HTML output ?
Daniel Richard Gec4fc522012-08-17 10:04:30 +0800120AC_ARG_WITH(html-dir, AS_HELP_STRING([--with-html-dir=path],
William M. Brack21e4ef22005-01-02 09:53:13 +0000121 [path to base html directory, default $datadir/doc/html]),
122 [HTML_DIR=$withval], [HTML_DIR='$(datadir)/doc'])
Daniel Veillard259ff742001-10-06 13:49:59 +0000123
Daniel Richard Gec4fc522012-08-17 10:04:30 +0800124AC_ARG_WITH(html-subdir, AS_HELP_STRING([--with-html-subdir=path],
William M. Brack21e4ef22005-01-02 09:53:13 +0000125 [directory used under html-dir, default $PACKAGE-$VERSION/html]),
126 [test "x$withval" != "x" && HTML_DIR="$HTML_DIR/$withval"],
127 [HTML_DIR="$HTML_DIR/\$(PACKAGE)-\$(VERSION)/html"])
128AC_SUBST(HTML_DIR)
129AC_ARG_WITH(http,
130[ --with-http add the HTTP support (on)])
131AC_ARG_WITH(iconv,
132[ --with-iconv[[=DIR]] add ICONV support (on)])
Giuseppe Iuculano48f7dcb2010-11-04 17:42:42 +0100133AC_ARG_WITH(icu,
134[ --with-icu add ICU support (off)])
William M. Brack21e4ef22005-01-02 09:53:13 +0000135AC_ARG_WITH(iso8859x,
136[ --with-iso8859x add ISO8859X support if no iconv (on)])
137AC_ARG_WITH(legacy,
138[ --with-legacy add deprecated APIs for compatibility (on)])
139AC_ARG_WITH(mem_debug,
140[ --with-mem-debug add the memory debugging module (off)])
141AC_ARG_WITH(minimum,
142[ --with-minimum build a minimally sized library (off)])
143AC_ARG_WITH(output,
144[ --with-output add the serialization support (on)])
145AC_ARG_WITH(pattern,
146[ --with-pattern add the xmlPattern selection interface (on)])
147AC_ARG_WITH(push,
148[ --with-push add the PUSH parser interfaces (on)])
149AC_ARG_WITH(python,
150[ --with-python[[=DIR]] build Python bindings if found])
151AC_ARG_WITH(reader,
152[ --with-reader add the xmlReader parsing interface (on)])
153AC_ARG_WITH(readline,
154[ --with-readline=DIR use readline in DIR],[
155 if test "$withval" != "no" -a "$withval" != "yes"; then
156 RDL_DIR=$withval
157 CPPFLAGS="${CPPFLAGS} -I$withval/include"
158 LDFLAGS="${LDFLAGS} -L$withval/lib"
159 fi
160])
161AC_ARG_WITH(regexps,
162[ --with-regexps add Regular Expressions support (on)])
163AC_ARG_WITH(run_debug,
164[ --with-run-debug add the runtime debugging module (off)])
165AC_ARG_WITH(sax1,
166[ --with-sax1 add the older SAX1 interface (on)])
167AC_ARG_WITH(schemas,
Daniel Veillard39e5c892005-07-03 22:48:50 +0000168[ --with-schemas add Relax-NG and Schemas support (on)])
Daniel Veillarded6c5492005-07-23 15:00:22 +0000169AC_ARG_WITH(schematron,
170[ --with-schematron add Schematron support (on)])
William M. Brack21e4ef22005-01-02 09:53:13 +0000171AC_ARG_WITH(threads,
172[ --with-threads add multithread support(on)])
173AC_ARG_WITH(thread-alloc,
174[ --with-thread-alloc add per-thread memory(off)])
175AC_ARG_WITH(tree,
176[ --with-tree add the DOM like tree manipulation APIs (on)])
177AC_ARG_WITH(valid,
178[ --with-valid add the DTD validation support (on)])
179AC_ARG_WITH(writer,
180[ --with-writer add the xmlWriter saving interface (on)])
181AC_ARG_WITH(xinclude,
182[ --with-xinclude add the XInclude support (on)])
183AC_ARG_WITH(xpath,
184[ --with-xpath add the XPATH support (on)])
185AC_ARG_WITH(xptr,
186[ --with-xptr add the XPointer support (on)])
Daniel Veillardf6b71bd2005-01-04 17:50:14 +0000187AC_ARG_WITH(modules,
188[ --with-modules add the dynamic modules support (on)])
Owen Taylor3473f882001-02-23 17:55:21 +0000189AC_ARG_WITH(zlib,
William M. Brack97ad4c72003-05-13 08:08:36 +0000190[ --with-zlib[[=DIR]] use libz in DIR],[
Owen Taylor3473f882001-02-23 17:55:21 +0000191 if test "$withval" != "no" -a "$withval" != "yes"; then
192 Z_DIR=$withval
193 CPPFLAGS="${CPPFLAGS} -I$withval/include"
194 LDFLAGS="${LDFLAGS} -L$withval/lib"
195 fi
Daniel Veillard259ff742001-10-06 13:49:59 +0000196])
Anders F Bjorklundeae52612011-09-18 16:59:13 +0200197AC_ARG_WITH(lzma,
198[ --with-lzma[[=DIR]] use liblzma in DIR],[
199 if test "$withval" != "no" -a "$withval" != "yes"; then
200 LZMA_DIR=$withval
201 CPPFLAGS="${CPPFLAGS} -I$withval/include"
202 LDFLAGS="${LDFLAGS} -L$withval/lib"
203 fi
204])
Daniel Veillardbfa5cf12008-08-27 15:33:28 +0000205AC_ARG_WITH(coverage,
206[ --with-coverage build for code coverage with GCC (off)])
William M. Brack21e4ef22005-01-02 09:53:13 +0000207
Daniel Veillardb40744e2008-10-17 13:26:44 +0000208AC_ARG_ENABLE(rebuild-docs,
Daniel Richard G5706b6d2012-08-06 11:32:54 +0800209[ --enable-rebuild-docs[[=yes/no]] rebuild some generated docs [[default=no]]])
Daniel Veillard28cc42d2012-08-10 10:00:18 +0800210AM_CONDITIONAL([REBUILD_DOCS], [test "$enable_rebuild_docs" = "yes" -o "$USER" = "veillard"])
Daniel Veillardb40744e2008-10-17 13:26:44 +0000211
William M. Brack21e4ef22005-01-02 09:53:13 +0000212dnl
Daniel Veillard39e5c892005-07-03 22:48:50 +0000213dnl hard dependancies on options
214dnl
215if test "$with_schemas" = "yes"
216then
217 with_pattern=yes
Daniel Veillardc51f51c2007-05-02 16:25:45 +0000218 with_regexps=yes
Daniel Veillard39e5c892005-07-03 22:48:50 +0000219fi
Daniel Veillarded6c5492005-07-23 15:00:22 +0000220if test "$with_schematron" = "yes"
221then
222 with_pattern=yes
223 with_xpath=yes
224fi
Daniel Veillard39e5c892005-07-03 22:48:50 +0000225if test "$with_reader" = "yes"
226then
227 with_push=yes
228fi
229if test "$with_xptr" = "yes"
230then
231 with_xpath=yes
232fi
233dnl
William M. Brack21e4ef22005-01-02 09:53:13 +0000234dnl option to build a minimal libxml2 library
235dnl
236if test "$with_minimum" = "yes"
Daniel Veillard4432df22003-09-28 18:58:27 +0000237then
William M. Brack21e4ef22005-01-02 09:53:13 +0000238 echo "Configuring for a minimal library"
239 if test "$with_c14n" = ""
240 then
241 with_c14n=no
242 fi
243 if test "$with_catalog" = ""
244 then
245 with_catalog=no
246 fi
247 echo So far so good!
248 if test "$with_debug" = ""
249 then
250 with_debug=no
251 fi
252 if test "$with_docbook" = ""
253 then
254 with_docbook=no
255 fi
256 if test "$with_fexceptions" = ""
257 then
258 with_fexceptions=no
259 fi
260 if test "$with_ftp" = ""
261 then
262 with_ftp=no
263 fi
264 if test "$with_history" = ""
265 then
266 with_history=no
267 fi
268 if test "$with_html" = ""
269 then
270 with_html=no
271 fi
272 if test "$with_http" = ""
273 then
274 with_http=no
275 fi
276 if test "$with_iconv" = ""
277 then
278 with_iconv=no
279 fi
280 if test "$with_iso8859x" = ""
281 then
282 with_iso8859x=no
283 fi
284 if test "$with_legacy" = ""
285 then
286 with_legacy=no
287 fi
288 if test "$with_mem_debug" = ""
289 then
290 with_mem_debug=no
291 fi
292 if test "$with_output" = ""
293 then
294 with_output=no
295 fi
296 if test "$with_pattern" = ""
297 then
298 with_pattern=no
299 fi
300 if test "$with_push" = ""
301 then
302 with_push=no
303 fi
304 if test "$with_python" = ""
305 then
306 with_python=no
307 fi
308 if test "$with_reader" = ""
309 then
310 with_reader=no
311 fi
312 if test "$with_readline" = ""
313 then
314 with_readline=no
315 fi
Daniel Veillardc51f51c2007-05-02 16:25:45 +0000316 if test "$with_regexps" = ""
William M. Brack21e4ef22005-01-02 09:53:13 +0000317 then
Daniel Veillardc51f51c2007-05-02 16:25:45 +0000318 with_regexps=no
William M. Brack21e4ef22005-01-02 09:53:13 +0000319 fi
320 if test "$with_run_debug" = ""
321 then
322 with_run_debug=no
323 fi
324 if test "$with_sax1" = ""
325 then
326 with_sax1=no
327 fi
328 if test "$with_schemas" = ""
329 then
330 with_schemas=no
331 fi
Daniel Veillarded6c5492005-07-23 15:00:22 +0000332 if test "$with_schematron" = ""
333 then
334 with_schematron=no
335 fi
William M. Brack21e4ef22005-01-02 09:53:13 +0000336 if test "$with_threads" = ""
337 then
338 with_threads=no
339 fi
340 if test "$with_thread_alloc" = ""
341 then
342 with_thread_alloc=no
343 fi
344 if test "$with_tree" = ""
345 then
346 with_tree=no
347 fi
348 if test "$with_valid" = ""
349 then
350 with_valid=no
351 fi
352 if test "$with_writer" = ""
353 then
354 with_writer=no
355 fi
356 if test "$with_xinclude" = ""
357 then
358 with_xinclude=no
359 fi
360 if test "$with_xpath" = ""
361 then
362 with_xpath=no
363 fi
364 if test "$with_xptr" = ""
365 then
366 with_xptr=no
367 fi
368 if test "$with_zlib" = ""
369 then
370 with_zlib=no
371 fi
Daniel Veillardf6b71bd2005-01-04 17:50:14 +0000372 if test "$with_modules" = ""
373 then
374 with_modules=no
375 fi
Daniel Veillard4432df22003-09-28 18:58:27 +0000376fi
William M. Brack21e4ef22005-01-02 09:53:13 +0000377
378echo Checking zlib
379
380dnl Checks for zlib library.
381
Daniel Veillard75acfee2006-07-13 06:29:56 +0000382WITH_ZLIB=0
Daniel Veillard259ff742001-10-06 13:49:59 +0000383if test "$with_zlib" = "no"; then
384 echo "Disabling compression support"
385else
Daniel Veillard3fbe8e32001-10-06 13:30:33 +0000386 AC_CHECK_HEADERS(zlib.h,
387 AC_CHECK_LIB(z, gzread,[
Daniel Veillard75acfee2006-07-13 06:29:56 +0000388 AC_DEFINE([HAVE_LIBZ], [1], [Have compression library])
389 WITH_ZLIB=1
Daniel Veillard3fbe8e32001-10-06 13:30:33 +0000390 if test "x${Z_DIR}" != "x"; then
391 Z_CFLAGS="-I${Z_DIR}/include"
392 Z_LIBS="-L${Z_DIR}/lib -lz"
393 [case ${host} in
394 *-*-solaris*)
395 Z_LIBS="-L${Z_DIR}/lib -R${Z_DIR}/lib -lz"
396 ;;
397 esac]
398 else
399 Z_LIBS="-lz"
400 fi]))
Daniel Veillard259ff742001-10-06 13:49:59 +0000401fi
Owen Taylor3473f882001-02-23 17:55:21 +0000402
Owen Taylor3473f882001-02-23 17:55:21 +0000403AC_SUBST(Z_CFLAGS)
404AC_SUBST(Z_LIBS)
Daniel Veillard75acfee2006-07-13 06:29:56 +0000405AC_SUBST(WITH_ZLIB)
Owen Taylor3473f882001-02-23 17:55:21 +0000406
Anders F Bjorklundeae52612011-09-18 16:59:13 +0200407echo Checking lzma
408
409dnl Checks for lzma library.
410
411WITH_LZMA=0
412if test "$with_lzma" = "no"; then
413 echo "Disabling compression support"
414else
415 AC_CHECK_HEADERS(lzma.h,
416 AC_CHECK_LIB(lzma, lzma_code,[
417 AC_DEFINE([HAVE_LIBLZMA], [1], [Have compression library])
418 WITH_LZMA=1
419 if test "x${LZMA_DIR}" != "x"; then
420 LZMA_CFLAGS="-I${LZMA_DIR}/include"
421 LZMA_LIBS="-L${LZMA_DIR}/lib -llzma"
422 else
423 LZMA_LIBS="-llzma"
424 fi]))
425fi
426
427AC_SUBST(LZMA_CFLAGS)
428AC_SUBST(LZMA_LIBS)
429AC_SUBST(WITH_LZMA)
430
Owen Taylor3473f882001-02-23 17:55:21 +0000431CPPFLAGS=${_cppflags}
432LDFLAGS=${_ldflags}
Daniel Veillardb05deb71999-08-10 19:04:08 +0000433
William M. Brack21e4ef22005-01-02 09:53:13 +0000434echo Checking headers
435
Daniel Veillard01791d51998-07-24 19:24:09 +0000436dnl Checks for header files.
437AC_HEADER_DIRENT
438AC_HEADER_STDC
Daniel Veillard817e70b2002-11-19 22:28:48 +0000439AC_CHECK_HEADERS([fcntl.h])
440AC_CHECK_HEADERS([unistd.h])
441AC_CHECK_HEADERS([ctype.h])
442AC_CHECK_HEADERS([dirent.h])
443AC_CHECK_HEADERS([errno.h])
444AC_CHECK_HEADERS([malloc.h])
445AC_CHECK_HEADERS([stdarg.h])
446AC_CHECK_HEADERS([sys/stat.h])
447AC_CHECK_HEADERS([sys/types.h])
Daniel Veillard7f4547c2008-10-03 07:58:23 +0000448AC_CHECK_HEADERS([stdint.h])
Daniel Mustielesbde9c352012-03-19 21:39:58 +0100449AC_CHECK_HEADERS([inttypes.h])
Daniel Veillard817e70b2002-11-19 22:28:48 +0000450AC_CHECK_HEADERS([time.h])
451AC_CHECK_HEADERS([ansidecl.h])
452AC_CHECK_HEADERS([ieeefp.h])
453AC_CHECK_HEADERS([nan.h])
454AC_CHECK_HEADERS([math.h])
Daniel Veillardebe48c62003-12-03 12:12:27 +0000455AC_CHECK_HEADERS([limits.h])
Daniel Veillard817e70b2002-11-19 22:28:48 +0000456AC_CHECK_HEADERS([fp_class.h])
457AC_CHECK_HEADERS([float.h])
458AC_CHECK_HEADERS([stdlib.h])
459AC_CHECK_HEADERS([sys/socket.h], [], [],
460[#if HAVE_SYS_TYPES_H
461# include <sys/types.h>
462# endif
463])
464AC_CHECK_HEADERS([netinet/in.h], [], [],
465[#if HAVE_SYS_TYPES_H
466# include <sys/types.h>
467# endif
468])
469AC_CHECK_HEADERS([arpa/inet.h], [], [],
470[#if HAVE_SYS_TYPES_H
471# include <sys/types.h>
472# endif
473#if HAVE_ARPA_INET_H
474# include <arpa/inet.h>
475# endif
476])
477AC_CHECK_HEADERS([netdb.h])
478AC_CHECK_HEADERS([sys/time.h])
479AC_CHECK_HEADERS([sys/select.h])
Raphael Prevost48b60c32009-08-23 13:11:01 +0200480AC_CHECK_HEADERS([poll.h])
Daniel Veillard817e70b2002-11-19 22:28:48 +0000481AC_CHECK_HEADERS([sys/mman.h])
482AC_CHECK_HEADERS([sys/timeb.h])
483AC_CHECK_HEADERS([signal.h])
484AC_CHECK_HEADERS([arpa/nameser.h], [], [],
485[#if HAVE_SYS_TYPES_H
486# include <sys/types.h>
487# endif
488])
489AC_CHECK_HEADERS([resolv.h], [], [],
490[#if HAVE_SYS_TYPES_H
491# include <sys/types.h>
492# endif
493#if HAVE_NETINET_IN_H
494# include <netinet/in.h>
495# endif
496#if HAVE_ARPA_NAMESER_H
497# include <arpa/nameser.h>
498# endif
499])
Daniel Veillarddcd93902005-01-13 11:25:15 +0000500AC_CHECK_HEADERS([dl.h])
501AC_CHECK_HEADERS([dlfcn.h])
Daniel Veillard01791d51998-07-24 19:24:09 +0000502
Daniel Veillardfc979062004-03-04 22:07:16 +0000503
Daniel Richard G5706b6d2012-08-06 11:32:54 +0800504echo Checking types
505
506AC_TYPE_UINT32_T
507
508
William M. Brack21e4ef22005-01-02 09:53:13 +0000509echo Checking libraries
Daniel Veillard1164e751999-02-16 16:29:17 +0000510
Daniel Veillard01791d51998-07-24 19:24:09 +0000511dnl Checks for library functions.
512AC_FUNC_STRFTIME
Daniel Veillard92ad2102001-03-27 12:47:33 +0000513AC_CHECK_FUNCS(strdup strndup strerror)
Daniel Veillard71b656e2000-01-05 14:46:17 +0000514AC_CHECK_FUNCS(finite isnand fp_class class fpclass)
Daniel Veillard90bc3712002-03-07 15:12:58 +0000515AC_CHECK_FUNCS(strftime localtime gettimeofday ftime)
Daniel Veillard068a9652001-06-07 15:30:26 +0000516AC_CHECK_FUNCS(stat _stat signal)
Daniel Veillardd495e6a2012-05-20 20:48:34 +0800517AC_CHECK_FUNCS(rand rand_r srand time)
Daniel Richard G5706b6d2012-08-06 11:32:54 +0800518AC_CHECK_FUNCS(isascii mmap munmap putenv)
519
520AH_VERBATIM([HAVE_MUNMAP_AFTER],[/* mmap() is no good without munmap() */
521#if defined(HAVE_MMAP) && !defined(HAVE_MUNMAP)
522# undef /**/ HAVE_MMAP
523#endif])
Daniel Veillard7f7d1111999-09-22 09:46:25 +0000524
William M. Brackf4caa5e2005-10-20 09:04:05 +0000525dnl Checking for va_copy availability
526AC_MSG_CHECKING([for va_copy])
Daniel Richard Gec4fc522012-08-17 10:04:30 +0800527AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdarg.h>
528va_list ap1,ap2;]], [[va_copy(ap1,ap2);]])],
William M. Brackf4caa5e2005-10-20 09:04:05 +0000529have_va_copy=yes,
530have_va_copy=no)
531AC_MSG_RESULT($have_va_copy)
532if test x"$have_va_copy" = x"yes"; then
533 AC_DEFINE(HAVE_VA_COPY,1,[Whether va_copy() is available])
534else
535 AC_MSG_CHECKING([for __va_copy])
Daniel Richard Gec4fc522012-08-17 10:04:30 +0800536 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdarg.h>
537 va_list ap1,ap2;]], [[__va_copy(ap1,ap2);]])],
William M. Brackf4caa5e2005-10-20 09:04:05 +0000538 have___va_copy=yes,
539 have___va_copy=no)
540 AC_MSG_RESULT($have___va_copy)
541 if test x"$have___va_copy" = x"yes"; then
542 AC_DEFINE(HAVE___VA_COPY,1,[Whether __va_copy() is available])
543 fi
544fi
545
Daniel Veillard7f7d1111999-09-22 09:46:25 +0000546dnl Checks for inet libraries:
Daniel Veillardd4e39ae2005-10-28 15:59:14 +0000547AC_SEARCH_LIBS(gethostent, [nsl])
Scott McCreary59f53082009-08-26 09:55:24 +0200548AC_SEARCH_LIBS(setsockopt, [socket net network])
Daniel Veillardd4e39ae2005-10-28 15:59:14 +0000549AC_SEARCH_LIBS(connect, [inet])
Daniel Veillardb05deb71999-08-10 19:04:08 +0000550
Daniel Veillardb0426ca2000-10-11 23:39:43 +0000551dnl Determine what socket length (socklen_t) data type is
552AC_MSG_CHECKING([for type of socket length (socklen_t)])
553AC_TRY_COMPILE2([
554#include <stddef.h>
555#include <sys/types.h>
556#include <sys/socket.h>],[
557(void)getsockopt (1, 1, 1, NULL, (socklen_t *)NULL)],[
558 AC_MSG_RESULT(socklen_t *)
Daniel Veillardc284c642005-03-31 10:24:24 +0000559 XML_SOCKLEN_T=socklen_t],[
Daniel Veillardb0426ca2000-10-11 23:39:43 +0000560 AC_TRY_COMPILE2([
561#include <stddef.h>
562#include <sys/types.h>
563#include <sys/socket.h>],[
564(void)getsockopt (1, 1, 1, NULL, (size_t *)NULL)],[
565 AC_MSG_RESULT(size_t *)
Daniel Veillardc284c642005-03-31 10:24:24 +0000566 XML_SOCKLEN_T=size_t],[
Daniel Veillardb0426ca2000-10-11 23:39:43 +0000567 AC_TRY_COMPILE2([
568#include <stddef.h>
569#include <sys/types.h>
570#include <sys/socket.h>],[
571(void)getsockopt (1, 1, 1, NULL, (int *)NULL)],[
572 AC_MSG_RESULT(int *)
Daniel Veillardc284c642005-03-31 10:24:24 +0000573 XML_SOCKLEN_T=int],[
William M. Brack2e6b1432004-02-09 15:10:28 +0000574 AC_MSG_WARN(could not determine)
Daniel Veillardc284c642005-03-31 10:24:24 +0000575 XML_SOCKLEN_T="int"])])])
576AC_DEFINE_UNQUOTED(XML_SOCKLEN_T, $XML_SOCKLEN_T, [Determine what socket length (socklen_t) data type is])
Daniel Veillardb0426ca2000-10-11 23:39:43 +0000577
Daniel Veillardde2a67b2003-06-21 14:20:04 +0000578dnl ***********************Checking for availability of IPv6*******************
579
580AC_MSG_CHECKING([whether to enable IPv6])
William M. Brack21e4ef22005-01-02 09:53:13 +0000581AC_ARG_ENABLE(ipv6, [ --enable-ipv6[[=yes/no]] enables compilation of IPv6 code [[default=yes]]],, enable_ipv6=yes)
Daniel Veillard4432df22003-09-28 18:58:27 +0000582if test "$with_minimum" = "yes"
583then
584 enable_ipv6=no
585fi
Daniel Veillardde2a67b2003-06-21 14:20:04 +0000586if test $enable_ipv6 = yes; then
587 have_ipv6=no
Daniel Richard Gec4fc522012-08-17 10:04:30 +0800588 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
589# include <sys/types.h>
590# include <sys/socket.h>
591 ]], [[
Daniel Veillardde2a67b2003-06-21 14:20:04 +0000592 struct sockaddr_storage ss;
593 socket(AF_INET6, SOCK_STREAM, 0)
Daniel Richard Gec4fc522012-08-17 10:04:30 +0800594 ]])],
Daniel Veillardde2a67b2003-06-21 14:20:04 +0000595 have_ipv6=yes,
596 have_ipv6=no
597 )
598 AC_MSG_RESULT($have_ipv6)
599
William M. Brack476cd962003-08-13 11:09:42 +0000600 if test $have_ipv6 = yes; then
Daniel Veillardc790bf42003-10-11 10:50:10 +0000601 AC_DEFINE([SUPPORT_IP6], [], [Support for IPv6])
Dodji Seketeli8eba3f32004-11-09 18:30:30 +0000602 have_broken_ss_family=no
603
604 dnl *********************************************************************
605 dnl on some platforms (like AIX 5L), the structure sockaddr doesn't have
606 dnl a ss_family member, but rather __ss_family. Let's detect that
William M. Brack7d8b36b2005-06-25 07:30:50 +0000607 dnl and define the HAVE_BROKEN_SS_FAMILY when we are on one of these
608 dnl platforms. However, we should only do this if ss_family is not
609 dnl present.
Dodji Seketeli8eba3f32004-11-09 18:30:30 +0000610 dnl ********************************************************************
William M. Brack7d8b36b2005-06-25 07:30:50 +0000611 AC_MSG_CHECKING([struct sockaddr::ss_family])
Daniel Richard Gec4fc522012-08-17 10:04:30 +0800612 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
613# include <sys/types.h>
614# include <sys/socket.h>
615 ]], [[
Dodji Seketeli8eba3f32004-11-09 18:30:30 +0000616 struct sockaddr_storage ss ;
William M. Brack7d8b36b2005-06-25 07:30:50 +0000617 ss.ss_family = 0 ;
Daniel Richard Gec4fc522012-08-17 10:04:30 +0800618 ]])],
William M. Brack7d8b36b2005-06-25 07:30:50 +0000619 have_ss_family=yes,
620 have_ss_family=no
Dodji Seketeli8eba3f32004-11-09 18:30:30 +0000621 )
William M. Brack7d8b36b2005-06-25 07:30:50 +0000622 AC_MSG_RESULT($have_ss_family)
623 if test x$have_ss_family = xno ; then
624 AC_MSG_CHECKING([broken struct sockaddr::ss_family])
Daniel Richard Gec4fc522012-08-17 10:04:30 +0800625 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
626# include <sys/types.h>
627# include <sys/socket.h>
628 ]], [[
William M. Brack7d8b36b2005-06-25 07:30:50 +0000629 struct sockaddr_storage ss ;
630 ss.__ss_family = 0 ;
Daniel Richard Gec4fc522012-08-17 10:04:30 +0800631 ]])],
William M. Brack7d8b36b2005-06-25 07:30:50 +0000632 have_broken_ss_family=yes,
633 have_broken_ss_family=no
634 )
635 AC_MSG_RESULT($have_broken_ss_family)
636 if test x$have_broken_ss_family = xyes ; then
637 AC_DEFINE(HAVE_BROKEN_SS_FAMILY, [],
638 [Whether struct sockaddr::__ss_family exists])
639 AC_DEFINE(ss_family, __ss_family,
640 [ss_family is not defined here, use __ss_family instead])
641 else
642 AC_MSG_WARN(ss_family and __ss_family not found)
643 fi
Dodji Seketeli8eba3f32004-11-09 18:30:30 +0000644 fi
Daniel Veillardde2a67b2003-06-21 14:20:04 +0000645
646 have_getaddrinfo=no
647 AC_CHECK_FUNC(getaddrinfo, have_getaddrinfo=yes)
648 if test $have_getaddrinfo != yes; then
649 for lib in bsd socket inet; do
650 AC_CHECK_LIB($lib, getaddrinfo, [LIBS="$LIBS -l$lib";have_getaddrinfo=yes;break])
651 done
652 fi
653
William M. Brack476cd962003-08-13 11:09:42 +0000654 if test $have_getaddrinfo = yes; then
Daniel Veillardc790bf42003-10-11 10:50:10 +0000655 AC_DEFINE([HAVE_GETADDRINFO], [], [Define if getaddrinfo is there])
Daniel Veillardde2a67b2003-06-21 14:20:04 +0000656 fi
657 fi
658fi
659
660dnl ******************************End IPv6 checks******************************
661
Daniel Veillardb05deb71999-08-10 19:04:08 +0000662dnl Checks for isnan in libm if not in libc
Daniel Veillard6984e6d2003-12-09 14:20:17 +0000663AC_CHECK_FUNC(isnan, AC_DEFINE([HAVE_ISNAN],[], [Define if isnan is there]) , AC_CHECK_LIB(m, isnan,
Daniel Veillardc790bf42003-10-11 10:50:10 +0000664 [AC_DEFINE([HAVE_ISNAN],[], [Define if isnan is there])]))
Daniel Veillardb05deb71999-08-10 19:04:08 +0000665
Daniel Veillardc790bf42003-10-11 10:50:10 +0000666AC_CHECK_FUNC(isinf, AC_DEFINE([HAVE_ISINF], [], [Define if isinf is there]) , AC_CHECK_LIB(m, isinf,
667 [AC_DEFINE([HAVE_ISINF], [], [Define if isinf is there])]))
Daniel Veillardb05deb71999-08-10 19:04:08 +0000668
669XML_LIBDIR='-L${libdir}'
Daniel Veillarde7dd2b82002-03-15 18:44:02 +0000670XML_INCLUDEDIR='-I${includedir}/libxml2'
Daniel Veillardb05deb71999-08-10 19:04:08 +0000671
Daniel Veillardd7e200c1999-11-15 17:53:11 +0000672dnl
Daniel Veillardf5c2c871999-12-01 09:51:45 +0000673dnl Extra flags
674dnl
675XML_CFLAGS=""
Daniel Veillard357c9602001-05-03 10:49:20 +0000676RDL_LIBS=""
Daniel Veillardf5c2c871999-12-01 09:51:45 +0000677
678dnl
Daniel Veillardb45c43b2001-04-28 17:02:11 +0000679dnl Workaround for native compilers
680dnl HP : http://bugs.gnome.org/db/31/3163.html
681dnl DEC : Enable NaN/Inf
Daniel Veillardd7e200c1999-11-15 17:53:11 +0000682dnl
Daniel Veillard03109292000-08-14 14:58:22 +0000683if test "${GCC}" != "yes" ; then
Daniel Veillardd7e200c1999-11-15 17:53:11 +0000684 case "${host}" in
Daniel Veillard6a0baa02005-12-10 11:11:12 +0000685 hppa*-*-hpux* )
Daniel Veillard03109292000-08-14 14:58:22 +0000686 CFLAGS="${CFLAGS} -Wp,-H30000"
Daniel Veillardd7e200c1999-11-15 17:53:11 +0000687 ;;
Daniel Veillardb45c43b2001-04-28 17:02:11 +0000688 *-dec-osf* )
689 CFLAGS="${CFLAGS} -ieee"
690 ;;
William M. Brack476cd962003-08-13 11:09:42 +0000691 alpha*-*-linux* )
692 CFLAGS="${CFLAGS} -ieee"
693 ;;
Daniel Veillardd7e200c1999-11-15 17:53:11 +0000694 esac
Daniel Veillardd574f782001-03-14 19:40:17 +0000695else
Daniel Veillardd94849b2003-07-28 13:02:24 +0000696 if test "$with_fexceptions" = "yes"
697 then
698 #
699 # Not activated by default because this inflates the code size
700 # Used to allow propagation of C++ exceptions through the library
701 #
702 CFLAGS="${CFLAGS} -fexceptions"
703 fi
Stefan Kost85deb482011-05-10 10:55:07 +0300704
705 # warnings we'd like to see
706 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"
707 # warnings we'd like to supress
708 CFLAGS="${CFLAGS} -Wno-long-long"
Daniel Veillard14839d52001-06-06 16:11:56 +0000709 case "${host}" in
710 alpha*-*-linux* )
711 CFLAGS="${CFLAGS} -mieee"
712 ;;
Daniel Veillardcb5b4d62002-04-11 08:24:26 +0000713 alpha*-*-osf* )
714 CFLAGS="${CFLAGS} -mieee"
715 ;;
Daniel Veillard14839d52001-06-06 16:11:56 +0000716 esac
Daniel Veillardd7e200c1999-11-15 17:53:11 +0000717fi
Daniel Veillardb0426ca2000-10-11 23:39:43 +0000718case ${host} in
719 *-*-solaris*)
Daniel Veillardd2ade932000-09-30 14:39:55 +0000720 XML_LIBDIR="${XML_LIBDIR} -R${libdir}"
721 ;;
Daniel Veillardd30be4a2002-03-28 18:25:31 +0000722 hppa*-hp-mpeix)
723 NEED_TRIO=1
724 ;;
Daniel Veillard4188ddf2006-01-19 08:58:42 +0000725 *-*-mingw* | *-*-cygwin* | *-*-msvc* )
726 # If the host is Windows, and shared libraries are disabled, we
727 # need to add -DLIBXML_STATIC to CFLAGS in order for linking to
728 # work properly (without it, xmlexports.h would force the use of
729 # DLL imports, which obviously aren't present in a static
730 # library).
731 if test "x$enable_shared" = "xno"; then
732 XML_CFLAGS="$XML_CFLAGS -DLIBXML_STATIC"
733 CFLAGS="$CFLAGS -DLIBXML_STATIC"
734 fi
735 ;;
Daniel Veillardd2ade932000-09-30 14:39:55 +0000736esac
737
Daniel Veillardf5c2c871999-12-01 09:51:45 +0000738
Daniel Veillardf1d0e6b2002-01-31 23:42:44 +0000739dnl
740dnl check for python
741dnl
742
Daniel Veillardf1d0e6b2002-01-31 23:42:44 +0000743PYTHON_VERSION=
744PYTHON_INCLUDES=
Daniel Veillard253aa2c2002-02-02 09:17:16 +0000745PYTHON_SITE_PACKAGES=
Daniel Veillard6dc91962004-03-22 19:10:02 +0000746PYTHON_TESTS=
Daniel Veillard38b80a82003-05-14 18:59:00 +0000747pythondir=
Daniel Veillardf1d0e6b2002-01-31 23:42:44 +0000748if test "$with_python" != "no" ; then
749 if test -x "$with_python/bin/python"
750 then
751 echo Found python in $with_python/bin/python
752 PYTHON="$with_python/bin/python"
Daniel Veillard9b731d72002-04-14 12:56:08 +0000753 else
LRNfbd4ddf2010-11-04 15:45:46 +0100754 if test -x "$with_python/python.exe"
755 then
756 echo Found python in $with_python/python.exe
757 PYTHON="$with_python/python.exe"
758 else
759 if test -x "$with_python"
760 then
761 echo Found python in $with_python
762 PYTHON="$with_python"
763 else
764 if test -x "$PYTHON"
765 then
766 echo Found python in environment PYTHON=$PYTHON
767 with_python=`$PYTHON -c "import sys; print sys.exec_prefix"`
768 else
769 AC_PATH_PROG(PYTHON, python python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5)
770 fi
Daniel Veillard4f69eb62005-08-24 22:19:10 +0000771 fi
Daniel Veillarda8a89fe2002-04-12 21:03:34 +0000772 fi
Daniel Veillardf1d0e6b2002-01-31 23:42:44 +0000773 fi
774 if test "$PYTHON" != ""
775 then
776 PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[[0:3]]"`
777 echo Found Python version $PYTHON_VERSION
778 fi
779 if test "$PYTHON_VERSION" != ""
780 then
Daniel Veillard253aa2c2002-02-02 09:17:16 +0000781 if test -r $with_python/include/python$PYTHON_VERSION/Python.h -a \
782 -d $with_python/lib/python$PYTHON_VERSION/site-packages
Daniel Veillardf1d0e6b2002-01-31 23:42:44 +0000783 then
784 PYTHON_INCLUDES=$with_python/include/python$PYTHON_VERSION
Daniel Veillardd7d07482006-05-03 13:15:44 +0000785 PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
Daniel Veillardf1d0e6b2002-01-31 23:42:44 +0000786 else
787 if test -r $prefix/include/python$PYTHON_VERSION/Python.h
788 then
Daniel Veillard8492ba12006-04-25 12:52:12 +0000789 PYTHON_INCLUDES=$prefix/include/python$PYTHON_VERSION
Daniel Veillardd7d07482006-05-03 13:15:44 +0000790 PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
Daniel Veillardf1d0e6b2002-01-31 23:42:44 +0000791 else
792 if test -r /usr/include/python$PYTHON_VERSION/Python.h
793 then
794 PYTHON_INCLUDES=/usr/include/python$PYTHON_VERSION
Daniel Veillardd7d07482006-05-03 13:15:44 +0000795 PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
Daniel Veillardf1d0e6b2002-01-31 23:42:44 +0000796 else
LRNfbd4ddf2010-11-04 15:45:46 +0100797 if test -r $with_python/include/Python.h -a \
798 -d $with_python/lib/site-packages
799 then
800 PYTHON_INCLUDES=$with_python/include
801 PYTHON_SITE_PACKAGES=$with_python/lib/site-packages
802 else
803 echo could not find python$PYTHON_VERSION/Python.h or $with_python/include/Python.h
804 fi
Daniel Veillardf1d0e6b2002-01-31 23:42:44 +0000805 fi
806 fi
William M. Brack5d4cba42004-01-06 15:19:12 +0000807 if test ! -d "$PYTHON_SITE_PACKAGES"
Daniel Veillardb6984ef2002-08-14 16:55:31 +0000808 then
809 PYTHON_SITE_PACKAGES=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib()"`
810 fi
Daniel Veillardf1d0e6b2002-01-31 23:42:44 +0000811 fi
Daniel Macks12febe82010-03-15 10:31:24 +0100812 PYTHON_LIBS=`python$PYTHON_VERSION-config --ldflags`
Daniel Veillardf1d0e6b2002-01-31 23:42:44 +0000813 fi
Daniel Veillard38b80a82003-05-14 18:59:00 +0000814 if test "$with_python" != ""
815 then
Daniel Veillardd7d07482006-05-03 13:15:44 +0000816 pythondir='$(PYTHON_SITE_PACKAGES)'
Daniel Veillard38b80a82003-05-14 18:59:00 +0000817 else
Daniel Veillardb2f8f1d2006-04-28 16:30:48 +0000818 pythondir='$(libdir)/python$(PYTHON_VERSION)/site-packages'
Daniel Veillard38b80a82003-05-14 18:59:00 +0000819 fi
Daniel Veillard4f69eb62005-08-24 22:19:10 +0000820else
821 PYTHON=
Daniel Veillardf1d0e6b2002-01-31 23:42:44 +0000822fi
823AM_CONDITIONAL(WITH_PYTHON, test "$PYTHON_INCLUDES" != "")
Daniel Veillard40b11342002-09-20 12:01:39 +0000824if test "$PYTHON_INCLUDES" != ""
825then
826 PYTHON_SUBDIR=python
827else
828 PYTHON_SUBDIR=
829fi
Daniel Veillard38b80a82003-05-14 18:59:00 +0000830AC_SUBST(pythondir)
Daniel Veillard40b11342002-09-20 12:01:39 +0000831AC_SUBST(PYTHON_SUBDIR)
Frederic Crozate21731d2009-09-12 18:02:40 +0200832AC_SUBST(PYTHON_LIBS)
Daniel Veillardf1d0e6b2002-01-31 23:42:44 +0000833
Daniel Veillardce1648b2005-01-04 15:10:22 +0000834dnl check for dso support
835WITH_MODULES=0
Daniel Veillardce1648b2005-01-04 15:10:22 +0000836TEST_MODULES=
837
Daniel Veillardf6b71bd2005-01-04 17:50:14 +0000838if test "$with_modules" != "no" ; then
Daniel Veillard9202b672005-07-14 09:31:14 +0000839 case "$host" in
840 *-*-cygwin*)
841 MODULE_EXTENSION=".dll"
842 AC_CHECK_LIB(cygwin, dlopen, [
843 WITH_MODULES=1
844 MODULE_PLATFORM_LIBS=
845 AC_DEFINE([HAVE_DLOPEN], [], [Have dlopen based dso])
846 ])
847 ;;
Roumen Petrov120a2692010-03-10 10:07:49 +0100848 *-*-mingw*)
849 MODULE_EXTENSION=".dll"
850 WITH_MODULES=1
851 ;;
Daniel Veillard9202b672005-07-14 09:31:14 +0000852 *)
Daniel Veillard1d96f5a2005-10-28 08:44:48 +0000853 AC_CHECK_FUNC(shl_load, libxml_have_shl_load=yes, [
854 AC_CHECK_LIB(dld, shl_load, [
855 MODULE_PLATFORM_LIBS="-ldld"
856 libxml_have_shl_load=yes], [
857 AC_CHECK_FUNC(dlopen, libxml_have_dlopen=yes, [
858 AC_CHECK_LIB(dl, dlopen, [
859 MODULE_PLATFORM_LIBS="-ldl"
860 libxml_have_dlopen=yes])])])])
861
862 if test "${libxml_have_shl_load}" = "yes"; then
863 MODULE_EXTENSION=".sl"
Daniel Veillard9202b672005-07-14 09:31:14 +0000864 WITH_MODULES=1
Daniel Veillard9202b672005-07-14 09:31:14 +0000865 AC_DEFINE([HAVE_SHLLOAD], [], [Have shl_load based dso])
Daniel Veillard1d96f5a2005-10-28 08:44:48 +0000866 fi
Daniel Veillard9202b672005-07-14 09:31:14 +0000867
Daniel Veillard1d96f5a2005-10-28 08:44:48 +0000868 if test "${libxml_have_dlopen}" = "yes"; then
869 case "${host}" in
870 *-*-hpux* )
871 MODULE_EXTENSION=".sl"
872 ;;
873 * )
874 MODULE_EXTENSION=".so"
875 ;;
876 esac
877
Daniel Veillard9202b672005-07-14 09:31:14 +0000878 WITH_MODULES=1
Daniel Veillard9202b672005-07-14 09:31:14 +0000879 AC_DEFINE([HAVE_DLOPEN], [], [Have dlopen based dso])
Daniel Veillard1d96f5a2005-10-28 08:44:48 +0000880 fi
Daniel Veillard9202b672005-07-14 09:31:14 +0000881 ;;
882 esac
Daniel Veillardf6b71bd2005-01-04 17:50:14 +0000883fi
Daniel Veillardce1648b2005-01-04 15:10:22 +0000884
885if test "${WITH_MODULES}" = "1"; then
886 TEST_MODULES="ModuleTests"
887fi
888
889AC_SUBST(WITH_MODULES)
890AC_SUBST(MODULE_PLATFORM_LIBS)
891AC_SUBST(MODULE_EXTENSION)
892AC_SUBST(TEST_MODULES)
893
Daniel Veillard437b87b2000-01-03 17:30:46 +0000894dnl
895dnl Tester makes use of readline if present
896dnl
Daniel Veillard03109292000-08-14 14:58:22 +0000897
Daniel Veillard361d8452000-04-03 19:48:13 +0000898dnl
William M. Brack21e4ef22005-01-02 09:53:13 +0000899dnl specific tests to setup DV and Bill's devel environments with debug etc ...
Daniel Veillard81418e32001-05-22 15:08:55 +0000900dnl (-Wunreachable-code)
Daniel Veillardf6eea272001-01-18 12:17:12 +0000901dnl
William M. Brack871611b2003-10-18 04:53:14 +0000902if [[ "${LOGNAME}" = "veillard" -a "`pwd`" = "/u/veillard/XML" ]] || \
Daniel Veillardb7c6ac42004-06-29 22:01:27 +0000903 [[ "${LOGNAME}" = "veillard" -a "`pwd`" = "/home/veillard/libxml2" ]] || \
William M. Brack7f28a012007-01-11 23:42:10 +0000904 [[ "${LOGNAME}" = "bill" -a "`pwd`" = "/home/bill/gnomesvn/libxml2" ]]
William M. Brack871611b2003-10-18 04:53:14 +0000905 then
Daniel Veillard4432df22003-09-28 18:58:27 +0000906 if test "$with_minimum" != "yes"
907 then
908 if test "${with_mem_debug}" = "" ; then
Daniel Veillard379a3b72005-08-12 10:18:14 +0000909 echo Activating memory debugging
Daniel Veillard4432df22003-09-28 18:58:27 +0000910 with_mem_debug="yes"
Daniel Veillard22cdb842004-10-04 14:09:17 +0000911 with_run_debug="yes"
Daniel Veillard4432df22003-09-28 18:58:27 +0000912 fi
913 if test "${with_docbook}" = "" ; then
914 with_docbook="yes"
915 fi
Daniel Veillardeae522a2001-04-23 13:41:34 +0000916 fi
Daniel Veillard3854c572005-08-25 10:17:45 +0000917 if test "${GCC}" = "yes" ; then
Daniel Veillard05f97352004-10-31 15:35:32 +0000918 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"
Daniel Veillardeff45a92004-10-29 12:10:55 +0000919 fi
Daniel Veillard2e9b1652003-02-19 13:29:45 +0000920 STATIC_BINARIES="-static"
Daniel Veillardc86a4fa2001-03-26 16:28:29 +0000921dnl -Wcast-qual -ansi
Daniel Veillard2e9b1652003-02-19 13:29:45 +0000922else
923 STATIC_BINARIES=
Daniel Veillardf6eea272001-01-18 12:17:12 +0000924fi
Daniel Veillard2e9b1652003-02-19 13:29:45 +0000925AC_SUBST(STATIC_BINARIES)
Daniel Veillard92ad2102001-03-27 12:47:33 +0000926
927dnl
928dnl Check for trio string functions
929dnl
930
931if test "${NEED_TRIO}" = "1" ; then
932 echo Adding trio library for string functions
933 WITH_TRIO=1
934else
935 WITH_TRIO=0
936fi
Daniel Veillard01ef7382001-05-08 07:31:43 +0000937AM_CONDITIONAL(WITH_TRIO_SOURCES, test "${NEED_TRIO}" = "1")
Daniel Veillard92ad2102001-03-27 12:47:33 +0000938AC_SUBST(WITH_TRIO)
939
Daniel Veillardf6eea272001-01-18 12:17:12 +0000940dnl
William M. Brack97ad4c72003-05-13 08:08:36 +0000941dnl Allow to enable/disable various pieces
Daniel Veillard361d8452000-04-03 19:48:13 +0000942dnl
William M. Brack21e4ef22005-01-02 09:53:13 +0000943echo Checking configuration requirements
Daniel Veillard361d8452000-04-03 19:48:13 +0000944
William M. Brack21e4ef22005-01-02 09:53:13 +0000945dnl
946dnl Thread-related stuff
947dnl
Daniel Veillardb8478642001-10-12 17:29:10 +0000948THREAD_LIBS=""
Daniel Veillarddbfe05a2005-05-04 09:18:00 +0000949BASE_THREAD_LIBS=""
Daniel Veillardb8478642001-10-12 17:29:10 +0000950WITH_THREADS=0
951THREAD_CFLAGS=""
Daniel Veillardab7488e2001-10-17 11:30:37 +0000952TEST_THREADS=""
Daniel Veillard6984e6d2003-12-09 14:20:17 +0000953THREADS_W32=""
Daniel Veillard64a411c2001-10-15 12:32:07 +0000954
Daniel Veillard84942712003-04-18 14:40:05 +0000955if test "$with_threads" = "no" ; then
956 echo Disabling multithreaded support
957else
Daniel Veillardb8478642001-10-12 17:29:10 +0000958 echo Enabling multithreaded support
Sam Thursfield115581a2012-05-09 18:46:56 +0800959
960 dnl Default to native threads on Win32
Daniel Veillard6984e6d2003-12-09 14:20:17 +0000961 case $host_os in
Sam Thursfield115581a2012-05-09 18:46:56 +0800962 *mingw32*) if test "$with_threads" != "pthread" && test "$with_threads" != "no"; then
LRN203fd2e2009-08-07 21:47:25 +0200963 WITH_THREADS="1"
Daniel Richard G5706b6d2012-08-06 11:32:54 +0800964 THREADS_W32="1"
Sam Thursfield115581a2012-05-09 18:46:56 +0800965 THREAD_CFLAGS="$THREAD_CFLAGS -DHAVE_WIN32_THREADS"
LRN203fd2e2009-08-07 21:47:25 +0200966 fi
Daniel Veillard6984e6d2003-12-09 14:20:17 +0000967 ;;
Sam Thursfield115581a2012-05-09 18:46:56 +0800968 esac
969
970 dnl Use pthread by default in other cases
971 if test -z "$THREADS_W32"; then
972 if test "$with_threads" = "pthread" || test "$with_threads" = "" || test "$with_threads" = "yes" ; then
973 AC_CHECK_HEADER(pthread.h,
974 AC_CHECK_LIB(pthread, pthread_join,[
975 THREAD_LIBS="-lpthread"
976 AC_DEFINE([HAVE_LIBPTHREAD], [], [Define if pthread library is there (-lpthread)])
977 AC_DEFINE([HAVE_PTHREAD_H], [], [Define if <pthread.h> is there])
978 WITH_THREADS="1"]))
979 fi
980 fi
981
982 case $host_os in
William M. Bracka73f45b2005-01-11 02:21:33 +0000983 *cygwin*) THREAD_LIBS=""
984 ;;
Daniel Veillard7a3447a2005-01-04 14:31:14 +0000985 *beos*) WITH_THREADS="1"
986 THREAD_CFLAGS="$THREAD_CFLAGS -DHAVE_BEOS_THREADS"
987 ;;
Daniel Veillarddbfe05a2005-05-04 09:18:00 +0000988 *linux*)
Daniel Veillard32a461f2005-08-25 21:48:54 +0000989 if test "${GCC}" = "yes" ; then
990 GCC_VERSION=`${CC} --version | head -1 | awk '{print $3}'`
991 GCC_MAJOR=`echo ${GCC_VERSION} | sed 's+\..*++'`
992 GCC_MEDIUM=`echo ${GCC_VERSION} | sed 's+[[0-9]]*\.++' | sed 's+\..*++'`
993 if test "${THREAD_LIBS}" = "-lpthread" ; then
994 if expr ${GCC_MEDIUM} \> 2 \& ${GCC_MAJOR} = 3 > /dev/null
995 then
996 THREAD_LIBS=""
997 BASE_THREAD_LIBS="-lpthread"
998 else
LRN203fd2e2009-08-07 21:47:25 +0200999 if expr ${GCC_MAJOR} \> 3 > /dev/null
Daniel Veillard32a461f2005-08-25 21:48:54 +00001000 then
1001 THREAD_LIBS=""
1002 BASE_THREAD_LIBS="-lpthread"
1003 else
1004 echo old GCC disabling weak symbols for pthread
1005 fi
1006 fi
1007 fi
Daniel Veillarddbfe05a2005-05-04 09:18:00 +00001008 fi
1009 ;;
Daniel Veillard6984e6d2003-12-09 14:20:17 +00001010 esac
Daniel Veillardb8478642001-10-12 17:29:10 +00001011 if test "$WITH_THREADS" = "1" ; then
Daniel Veillardab7488e2001-10-17 11:30:37 +00001012 THREAD_CFLAGS="$THREAD_CFLAGS -D_REENTRANT"
1013 TEST_THREADS="Threadtests"
Daniel Veillardb8478642001-10-12 17:29:10 +00001014 fi
1015fi
William M. Brack306e33c2004-06-12 01:01:22 +00001016if test "$with_thread_alloc" = "yes" -a "$WITH_THREADS" = "1" ; then
Daniel Veillardab7488e2001-10-17 11:30:37 +00001017 THREAD_CFLAGS="$THREAD_CFLAGS -DLIBXML_THREAD_ALLOC_ENABLED"
Daniel Veillard64a411c2001-10-15 12:32:07 +00001018fi
1019
Daniel Veillardb8478642001-10-12 17:29:10 +00001020AC_SUBST(THREAD_LIBS)
Daniel Veillarddbfe05a2005-05-04 09:18:00 +00001021AC_SUBST(BASE_THREAD_LIBS)
Daniel Veillardb8478642001-10-12 17:29:10 +00001022AC_SUBST(WITH_THREADS)
1023AC_SUBST(THREAD_CFLAGS)
Daniel Veillardab7488e2001-10-17 11:30:37 +00001024AC_SUBST(TEST_THREADS)
Roumen Petrov8886f332012-08-13 16:38:09 +08001025AM_CONDITIONAL([THREADS_W32],[test -n "$THREADS_W32"])
Daniel Veillardb8478642001-10-12 17:29:10 +00001026
William M. Brack21e4ef22005-01-02 09:53:13 +00001027dnl
1028dnl xmllint shell history
1029dnl
Daniel Veillard259ff742001-10-06 13:49:59 +00001030if test "$with_history" = "yes" ; then
Daniel Veillardf012a642001-07-23 19:10:52 +00001031 echo Enabling xmllint shell history
1032 dnl check for terminal library. this is a very cool solution
1033 dnl from octave's configure.in
1034 unset tcap
1035 for termlib in ncurses curses termcap terminfo termlib; do
1036 AC_CHECK_LIB(${termlib}, tputs, [tcap="-l$termlib"])
1037 test -n "$tcap" && break
1038 done
1039
1040 AC_CHECK_HEADER(readline/history.h,
1041 AC_CHECK_LIB(history, append_history,[
1042 RDL_LIBS="-lhistory"
Daniel Veillardc790bf42003-10-11 10:50:10 +00001043 AC_DEFINE([HAVE_LIBHISTORY], [], [Define if history library is there (-lhistory)])]))
Daniel Veillardf012a642001-07-23 19:10:52 +00001044 AC_CHECK_HEADER(readline/readline.h,
1045 AC_CHECK_LIB(readline, readline,[
1046 RDL_LIBS="-lreadline $RDL_LIBS $tcap"
Daniel Veillardc790bf42003-10-11 10:50:10 +00001047 AC_DEFINE([HAVE_LIBREADLINE], [], [Define if readline library is there (-lreadline)])], , $tcap))
Daniel Veillardf012a642001-07-23 19:10:52 +00001048 if test -n "$RDL_DIR" -a -n "$RDL_LIBS"; then
1049 CPPFLAGS="$CPPFLAGS -I${RDL_DIR}/include"
1050 RDL_LIBS="-L${RDL_DIR}/lib $RDL_LIBS"
Daniel Veillardf012a642001-07-23 19:10:52 +00001051 fi
Daniel Veillardf012a642001-07-23 19:10:52 +00001052fi
1053
William M. Brack21e4ef22005-01-02 09:53:13 +00001054dnl
1055dnl Tree functions
1056dnl
Daniel Veillard652327a2003-09-29 18:02:38 +00001057if test "$with_tree" = "no" ; then
1058 echo Disabling DOM like tree manipulation APIs
1059 WITH_TREE=0
1060else
1061 WITH_TREE=1
1062fi
1063AC_SUBST(WITH_TREE)
1064
Daniel Veillard361d8452000-04-03 19:48:13 +00001065if test "$with_ftp" = "no" ; then
1066 echo Disabling FTP support
1067 WITH_FTP=0
1068 FTP_OBJ=
1069else
1070 WITH_FTP=1
1071 FTP_OBJ=nanoftp.o
1072fi
1073AC_SUBST(WITH_FTP)
1074AC_SUBST(FTP_OBJ)
1075
Daniel Veillard361d8452000-04-03 19:48:13 +00001076if test "$with_http" = "no" ; then
1077 echo Disabling HTTP support
1078 WITH_HTTP=0
1079 HTTP_OBJ=
1080else
1081 WITH_HTTP=1
1082 HTTP_OBJ=nanohttp.o
1083fi
1084AC_SUBST(WITH_HTTP)
1085AC_SUBST(HTTP_OBJ)
1086
Daniel Veillard4432df22003-09-28 18:58:27 +00001087if test "$with_legacy" = "no" ; then
1088 echo Disabling deprecated APIs
1089 WITH_LEGACY=0
1090else
1091 WITH_LEGACY=1
1092fi
1093AC_SUBST(WITH_LEGACY)
1094
Daniel Veillard81273902003-09-30 00:43:48 +00001095if test "$with_reader" = "no" ; then
1096 echo Disabling the xmlReader parsing interface
1097 WITH_READER=0
Daniel Veillard73b013f2003-09-30 12:36:01 +00001098 READER_TEST=
Daniel Veillard81273902003-09-30 00:43:48 +00001099else
1100 WITH_READER=1
Daniel Veillard73b013f2003-09-30 12:36:01 +00001101 READER_TEST=Readertests
William M. Brack21e4ef22005-01-02 09:53:13 +00001102 if test "$with_push" = "no" ; then
1103 echo xmlReader requires Push interface - enabling it
1104 with_push=yes
1105 fi
Daniel Veillard81273902003-09-30 00:43:48 +00001106fi
1107AC_SUBST(WITH_READER)
Daniel Veillard73b013f2003-09-30 12:36:01 +00001108AC_SUBST(READER_TEST)
Daniel Veillard81273902003-09-30 00:43:48 +00001109
William M. Brack21e4ef22005-01-02 09:53:13 +00001110if test "$with_writer" = "no" ; then
1111 echo Disabling the xmlWriter saving interface
1112 WITH_WRITER=0
1113# WRITER_TEST=
1114else
1115 WITH_WRITER=1
1116# WRITER_TEST=Writertests
1117 if test "$with_push" = "no" ; then
1118 echo xmlWriter requires Push interface - enabling it
1119 with_push=yes
1120 fi
1121 if test "$with_output" = "no" ; then
1122 echo xmlWriter requires Output interface - enabling it
1123 with_output=yes
1124 fi
Daniel Veillardb3de70c2003-12-02 22:32:15 +00001125fi
William M. Brack21e4ef22005-01-02 09:53:13 +00001126AC_SUBST(WITH_WRITER)
1127#AC_SUBST(WRITER_TEST)
1128
Daniel Veillardb3de70c2003-12-02 22:32:15 +00001129if test "$with_pattern" = "no" ; then
1130 echo Disabling the xmlPattern parsing interface
1131 WITH_PATTERN=0
Daniel Veillardf9d16912005-01-30 22:36:30 +00001132 TEST_PATTERN=
Daniel Veillardb3de70c2003-12-02 22:32:15 +00001133else
1134 WITH_PATTERN=1
Daniel Veillardf9d16912005-01-30 22:36:30 +00001135 TEST_PATTERN=Patterntests
Daniel Veillardb3de70c2003-12-02 22:32:15 +00001136fi
1137AC_SUBST(WITH_PATTERN)
Daniel Veillardf9d16912005-01-30 22:36:30 +00001138AC_SUBST(TEST_PATTERN)
Daniel Veillardb3de70c2003-12-02 22:32:15 +00001139
Daniel Veillard81273902003-09-30 00:43:48 +00001140if test "$with_sax1" = "no" ; then
1141 echo Disabling the older SAX1 interface
1142 WITH_SAX1=0
1143 TEST_SAX=
1144else
1145 WITH_SAX1=1
1146 TEST_SAX=SAXtests
1147fi
1148AC_SUBST(WITH_SAX1)
1149AC_SUBST(TEST_SAX)
1150
Daniel Veillard73b013f2003-09-30 12:36:01 +00001151if test "$with_push" = "no" ; then
1152 echo Disabling the PUSH parser interfaces
1153 WITH_PUSH=0
1154 TEST_PUSH=
1155else
1156 WITH_PUSH=1
1157 TEST_PUSH="XMLPushtests"
1158fi
1159AC_SUBST(WITH_PUSH)
1160AC_SUBST(TEST_PUSH)
1161
Daniel Veillard73b013f2003-09-30 12:36:01 +00001162if test "$with_html" = "no" ; then
1163 echo Disabling HTML support
1164 WITH_HTML=0
1165 HTML_OBJ=
1166 TEST_HTML=
1167else
1168 WITH_HTML=1
1169 HTML_OBJ="HTMLparser.o HTMLtree.o"
1170 TEST_HTML=HTMLtests
William M. Brack871611b2003-10-18 04:53:14 +00001171 if test "$with_push" != "no" ; then
Daniel Veillard73b013f2003-09-30 12:36:01 +00001172 TEST_PHTML=HTMLPushtests
1173 else
1174 TEST_PHTML=
1175 fi
1176fi
1177AC_SUBST(WITH_HTML)
1178AC_SUBST(HTML_OBJ)
1179AC_SUBST(TEST_HTML)
1180AC_SUBST(TEST_PHTML)
1181
Daniel Veillard73b013f2003-09-30 12:36:01 +00001182if test "$with_valid" = "no" ; then
Daniel Veillard4432df22003-09-28 18:58:27 +00001183 echo Disabling DTD validation support
1184 WITH_VALID=0
1185 TEST_VALID=
1186 TEST_VTIME=
1187else
1188 WITH_VALID=1
1189 TEST_VALID=Validtests
1190 TEST_VTIME=VTimingtests
1191fi
1192AC_SUBST(WITH_VALID)
1193AC_SUBST(TEST_VALID)
1194AC_SUBST(TEST_VTIME)
Daniel Veillard361d8452000-04-03 19:48:13 +00001195
Daniel Veillarda7374592001-05-10 14:17:55 +00001196if test "$with_catalog" = "no" ; then
1197 echo Disabling Catalog support
1198 WITH_CATALOG=0
1199 CATALOG_OBJ=
Daniel Veillard4432df22003-09-28 18:58:27 +00001200 TEST_CATALOG=
Daniel Veillarda7374592001-05-10 14:17:55 +00001201else
1202 WITH_CATALOG=1
1203 CATALOG_OBJ="catalog.o"
Daniel Veillard4432df22003-09-28 18:58:27 +00001204 TEST_CATALOG=Catatests
Daniel Veillarda7374592001-05-10 14:17:55 +00001205fi
1206AC_SUBST(WITH_CATALOG)
1207AC_SUBST(CATALOG_OBJ)
Daniel Veillard4432df22003-09-28 18:58:27 +00001208AC_SUBST(TEST_CATALOG)
Daniel Veillarda7374592001-05-10 14:17:55 +00001209
Daniel Veillardb59076b2001-04-29 17:04:07 +00001210if test "$with_docbook" = "no" ; then
1211 echo Disabling Docbook support
Daniel Veillardeae522a2001-04-23 13:41:34 +00001212 WITH_DOCB=0
1213 DOCB_OBJ=
Daniel Veillardb59076b2001-04-29 17:04:07 +00001214else
1215 WITH_DOCB=1
1216 DOCB_OBJ="DOCBparser.o"
Daniel Veillardeae522a2001-04-23 13:41:34 +00001217fi
1218AC_SUBST(WITH_DOCB)
1219AC_SUBST(DOCB_OBJ)
1220
1221
William M. Brack21e4ef22005-01-02 09:53:13 +00001222if test "$with_xptr" = "no" ; then
1223 echo Disabling XPointer support
1224 WITH_XPTR=0
1225 XPTR_OBJ=
1226 TEST_XPTR=
1227else
1228 WITH_XPTR=1
1229 XPTR_OBJ=xpointer.o
1230 TEST_XPTR=XPtrtests
1231 if test "$with_xpath" = "no" ; then
1232 echo XPointer requires XPath support - enabling it
1233 with_xpath=yes
1234 fi
Daniel Veillard4432df22003-09-28 18:58:27 +00001235fi
William M. Brack21e4ef22005-01-02 09:53:13 +00001236AC_SUBST(WITH_XPTR)
1237AC_SUBST(XPTR_OBJ)
1238AC_SUBST(TEST_XPTR)
1239
1240if test "$with_c14n" = "no" ; then
1241 echo Disabling C14N support
1242 WITH_C14N=0
1243 C14N_OBJ=
1244 TEST_C14N=
1245else
1246 WITH_C14N=1
1247 C14N_OBJ="c14n.c"
1248 TEST_C14N=C14Ntests
1249 if test "$with_xpath" = "no" ; then
1250 echo C14N requires XPath support - enabling it
1251 with_xpath=yes
1252 fi
1253fi
1254AC_SUBST(WITH_C14N)
1255AC_SUBST(C14N_OBJ)
1256AC_SUBST(TEST_C14N)
1257
1258if test "$with_xinclude" = "no" ; then
1259 echo Disabling XInclude support
1260 WITH_XINCLUDE=0
1261 XINCLUDE_OBJ=
1262 with_xinclude="no"
1263 TEST_XINCLUDE=
1264else
1265 WITH_XINCLUDE=1
1266 XINCLUDE_OBJ=xinclude.o
1267 TEST_XINCLUDE=XIncludetests
1268 if test "$with_xpath" = "no" ; then
1269 echo XInclude requires XPath support - enabling it
1270 with_xpath=yes
1271 fi
1272fi
1273AC_SUBST(WITH_XINCLUDE)
1274AC_SUBST(XINCLUDE_OBJ)
1275AC_SUBST(TEST_XINCLUDE)
1276
Daniel Veillard361d8452000-04-03 19:48:13 +00001277if test "$with_xpath" = "no" ; then
1278 echo Disabling XPATH support
1279 WITH_XPATH=0
1280 XPATH_OBJ=
Daniel Veillard4432df22003-09-28 18:58:27 +00001281 TEST_XPATH=
Daniel Veillard361d8452000-04-03 19:48:13 +00001282else
1283 WITH_XPATH=1
1284 XPATH_OBJ=xpath.o
Daniel Veillard4432df22003-09-28 18:58:27 +00001285 TEST_XPATH=XPathtests
Daniel Veillard361d8452000-04-03 19:48:13 +00001286fi
1287AC_SUBST(WITH_XPATH)
1288AC_SUBST(XPATH_OBJ)
Daniel Veillard4432df22003-09-28 18:58:27 +00001289AC_SUBST(TEST_XPATH)
Daniel Veillard361d8452000-04-03 19:48:13 +00001290
William M. Brack21e4ef22005-01-02 09:53:13 +00001291dnl
1292dnl output functions
1293dnl
1294if test "$with_output" = "no" ; then
1295 echo Disabling serialization/saving support
1296 WITH_OUTPUT=0
Daniel Veillardc8df0aa2000-10-10 23:50:30 +00001297else
William M. Brack21e4ef22005-01-02 09:53:13 +00001298 WITH_OUTPUT=1
Daniel Veillardc8df0aa2000-10-10 23:50:30 +00001299fi
William M. Brack21e4ef22005-01-02 09:53:13 +00001300AC_SUBST(WITH_OUTPUT)
Daniel Veillard9e8bfae2000-11-06 16:43:11 +00001301
Daniel Veillard6e90d192001-07-03 16:37:49 +00001302WITH_ICONV=0
Daniel Veillard496a1cf2000-05-03 14:20:55 +00001303if test "$with_iconv" = "no" ; then
1304 echo Disabling ICONV support
Daniel Veillardd574f782001-03-14 19:40:17 +00001305else
Daniel Veillard220346d2001-12-07 11:33:54 +00001306 if test "$with_iconv" != "yes" -a "$with_iconv" != "" ; then
Daniel Veillard6e90d192001-07-03 16:37:49 +00001307 CPPFLAGS="${CPPFLAGS} -I$with_iconv/include"
Daniel Veillardf5b44e42001-09-17 17:19:54 +00001308 # Export this since our headers include iconv.h
1309 XML_INCLUDEDIR="${XML_INCLUDEDIR} -I$with_iconv/include"
Daniel Veillard6e90d192001-07-03 16:37:49 +00001310 ICONV_LIBS="-L$with_iconv/lib"
Daniel Veillard496a1cf2000-05-03 14:20:55 +00001311 fi
Daniel Veillard6e90d192001-07-03 16:37:49 +00001312
1313 AC_CHECK_HEADER(iconv.h,
1314 AC_MSG_CHECKING(for iconv)
Daniel Richard Gec4fc522012-08-17 10:04:30 +08001315 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdlib.h>
1316#include <iconv.h>]],[[
Daniel Veillard6e90d192001-07-03 16:37:49 +00001317iconv_t cd = iconv_open ("","");
Daniel Richard Gec4fc522012-08-17 10:04:30 +08001318iconv (cd, NULL, NULL, NULL, NULL);]])],[
Daniel Veillard6e90d192001-07-03 16:37:49 +00001319 AC_MSG_RESULT(yes)
1320 WITH_ICONV=1],[
1321 AC_MSG_RESULT(no)
1322 AC_MSG_CHECKING(for iconv in -liconv)
1323
1324 _ldflags="${LDFLAGS}"
1325 _libs="${LIBS}"
1326 LDFLAGS="${LDFLAGS} ${ICONV_LIBS}"
1327 LIBS="${LIBS} -liconv"
1328
Daniel Richard Gec4fc522012-08-17 10:04:30 +08001329 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdlib.h>
1330#include <iconv.h>]],[[
Daniel Veillard6e90d192001-07-03 16:37:49 +00001331iconv_t cd = iconv_open ("","");
Daniel Richard Gec4fc522012-08-17 10:04:30 +08001332iconv (cd, NULL, NULL, NULL, NULL);]])],[
Daniel Veillard6e90d192001-07-03 16:37:49 +00001333 AC_MSG_RESULT(yes)
1334 WITH_ICONV=1
1335 ICONV_LIBS="${ICONV_LIBS} -liconv"
1336 LIBS="${_libs}"
1337 LDFLAGS="${_ldflags}"],[
1338 AC_MSG_RESULT(no)
1339 LIBS="${_libs}"
1340 LDFLAGS="${_ldflags}"])]))
Daniel Veillard8e1a46d2008-02-15 07:47:26 +00001341
1342 if test "$WITH_ICONV" = "1" ; then
1343 AC_MSG_CHECKING([for iconv declaration])
1344 AC_CACHE_VAL(xml_cv_iconv_arg2, [
Daniel Richard Gec4fc522012-08-17 10:04:30 +08001345 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdlib.h>
Daniel Veillard8e1a46d2008-02-15 07:47:26 +00001346#include <iconv.h>
1347extern
1348#ifdef __cplusplus
1349"C"
1350#endif
1351#if defined(__STDC__) || defined(__cplusplus)
1352size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
1353#else
1354size_t iconv();
1355#endif
Daniel Richard Gec4fc522012-08-17 10:04:30 +08001356]], [])], xml_cv_iconv_arg2="", xml_cv_iconv_arg2="const")])
Daniel Veillard8e1a46d2008-02-15 07:47:26 +00001357
1358 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);"
1359 AC_MSG_RESULT([${xml_xxx:-
1360 }$xml_cv_iconv_decl])
1361 AC_DEFINE_UNQUOTED(ICONV_CONST, $xml_cv_iconv_arg2,
1362 [Define as const if the declaration of iconv() needs const.])
1363 fi
Daniel Veillard6e90d192001-07-03 16:37:49 +00001364fi
Daniel Veillard6984e6d2003-12-09 14:20:17 +00001365case "$host" in
1366 *mingw*) M_LIBS=""
1367 ;;
Daniel Veillard7a3447a2005-01-04 14:31:14 +00001368 *beos*) M_LIBS=""
1369 ;;
Scott McCreary508a8d62009-08-24 16:35:35 +02001370 *haiku*) M_LIBS=""
1371 ;;
Daniel Veillard6984e6d2003-12-09 14:20:17 +00001372 *) M_LIBS="-lm"
1373 ;;
1374esac
Daniel Veillardb82c1662001-12-09 14:00:54 +00001375XML_LIBS="-lxml2 $Z_LIBS $THREAD_LIBS $ICONV_LIBS $M_LIBS $LIBS"
Daniel Veillard90d165b2003-09-01 20:33:13 +00001376XML_LIBTOOLLIBS="libxml2.la"
Daniel Veillard496a1cf2000-05-03 14:20:55 +00001377AC_SUBST(WITH_ICONV)
1378
Giuseppe Iuculano48f7dcb2010-11-04 17:42:42 +01001379WITH_ICU=0
1380if test "$with_icu" != "yes" ; then
1381 echo Disabling ICU support
1382else
1383 ICU_CONFIG=icu-config
1384 if ${ICU_CONFIG} --cflags >/dev/null 2>&1
1385 then
1386 ICU_LIBS=`icu-config --ldflags`
1387 LDFLAGS="$LDFLAGS $ICU_LIBS"
1388 WITH_ICU=1
1389 echo Enabling ICU support
1390 else
1391 AC_MSG_ERROR([libicu config program icu-config not found])
1392 fi
1393fi
1394AC_SUBST(WITH_ICU)
1395
Daniel Veillard01fc1a92003-07-30 15:12:01 +00001396WITH_ISO8859X=1
Daniel Veillard01fc1a92003-07-30 15:12:01 +00001397if test "$WITH_ICONV" != "1" ; then
1398if test "$with_iso8859x" = "no" ; then
1399 echo Disabling ISO8859X support
1400 WITH_ISO8859X=0
1401fi
1402fi
1403AC_SUBST(WITH_ISO8859X)
1404
Daniel Veillarded6c5492005-07-23 15:00:22 +00001405if test "$with_schematron" = "no" ; then
1406 echo "Disabling Schematron support"
1407 WITH_SCHEMATRON=0
1408 TEST_SCHEMATRON=
1409else
1410 echo "Enabled Schematron support"
1411 WITH_SCHEMATRON=1
1412 TEST_SCHEMATRON="Schematrontests"
1413 with_xpath=yes
1414 with_pattern=yes
1415fi
1416AC_SUBST(WITH_SCHEMATRON)
1417AC_SUBST(TEST_SCHEMATRON)
1418
Daniel Veillardef4d3bc2003-02-07 12:38:22 +00001419if test "$with_schemas" = "no" ; then
William M. Brack21e4ef22005-01-02 09:53:13 +00001420 echo "Disabling Schemas/Relax-NG support"
Daniel Veillardef4d3bc2003-02-07 12:38:22 +00001421 WITH_SCHEMAS=0
1422 TEST_SCHEMAS=
1423else
Daniel Veillard71531f32003-02-05 13:19:53 +00001424 echo "Enabled Schemas/Relax-NG support"
Daniel Veillard4255d502002-04-16 15:50:10 +00001425 WITH_SCHEMAS=1
Daniel Veillard6eadf632003-01-23 18:29:16 +00001426 TEST_SCHEMAS="Schemastests Relaxtests"
Daniel Veillard6dc91962004-03-22 19:10:02 +00001427 if test "$PYTHON_INCLUDES" != "" ; then
1428 PYTHON_TESTS="$PYTHON_TESTS RelaxNGPythonTests SchemasPythonTests"
1429 fi
Daniel Veillard23e73572002-09-19 19:56:43 +00001430 with_regexps=yes
Daniel Veillard4255d502002-04-16 15:50:10 +00001431fi
1432AC_SUBST(WITH_SCHEMAS)
1433AC_SUBST(TEST_SCHEMAS)
1434
Daniel Veillard23e73572002-09-19 19:56:43 +00001435if test "$with_regexps" = "no" ; then
1436 echo Disabling Regexps support
1437 WITH_REGEXPS=0
1438 TEST_REGEXPS=
1439else
1440 WITH_REGEXPS=1
1441 TEST_REGEXPS="Regexptests Automatatests"
1442fi
1443AC_SUBST(WITH_REGEXPS)
1444AC_SUBST(TEST_REGEXPS)
1445
Daniel Veillard361d8452000-04-03 19:48:13 +00001446if test "$with_debug" = "no" ; then
1447 echo Disabling DEBUG support
1448 WITH_DEBUG=0
1449 DEBUG_OBJ=
Daniel Veillard4432df22003-09-28 18:58:27 +00001450 TEST_DEBUG=
Daniel Veillard361d8452000-04-03 19:48:13 +00001451else
1452 WITH_DEBUG=1
1453 DEBUG_OBJ=debugXML.o
Daniel Veillard4432df22003-09-28 18:58:27 +00001454 TEST_DEBUG=Scripttests
Daniel Veillard361d8452000-04-03 19:48:13 +00001455fi
1456AC_SUBST(WITH_DEBUG)
1457AC_SUBST(DEBUG_OBJ)
Daniel Veillard4432df22003-09-28 18:58:27 +00001458AC_SUBST(TEST_DEBUG)
Daniel Veillard361d8452000-04-03 19:48:13 +00001459
Daniel Veillard361d8452000-04-03 19:48:13 +00001460if test "$with_mem_debug" = "yes" ; then
William M. Brack306e33c2004-06-12 01:01:22 +00001461 if test "$with_thread_alloc" = "yes" ; then
1462 echo Disabling memory debug - cannot use mem-debug with thread-alloc!
1463 WITH_MEM_DEBUG=0
1464 else
1465 echo Enabling memory debug support
1466 WITH_MEM_DEBUG=1
1467 fi
Daniel Veillard361d8452000-04-03 19:48:13 +00001468else
1469 WITH_MEM_DEBUG=0
1470fi
1471AC_SUBST(WITH_MEM_DEBUG)
1472
Daniel Veillard22cdb842004-10-04 14:09:17 +00001473if test "$with_run_debug" = "yes" ; then
1474 echo Enabling runtime debug support
1475 WITH_RUN_DEBUG=1
1476else
1477 WITH_RUN_DEBUG=0
1478fi
1479AC_SUBST(WITH_RUN_DEBUG)
Daniel Veillard1638a472003-08-14 01:23:25 +00001480
1481WIN32_EXTRA_LIBADD=
1482WIN32_EXTRA_LDFLAGS=
William M. Bracka73f45b2005-01-11 02:21:33 +00001483CYGWIN_EXTRA_LDFLAGS=
1484CYGWIN_EXTRA_PYTHON_LIBADD=
LRNfbd4ddf2010-11-04 15:45:46 +01001485WIN32_EXTRA_PYTHON_LIBADD=
Daniel Veillard1638a472003-08-14 01:23:25 +00001486case "$host" in
1487 *-*-mingw*)
Daniel Veillard6984e6d2003-12-09 14:20:17 +00001488 CPPFLAGS="$CPPFLAGS -DWIN32"
1489 WIN32_EXTRA_LIBADD="-lws2_32"
Daniel Veillard1638a472003-08-14 01:23:25 +00001490 WIN32_EXTRA_LDFLAGS="-no-undefined"
1491 AC_DEFINE([_WINSOCKAPI_],1,[Using the Win32 Socket implementation])
LRNfbd4ddf2010-11-04 15:45:46 +01001492 if test "${PYTHON}" != ""
1493 then
John Heina4fe9b22012-05-10 22:12:46 +08001494 WIN32_EXTRA_PYTHON_LIBADD="-L${pythondir}/../../libs -lpython$(echo ${PYTHON_VERSION} | tr -d .)"
LRNfbd4ddf2010-11-04 15:45:46 +01001495 fi
Daniel Veillard1638a472003-08-14 01:23:25 +00001496 ;;
Daniel Veillardd392ba72004-08-04 14:56:45 +00001497 *-*-cygwin*)
1498 CYGWIN_EXTRA_LDFLAGS="-no-undefined"
William M. Bracka73f45b2005-01-11 02:21:33 +00001499 if test "${PYTHON}" != ""
1500 then
1501 CYGWIN_EXTRA_PYTHON_LIBADD="-L/usr/lib/python${PYTHON_VERSION}/config -lpython${PYTHON_VERSION}"
1502 fi
Daniel Veillardd392ba72004-08-04 14:56:45 +00001503 ;;
Daniel Veillard1638a472003-08-14 01:23:25 +00001504esac
1505AC_SUBST(WIN32_EXTRA_LIBADD)
1506AC_SUBST(WIN32_EXTRA_LDFLAGS)
LRNfbd4ddf2010-11-04 15:45:46 +01001507AC_SUBST(WIN32_EXTRA_PYTHON_LIBADD)
Daniel Veillardd392ba72004-08-04 14:56:45 +00001508AC_SUBST(CYGWIN_EXTRA_LDFLAGS)
1509AC_SUBST(CYGWIN_EXTRA_PYTHON_LIBADD)
Daniel Veillard1638a472003-08-14 01:23:25 +00001510
Andoni Moralesfda57172012-05-08 10:46:09 +08001511dnl Checking the standard string functions availability
Roumen Petrov978ff222012-05-20 16:07:54 +03001512dnl
1513dnl Note mingw* has C99 implementation that produce expected xml numbers
1514dnl if code use {v}snprintf functions.
1515dnl If you like to activate at run-time C99 compatible number output
1516dnl see release note for mingw runtime 3.15:
1517dnl http://sourceforge.net/project/shownotes.php?release_id=24832
1518dnl
1519dnl Also *win32*config.h files redefine them for various MSC compilers.
1520dnl
1521dnl So do not redefine {v}snprintf to _{v}snprintf like follwing:
1522dnl AC_DEFINE([snprintf],[_snprintf],[Win32 Std C name mangling work-around])
1523dnl AC_DEFINE([vsnprintf],[_vsnprintf],[Win32 Std C name mangling work-around])
1524dnl and do not redefine those functions is C-source files.
1525dnl
1526AC_CHECK_FUNCS(printf sprintf fprintf snprintf vfprintf vsprintf vsnprintf sscanf,,
1527 NEED_TRIO=1)
Andoni Moralesfda57172012-05-08 10:46:09 +08001528
Daniel Veillardbfa5cf12008-08-27 15:33:28 +00001529if test "$with_coverage" = "yes" -a "${GCC}" = "yes"
1530then
1531 echo Enabling code coverage for GCC
1532 CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage"
1533 LDFLAGS="$LDFLAGS -fprofile-arcs -ftest-coverage"
1534else
1535 echo Disabling code coverage for GCC
1536fi
1537
Daniel Veillard6984e6d2003-12-09 14:20:17 +00001538AC_SUBST(CPPFLAGS)
Daniel Veillardd7e200c1999-11-15 17:53:11 +00001539AC_SUBST(CFLAGS)
Daniel Veillardbfa5cf12008-08-27 15:33:28 +00001540AC_SUBST(LDFLAGS)
Daniel Veillardf5c2c871999-12-01 09:51:45 +00001541AC_SUBST(XML_CFLAGS)
Daniel Veillardd7e200c1999-11-15 17:53:11 +00001542
Daniel Veillardb05deb71999-08-10 19:04:08 +00001543AC_SUBST(XML_LIBDIR)
1544AC_SUBST(XML_LIBS)
Daniel Veillard90d165b2003-09-01 20:33:13 +00001545AC_SUBST(XML_LIBTOOLLIBS)
Daniel Veillard81418e32001-05-22 15:08:55 +00001546AC_SUBST(ICONV_LIBS)
Daniel Veillardb05deb71999-08-10 19:04:08 +00001547AC_SUBST(XML_INCLUDEDIR)
1548AC_SUBST(HTML_DIR)
1549AC_SUBST(HAVE_ISNAN)
1550AC_SUBST(HAVE_ISINF)
Daniel Veillardf1d0e6b2002-01-31 23:42:44 +00001551AC_SUBST(PYTHON)
1552AC_SUBST(PYTHON_VERSION)
1553AC_SUBST(PYTHON_INCLUDES)
Daniel Veillard253aa2c2002-02-02 09:17:16 +00001554AC_SUBST(PYTHON_SITE_PACKAGES)
Daniel Veillardb05deb71999-08-10 19:04:08 +00001555
Daniel Veillardb05deb71999-08-10 19:04:08 +00001556AC_SUBST(M_LIBS)
Daniel Veillard437b87b2000-01-03 17:30:46 +00001557AC_SUBST(RDL_LIBS)
Daniel Veillard361d8452000-04-03 19:48:13 +00001558
Daniel Veillard9715c172002-11-25 16:33:40 +00001559dnl for the spec file
1560RELDATE=`date +'%a %b %e %Y'`
1561AC_SUBST(RELDATE)
Daniel Veillard6dc91962004-03-22 19:10:02 +00001562AC_SUBST(PYTHON_TESTS)
Daniel Veillard9715c172002-11-25 16:33:40 +00001563
Daniel Veillardc6e997c2003-01-27 12:35:42 +00001564rm -f COPYING.LIB COPYING
Daniel Richard G5706b6d2012-08-06 11:32:54 +08001565ln -s $srcdir/Copyright COPYING
Daniel Veillardc575b992002-02-08 13:28:40 +00001566
Daniel Veillarde4177a52004-01-08 16:43:57 +00001567# keep on one line for cygwin c.f. #130896
Daniel Richard Gec4fc522012-08-17 10:04:30 +08001568AC_CONFIG_FILES([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])
1569AC_OUTPUT
Arturo Espinosa15fe6e71998-09-07 17:27:57 +00001570
Daniel Veillard06d25242004-02-25 13:01:42 +00001571chmod +x xml2-config python/setup.py
Daniel Veillard67952602006-01-05 15:29:44 +00001572echo Done configuring