1 dnl Process this file with autoconf to produce a configure script.
3 dnl See xapian-core's HACKING document for details of the reasons for required
7 AC_INIT([xapian-bindings], [1.2.23], [https://xapian.org/bugs])
9 dnl See xapian-core's HACKING document for details of the reasons for required
11 AM_INIT_AUTOMAKE([1.11.2 -Wportability tar-ustar no-dist-gzip dist-xz])
12 AC_CONFIG_SRCDIR([xapian.i])
14 AC_CONFIG_HEADERS([config.h])
16 AC_CONFIG_MACRO_DIR([m4])
18 dnl Mac OS X needs MACOSX_DEPLOYMENT_TARGET set to 10.3 (or higher) to
19 dnl successfully link the SWIG generated modules. The link always fails
20 dnl on earlier versions of Mac OS X (10.1.4 and 10.2.8 tested), so always
21 dnl setting MACOSX_DEPLOYMENT_TARGET to at least 10.3 seems to be the
22 dnl appropriate thing to do. Most Mac OS X developers will have upgraded
23 dnl from 10.1 and 10.2 by now anyhow.
25 dnl NB we must do this *BEFORE* LT_INIT since that is what checks
26 dnl MACOSX_DEPLOYMENT_TARGET.
28 OVERRIDE_MACOSX_DEPLOYMENT_TARGET=
30 *86*-darwin8*|*-darwin[[91]]*)
31 dnl On 10.5 or later, and 10.4 on x86, the deployment target defaults to the
32 dnl OS version, so we don't need to override on these.
35 case $MACOSX_DEPLOYMENT_TARGET in
37 OVERRIDE_MACOSX_DEPLOYMENT_TARGET=10.3 ;;
39 AC_MSG_WARN([Overriding MACOSX_DEPLOYMENT_TARGET from $MACOSX_DEPLOYMENT_TARGET to 10.3])
40 OVERRIDE_MACOSX_DEPLOYMENT_TARGET=10.3 ;;
44 AM_CONDITIONAL(OVERRIDE_MACOSX_DEPLOYMENT_TARGET, test -n "$OVERRIDE_MACOSX_DEPLOYMENT_TARGET")
45 AC_SUBST(OVERRIDE_MACOSX_DEPLOYMENT_TARGET)
46 if test -n "$OVERRIDE_MACOSX_DEPLOYMENT_TARGET" ; then
47 MACOSX_DEPLOYMENT_TARGET=$OVERRIDE_MACOSX_DEPLOYMENT_TARGET
50 dnl Use libtool to manage our libraries, but don't build static libraries as
51 dnl the bindings only have a use for dynamic ones.
53 LT_INIT([disable-static])
55 dnl -no-undefined causes problems on Mac OS X with at least some
56 dnl MACOSX_DEPLOYMENT_TARGET settings, so only pass -no-undefined on
57 dnl platforms where it is required in order to link a shared library at
58 dnl all (Windows is the main one).
60 if test unsupported = "$allow_undefined_flag" ; then
61 NO_UNDEFINED=-no-undefined
63 AC_SUBST(NO_UNDEFINED)
65 dnl Checks for programs.
68 # Checked: freebsd8.0 openbsd4.6 solaris2.9 solaris2.10
70 linux* | k*bsd*-gnu | freebsd* | openbsd* | solaris*)
71 dnl Vanilla libtool sets this to "unknown" which it then handles as "yes".
72 link_all_deplibs_CXX=no
78 dnl Extract search path from ldconfig which is more reliable than the way
79 dnl vanilla libtool extracts them from ld.so.conf.
80 d=`/sbin/ldconfig -N -X -v 2>&AS_MESSAGE_LOG_FD|$SED 's,^\(/.*\):\( (.*)\)\?$,\1,p;d'|tr '\n' ' '`
81 test -z "$d" || sys_lib_dlsearch_path_spec=$d
85 dnl Run tests using the C++ compiler.
88 dnl Check for xapian-core.
89 XO_LIB_XAPIAN([], [], [xapian-config])
97 dnl If we're building against an uninstalled xapian-core, xapian-config
98 dnl --libs will give an error.
99 if $XAPIAN_CONFIG --libs >/dev/null 2>/dev/null ; then
103 dnl $XAPIAN_LIBS may have some options first, so grab the last argument,
104 dnl which should be the .la file.
109 dnl Make sure the path is absolute.
110 case $INTREE_DYLD_PATH in
112 *) INTREE_DYLD_PATH=`pwd`/$INTREE_DYLD_PATH ;;
114 dnl Add .libs or equivalent.
115 INTREE_DYLD_PATH=`echo "$INTREE_DYLD_PATH"|sed 's,\(.*/\).*,\1,'`$lt_cv_objdir
116 AC_SUBST([INTREE_DYLD_PATH])
120 AM_CONDITIONAL(NEED_JNILIB_EXT, test yes = "$NEED_JNILIB_EXT")
121 AM_CONDITIONAL(NEED_INTREE_DYLD, test yes = "$NEED_INTREE_DYLD")
123 dnl We want XAPIAN_CXXFLAGS to be used for configure tests, so add it to
124 dnl CXXFLAGS for the duration of configure.
125 save_CXXFLAGS=$CXXFLAGS
126 CXXFLAGS="$CXXFLAGS $XAPIAN_CXXFLAGS"
128 dnl COMPAT_VERSION is the version of xapian-core that "matches" our version.
129 dnl We allow for bindings being version 0.8.5.1 while xapian-core is 0.8.5.
130 dnl COMPAT_VERSION also ignores any _git123 suffix which snapshots will have.
131 COMPAT_VERSION=[`echo "$PACKAGE_VERSION"|sed 's/^\([0-9]*\.[0-9]*\.[0-9]*\).*/\1/'`]
132 AC_SUBST(COMPAT_VERSION)
134 dnl VERSION_NO_SNAPSHOT simply has any _git123 suffix removed.
135 VERSION_NO_SNAPSHOT=[`echo "$PACKAGE_VERSION"|sed 's/_.*$//'`]
136 AC_SUBST(VERSION_NO_SNAPSHOT)
138 dnl We only need to set docdir for compatibility with autoconf < 2.60 - this
139 dnl code can be removed once we move to requiring autoconf 2.60 or newer.
140 test -n "$docdir" || docdir='${datadir}/doc/${PACKAGE_TARNAME}'
144 [AS_HELP_STRING([--enable-quiet], [enable quiet building [default=no]])],
145 [case ${enableval} in
147 *) AC_MSG_ERROR([bad value ${enableval} for --enable-quiet]) ;;
150 dnl Pass `--quiet' to libtool if quiet building is requested. Using an
151 dnl AC_SUBST-ed value like this allows the choice to be easily overridden
152 dnl if you want to see exactly what make and libtool are up to - just run
153 dnl make like this: `make QUIET='
155 if test yes = "$enable_quiet"; then
160 dnl Only probe for SWIG and enable SWIG rules in makefiles if
161 dnl configure --enable-maintainer-mode is used.
164 AC_ARG_ENABLE(documentation,
165 [AS_HELP_STRING([--enable-documentation], [enable make rules to rebuild documentation [default=maintainer-mode]])],
166 [case ${enableval} in
168 *) AC_MSG_ERROR([bad value ${enableval} for --enable-documentation]) ;;
170 test -z "$enable_documentation" && enable_documentation=$USE_MAINTAINER_MODE
171 AM_CONDITIONAL(DOCUMENTATION_RULES, test x"$enable_documentation" = xyes)
172 AM_CONDITIONAL(MAINTAINER_NO_DOCS, test x"$USE_MAINTAINER_MODE$enable_documentation" = xyesno)
174 if test x$USE_MAINTAINER_MODE = xyes; then
175 dnl Check for swig - this does most of the work for the bindings.
176 dnl AC_PATH_PROGS only honours an already set SWIG if it's a full
177 dnl path. Listing it in the "to be searched" list like this allows
178 dnl ./configure SWIG=myswig to work.
179 swigoverridden=${SWIG+yes}
180 AC_PATH_PROGS(SWIG, ["${SWIG-swig}"], [])
181 AC_ARG_VAR(SWIG, [SWIG interface generator (only needed by Xapian developers)])
182 if test -z "$SWIG" ; then
183 AC_MSG_ERROR([Can't find SWIG utility])
185 dnl Check for new enough SWIG.
187 dnl 2.0.5 avoids E_NOTICE from generating 'return $r;' when $r isn't set.
188 v=`$SWIG -version 2>&1|sed 's/^SWIG Version \([[0-9\.]]*\).*/\1/p;d'`
190 [[01].*|2.0.[0-4]|""])
191 msg="SWIG >= 2.0.5 (commit 210266c) required (you have ${v:-an unknown version})"
192 if test -n "$swigoverridden" ; then
193 dnl If SWIG was explicitly set, make this a warning only.
199 SWIG_FLAGS="`$XAPIAN_CONFIG --swigflags` -Werror"
202 dnl Need perl in maintainer mode to generate the except.i file for python.
203 AC_PATH_PROGS(PERL, ["${PERL-perl}"], [])
204 test -z "$PERL" && AC_MSG_ERROR([perl is required in maintainer mode])
205 dnl Need python in maintainer mode to run doxy2swig.py.
206 AC_PATH_PROGS(PYTHON, ["${PYTHON-python2 python}"], [])
207 test -z "$PYTHON" && AC_MSG_ERROR([python is required in maintainer mode])
211 AC_HELP_STRING([--with-python], [enable Python bindings]),
216 AC_HELP_STRING([--with-php], [enable PHP bindings]),
221 AC_HELP_STRING([--with-ruby], [enable Ruby bindings]),
226 AC_HELP_STRING([--with-tcl], [enable Tcl bindings]),
231 AC_HELP_STRING([--with-csharp], [enable CSharp bindings]),
236 AC_HELP_STRING([--with-java], [enable Java bindings]),
241 AC_HELP_STRING([--with-perl], [enable Perl bindings]),
246 AC_HELP_STRING([--with-lua], [enable Lua bindings]),
250 case $with_python$with_php$with_ruby$with_tcl$with_csharp$with_java$with_perl$with_lua in
252 dnl Default unspecified values to no.
253 test -z "$with_python" && with_python=no
254 test -z "$with_php" && with_php=no
255 test -z "$with_tcl" && with_tcl=no
256 test -z "$with_csharp" && with_csharp=no
257 test -z "$with_java" && with_java=no
258 test -z "$with_ruby" && with_ruby=no
259 test -z "$with_perl" && with_perl=no
260 test -z "$with_lua" && with_lua=no
266 if test no != "$with_python" ; then
267 dnl See comment for AC_PATH_PROGS(SWIG, ...).
268 AC_PATH_PROGS(PYTHON, ["${PYTHON-python2 python}"], [])
269 AC_ARG_VAR(PYTHON, [Python interpreter])
270 if test -n "$PYTHON" ; then
271 dnl Require Python 2.3 or newer. It's now > 4.5 years since the last
272 dnl 2.2.x release, so 2.2 is essentially unsupported upstream.
273 AC_MSG_CHECKING([$PYTHON version])
274 version=`$PYTHON -c 'import sys;print("%d.%d" % sys.version_info[[:2]])' 2>/dev/null`
276 [2.[3-9]*|2.[12][0-9][0-9]*])
277 AC_MSG_RESULT([$version])
280 AC_MSG_RESULT([$version (too new - only Python 2 is supported by Xapian 1.2.x)])
281 if test yes = "$with_python" ; then
282 AC_MSG_ERROR([Only Python 2 is supported by Xapian 1.2.x ($python is $version)])
287 AC_MSG_RESULT([$version (too old)])
288 if test yes = "$with_python" ; then
289 AC_MSG_ERROR([Only python 2.3 or newer is supported ($python is $version)])
294 if test -n "$PYTHON" ; then
295 if $PYTHON -c 'import distutils.sysconfig' 2>/dev/null ; then
296 PYTHON_INC=`$PYTHON -c 'import os,distutils.sysconfig;print(distutils.sysconfig.get_python_inc().replace(os.sep,"/"))'`
299 if test yes = "$with_python" ; then
300 AC_MSG_ERROR([Couldn't import Python module distutils.sysconfig - you probably need to install a python-dev or python-devel package])
302 AC_MSG_WARN([Couldn't import Python module distutils.sysconfig - you probably don't have a python-dev or python-devel package installed])
307 if test -n "$PYTHON" ; then
308 dnl Check that Python.h is there, which is a good way to check that
309 dnl the appropriate python-dev package has been installed.
310 AC_MSG_CHECKING([for $PYTHON_INC/Python.h])
311 if test -f "$PYTHON_INC/Python.h" ; then
313 AC_MSG_CHECKING([for directory to install python bindings in])
314 if test -z "$PYTHON_LIB" ; then
315 PYTHON_LIB=`$PYTHON -c 'import os,distutils.sysconfig;print(distutils.sysconfig.get_python_lib(1).replace(os.sep,"/"))'`
317 AC_MSG_RESULT([$PYTHON_LIB])
318 AC_ARG_VAR(PYTHON_LIB, [Directory to install python bindings in])
320 AC_MSG_CHECKING([for python libraries to link against])
323 PYTHON_LIBS=`$PYTHON -c 'import os,sys;print("-L"+os.path.join(sys.prefix,"libs").replace(os.sep,"/")+" -lpython"+sys.version[[:3]].replace(".",""))'` ;;
325 PYTHON_LIBS=`$PYTHON -c 'import os,sys;print("-L"+os.path.join(sys.path[[3]],"config")+" -lpython"+sys.version[[:3]])'` ;;
329 AC_SUBST(PYTHON_LIBS)
330 AC_MSG_RESULT([$PYTHON_LIBS])
332 AC_MSG_CHECKING([for python module extension])
333 dnl Usually ".so", but for example, Mac OS X uses ".dylib".
334 PYTHON_SO=`$PYTHON -c 'import distutils.sysconfig;print(distutils.sysconfig.get_config_vars("SO")[[0]])'`
336 AC_MSG_RESULT([$PYTHON_SO])
338 BINDINGS="$BINDINGS python"
340 AC_MSG_RESULT([no (install python-dev or python-devel package or similar)])
341 if test yes = "$with_python" ; then
342 AC_MSG_ERROR([Python.h not found])
349 if test no != "$with_php" ; then
350 dnl See comment for AC_PATH_PROGS(SWIG, ...).
351 AC_PATH_PROGS(PHP_CONFIG, ["${PHP_CONFIG-php-config}"], [])
352 AC_ARG_VAR(PHP_CONFIG, [php-config utility])
353 AC_ARG_VAR(PHP, [php interpreter (optional - only needed to run PHP testsuite with)])
354 if test -n "$PHP_CONFIG" ; then
355 AC_MSG_CHECKING([$PHP_CONFIG version])
356 version=`$PHP_CONFIG --version 2>/dev/null`
359 AC_MSG_RESULT([$version])
363 AC_MSG_RESULT([$version (not supported, SWIG doesn't support PHP7 yet)])
364 if test yes = "$with_php" ; then
365 AC_MSG_ERROR([SWIG doesn't yet support PHP7 ($PHP_CONFIG reports version $version)])
370 AC_MSG_RESULT([$version (not supported)])
371 if test yes = "$with_php" ; then
372 AC_MSG_ERROR([Only PHP5 is supported ($PHP_CONFIG reports version $version)])
377 AC_SUBST(PHP_MAJOR_VERSION)
379 if test no != "$with_php" ; then
380 AC_MSG_CHECKING([for PHP extension directory])
381 if test -z "$PHP_EXTENSION_DIR" ; then
382 PHP_EXTENSION_DIR=`$PHP_CONFIG --extension-dir`
384 AC_MSG_RESULT([$PHP_EXTENSION_DIR])
385 AC_ARG_VAR(PHP_EXTENSION_DIR, [Directory to install PHP extensions in])
388 if test no != "$with_php" ; then
389 PHP_INC=`$PHP_CONFIG --includes`
391 save_CPPFLAGS=$CPPFLAGS
392 CPPFLAGS="$CPPFLAGS $PHP_INC"
393 dnl One of SGI's SuSE boxes has php-config but no headers.
394 AC_CHECK_HEADER(zend.h, [], [
395 if test yes = "$with_php" ; then
396 AC_MSG_ERROR(['$PHP_CONFIG --includes' reports '$PHP_INC' but zend.h can't be included from there])
399 CPPFLAGS=$save_CPPFLAGS
402 if test no != "$with_php" ; then
406 dnl PHP5's php-config has --php-binary which gives the path to the
407 dnl PHP interpreter. Otherwise, try "$prefix/bin/php$N" then
408 dnl "$prefix/bin/php".
409 php_prefix=`$PHP_CONFIG --prefix 2>/dev/null`
410 php_bin=$php_prefix/bin/php
413 if $PHP_CONFIG --php_binary > /dev/null 2>&1 ; then
414 php_binary=`$PHP_CONFIG --php-binary 2>/dev/null`
417 *) php_binary_major=$php_binary$PHP_MAJOR_VERSION ;;
420 for php in $php_binary $php_binary_major $php_bin$PHP_MAJOR_VERSION $php_bin ; do
421 AC_MSG_CHECKING([for $php])
422 for ac_exec_ext in '' $ac_executable_extensions; do
423 if $as_executable_p "$php$ac_exec_ext"; then
424 dnl We get /usr/bin/php on Debian, which might be PHP7:
425 dnl https://bugs.debian.org/819139
426 if $php$ac_exec_ext -r 'exit(PHP_MAJOR_VERSION=='"$PHP_MAJOR_VERSION"'?0:1);' 2> /dev/null ; then
428 AC_MSG_RESULT([$PHP])
437 [[\\/]* | ?:[\\/]*]) ;;
439 dnl Handle PHP passed in without a path - e.g. PHP=php5
440 AC_PATH_PROGS(PHP, ["$PHP"], [])
441 test -n "$PHP" && PHP_found=yes
444 if test yes != "$PHP_found" ; then
445 dnl Try phpN then php. If the PHP interpreter can't be found, skip the
446 dnl PHP bindings tests.
447 AC_PATH_PROGS(PHP, [php$PHP_MAJOR_VERSION php], [])
449 if test -z "$PHP" ; then
450 AC_MSG_WARN([No PHP interpreter found - PHP bindings tests will be skipped])
451 dnl The skiptest script just returns exit code 77.
452 PHP='$(top_srcdir)/skiptest'
454 AC_MSG_CHECKING([for PHP path separator])
455 PHP_PATH_SEPARATOR=`$PHP -r 'echo PATH_SEPARATOR;'`
456 AC_SUBST([PHP_PATH_SEPARATOR])
457 AC_MSG_RESULT([$PHP_PATH_SEPARATOR])
462 dnl This is a bit of an informed guess, pending more information from
463 dnl someone who actually has mingw and wants to build the PHP bindings
465 PHP_LIBS="-L`$PHP_CONFIG --prefix` -lphp${PHP_MAJOR_VERSION}ts" ;;
467 PHP_LIBS="-lphp${PHP_MAJOR_VERSION}lib" ;;
472 BINDINGS="$BINDINGS php"
477 if test no != "$with_tcl" ; then
478 AC_PATH_PROGS(TCLSH, ["${TCLSH-tclsh}"], [])
479 AC_ARG_VAR(TCLSH, [Tcl interpreter])
480 if test -n "$TCLSH" ; then
481 dnl We need Tcl 8.1 or later for TCL_STUBS.
482 dnl Note: The bindings can easily be made to work with Tcl 8.0 (just
483 dnl don't pass -DUSE_TCL_STUBS when compiling) should you need that.
484 AC_MSG_CHECKING([$TCLSH version])
485 if echo 'if {$tcl_version < 8.1 } { exit 1 }'|$TCLSH 2> /dev/null ; then
486 tcl_version=`echo 'puts "$tcl_version"'|$TCLSH`
487 AC_MSG_RESULT([$tcl_version])
489 AC_ARG_VAR(TCL_LIB, [Directory to install Tcl files into])
490 if test -z "$TCL_LIB" ; then
491 [TCL_LIB=`echo 'foreach d $tcl_pkgPath {if {![regexp {/share(/|$)} $d]} {break}};puts $d'|$TCLSH`]
495 AC_ARG_VAR([TCL_INC], [Directory to include for Tcl headers])
496 if test -z "$TCL_INC" ; then
497 dnl ::tcl::pkgconfig was added in Tcl 8.5.
498 [TCL_INC=`echo 'puts [::tcl::pkgconfig get includedir,runtime]'|$TCLSH 2> /dev/null`]
499 if test -z "$TCL_INC" ; then
500 dnl Prior to Tcl 8.5, there's no good way to get
501 dnl "/usr/include/tcl8.N" directly - tclConfig.sh contains it, but
502 dnl there's no reliable way to locate that prior to Tcl 8.5!
504 dnl So first we find the prefix Tcl is installed under (e.g. "/usr")
505 dnl from the path on TCLSH (or default to /usr if the path doesn't
506 dnl contain "/bin/"), and then we append "/include/tcl" and
508 tcl_prefix=`echo "$TCLSH"|sed 's!/bin/.*!!p;d'`
509 test -n "$tcl_prefix" || tcl_prefix=/usr
510 TCL_INC=${tcl_prefix}/include/tcl${tcl_version}
511 test -f "$TCL_INC/tcl.h" || TCL_INC=/usr/include
515 dnl Check that the headers are there (the tcl8.N-dev package
516 dnl may not be installed).
518 AC_MSG_CHECKING([for tcl.h for version $tcl_version])
519 if test -f "$TCL_INC/tcl.h" ; then
520 tcl_hdr_version=`awk '($1 == "#define" && $2 == "TCL_VERSION") {print $3}' "$TCL_INC/tcl.h"|sed 's/"//g'`
521 if test x"$tcl_hdr_version" = x"$tcl_version" ; then
522 AC_MSG_RESULT([$TCL_INC/tcl.h])
523 BINDINGS="$BINDINGS tcl8"
524 if test x"$TCL_INC" != x"/usr/include" ; then
525 TCL_CPPFLAGS="-I$TCL_INC"
528 AC_MSG_RESULT([not found])
529 if test yes = "$with_tcl" ; then
530 AC_MSG_ERROR([Found tcl.h for version $tcl_hdr_version, not $tcl_version])
535 AC_MSG_RESULT([not found])
536 if test yes = "$with_tcl" ; then
537 AC_MSG_ERROR([Can't find tcl.h])
542 if test -n "$TCLSH" ; then
543 dnl Cygwin needs to link with -ltcl8.5 or similar.
547 AC_CHECK_LIB([tcl$tcl_version], [Tcl_Init],
548 [TCL_LIBS="-ltcl$tcl_version"],
549 [AC_MSG_ERROR([libtcl$tcl_version not found])])
552 dnl ::tcl::pkgconfig was added in Tcl 8.5, but prior to 8.6 it isn't
553 dnl necessary to link against -ltclstub anyway.
554 [TCLCONFIG_SH=`echo 'puts [file join [::tcl::pkgconfig get libdir,runtime] tclConfig.sh]'|$TCLSH 2> /dev/null`]
555 if test -n "$TCLCONFIG_SH" && test -r "$TCLCONFIG_SH" ; then
556 eval "`grep ^TCL_STUB_LIB_SPEC= $TCLCONFIG_SH`"
557 TCL_LIBS=$TCL_STUB_LIB_SPEC
559 TCL_CPPFLAGS="$TCL_CPPFLAGS -DUSE_TCL_STUBS" ;;
563 AC_SUBST(TCL_CPPFLAGS)
566 AC_MSG_RESULT([< 8.1 (too old)])
567 if test yes = "$with_tcl" ; then
568 AC_MSG_ERROR([$TCLSH too old (Tcl 8.1 or newer required)])
572 if test yes = "$with_tcl" ; then
573 AC_MSG_ERROR([tclsh not found])
578 if test no != "$with_csharp" ; then
580 AC_ARG_VAR(CSC, [CSharp compiler command])
581 if test -n "$CSC" ; then
582 AC_PATH_PROGS(CSC, ["$CSC"], [])
584 if test -z "$CSC" ; then
585 dnl First we try cli-csc and mono-csc, which are used by Debian and Ubuntu
586 dnl as "alternatives" which can be mapped to the CSharp compiler the admin
588 AC_PATH_PROGS(CSC, [cli-csc mono-csc], [])
589 if test -z "$CSC" ; then
590 dnl mcs is the Mono CSharp compiler, which is a unified compiler
591 dnl available from Mono 2.11 (and also the compiler in Mono 1.0, but
592 dnl that's no longer relevant).
593 AC_PATH_PROGS(CSC, [mcs], [])
594 if test -n "$CSC" ; then
595 dnl There are other tools called mcs (such as /usr/bin/mcs on Tru64),
596 dnl so we check that the mcs we found understands --version which is
597 dnl sufficient to distinguish mono's mcs from the Tru64 one.
598 AC_MSG_CHECKING([whether $CSC is from GNU Mono])
599 if (exec >&5 2>&5;$CSC --version </dev/null;exit $?) ; then
604 csc_note="$csc_note (found different mcs program)"
608 if test -z "$CSC" ; then
609 dnl gmcs, smcs, and dmcs are versions of the Mono CSharp compiler
610 dnl targeting various runtime versions, deprecated in favour of mcs
611 dnl (checked for above) as of Mono 2.11.
613 dnl cscc is the Portable.NET CSharp compiler.
614 AC_PATH_PROGS(CSC, [dmcs smcs gmcs cscc], [])
616 if test -z "$CSC" ; then
617 dnl csc is the Microsoft CSharp compiler.
618 AC_PATH_PROGS(CSC, [csc], [])
619 if test -n "$CSC" ; then
620 dnl Chicken (the Scheme-to-C compiler) includes a tool called csc so we
621 dnl check if the output from "csc -version" includes the word chicken
622 dnl which is sufficient to distinguish Chicken's csc from Microsoft's
624 AC_MSG_CHECKING([whether $CSC is for CSharp])
625 if $CSC -version 2>/dev/null|grep chicken > /dev/null ; then
628 csc_note="$csc_note (found Chicken csc program)"
636 if test -n "$CSC" ; then
637 AC_ARG_VAR(GACUTIL, [gacutil utility to use for CSharp bindings])
638 if test -n "$GACUTIL" ; then
639 AC_PATH_PROGS(GACUTIL, ["$GACUTIL"], [])
641 if test -z "$GACUTIL" ; then
642 AC_PATH_PROGS(GACUTIL, [cli-gacutil gacutil ilgac], [])
645 AC_ARG_VAR(SN, [sn utility to use for CSharp bindings])
646 if test -n "$SN" ; then
647 AC_PATH_PROGS(SN, ["$SN"], [])
649 if test -z "$SN" ; then
650 AC_PATH_PROGS(SN, [cli-sn sn], [])
652 if test -z "$SN" ; then
654 dnl Portable.net doesn't support strong naming yet and ilgac doesn't
655 dnl require assemblies to be strong named before adding them to the GAC.
656 *ilgac*) SN=/bin/true ;;
659 if test -n "$GACUTIL" -a -n "$SN" ; then
660 AC_MSG_CHECKING([whether the CSharp compiler works])
661 [echo 'class conftest { public static void Main() { System.Console.WriteLine("OK"); } }' > conftest.cs]
662 if (exec >&5 2>&5;$CSC /out:conftest.exe conftest.cs;exit $?) ; then
664 AC_MSG_CHECKING([whether CSharp programs can just be run])
665 if test OK = "`./conftest.exe 2> /dev/null`" ; then
670 AC_PATH_PROGS(MONO, ["${MONO-mono}"], [])
671 if test -z "$MONO" ; then
672 AC_PATH_PROGS(MONO, [ilrun], [])
674 AC_ARG_VAR(MONO, [CSharp bytecode interpreter (optional - only needed to run CSharp testsuite with)])
675 if test -n "$MONO" ; then
676 AC_MSG_CHECKING([whether $MONO can run CSharp programs])
677 if test OK = "`$MONO ./conftest.exe 2> /dev/null`" ; then
681 AC_MSG_RESULT([no - CSharp tests will be skipped])
682 RUN_CSHARP='\$(top_srcdir)/skiptest'
685 AC_MSG_RESULT([not found - CSharp tests will be skipped])
686 RUN_CSHARP='\$(top_srcdir)/skiptest'
691 AC_MSG_CHECKING([for extra flags for $GACUTIL])
692 GACUTIL_FLAGS='/package $(ASSEMBLY) /gacdir $(libdir) /root $(DESTDIR)$(libdir)'
696 dnl Microsoft's gacutil accepts fewer options than Mono's
697 $GACUTIL /\?|grep '\<Mono\>' >/dev/null || GACUTIL_FLAGS=
700 AC_SUBST([GACUTIL_FLAGS])
701 if test -z "$GACUTIL_FLAGS" ; then
704 AC_MSG_RESULT([$GACUTIL_FLAGS])
707 BINDINGS="$BINDINGS csharp"
710 if test yes = "$with_csharp" ; then
711 AC_MSG_ERROR([CSharp compiler $CSC doesn't work])
715 if test yes = "$with_csharp" ; then
716 if test -z "$GACUTIL" ; then
717 AC_MSG_ERROR([Mono gacutil not found])
718 elif test -z "$SN" ; then
719 AC_MSG_ERROR([Mono sn not found])
724 if test yes = "$with_csharp" ; then
725 AC_MSG_ERROR([CSharp compiler not found$csc_note])
731 if test no != "$with_java" ; then
732 AC_PATH_PROGS(JAVA, ["${JAVA-java}"], [],
733 [${JAVA_HOME+$JAVA_HOME/bin:}${JDK_HOME+$JDK_HOME/bin:}$PATH])
734 AC_PATH_PROGS(JAVAC, ["${JAVAC-javac}"], [],
735 [${JAVA_HOME+$JAVA_HOME/bin:}${JDK_HOME+$JDK_HOME/bin:}$PATH])
736 AC_PATH_PROGS(JAR, ["${JAR-jar}"], [],
737 [${JAVA_HOME+$JAVA_HOME/bin:}${JDK_HOME+$JDK_HOME/bin:}$PATH])
738 AC_ARG_VAR(JAVA, [Java interpreter command])
739 AC_ARG_VAR(JAVAC, [Java compiler command])
740 AC_ARG_VAR(JAR, [java jar utility])
741 AC_ARG_VAR(JAVA_HOME, [Pathname of the directory where the JDK is installed])
742 AC_ARG_VAR(JDK_HOME, [Pathname of the directory where the JDK is installed])
743 AC_ARG_VAR(JNI_INCLUDE_DIR, [Pathname of the directory where jni.h is installed])
744 if test -n "$JAVA" -a -n "$JAVAC" -a -n "$JAR" ; then
746 dnl The JNI library *requires* "Java 2", which is 1.2 or better.
748 dnl So checking for jni.h presumably implicitly checks we have "Java 2".
749 dnl Note: jni.h #defines JNI_VERSION_1_[1246] (but not 3 or 5 it seems).
750 dnl So we could check for one of these if we want to check for a particular
753 AC_CHECK_HEADER([jni.h], [java_ok=yes], [
754 dnl We need to look for jni.h in /usr/lib/jvm/java-gcj/include on some
755 dnl Debian and Ubuntu boxes at least. And on Mac OS X, jni.h lives
756 dnl in /System/Library/Frameworks/JavaVM.framework/Headers.
757 SAVE_CPPFLAGS=$CPPFLAGS
759 dnl Avoid endlessly traversing if there's a symlink loop.
760 for count in 1 2 3 4 5 6 7 8 9 ; do
761 r=`readlink "$real_javac"`
762 test -n "$r" || break
765 dnl Translate ".../bin/javac" to ".../include".
766 [rel_jnidir=`echo "$real_javac"|sed 's!/[^/]*/[^/]*$!/include!'`]
769 ${JAVA_HOME+"$JAVA_HOME/include"} \
770 ${JDK_HOME+"$JDK_HOME/include"} \
772 /System/Library/Frameworks/JavaVM.framework/Headers ; do
773 CPPFLAGS="$SAVE_CPPFLAGS -I$jnidir"
774 AC_MSG_CHECKING([for jni.h in $jnidir])
775 if test -f "$jnidir/jni.h" ; then
776 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include <jni.h>]])], [java_ok=yes])
777 if test yes = $java_ok ; then
779 JAVA_CPPFLAGS=-I$jnidir
783 dnl Sun's JDK requires the user to pass an extra -I for a
784 dnl subdirectory named after the host_os. Sadly we seem to
785 dnl need to hardcode a list of the platform names.
791 jni_host_os=solaris ;;
792 mingw* | pw32* | cygwin*)
795 if test -n "$jni_host_os" ; then
796 CPPFLAGS="$CPPFLAGS -I$jnidir/$jni_host_os"
797 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include <jni.h>]])], [java_ok=yes])
798 if test yes = $java_ok ; then
799 AC_MSG_RESULT([yes, requires additional -I$jnidir/$jni_host_os])
800 JAVA_CPPFLAGS="-I$jnidir -I$jnidir/$jni_host_os"
804 AC_MSG_RESULT([found, but not usable])
806 CPPFLAGS="$SAVE_CPPFLAGS -I$jnidir"
811 CPPFLAGS=$SAVE_CPPFLAGS
812 test noyes = $java_ok$with_java && AC_MSG_ERROR([jni.h not found])
814 AC_SUBST(JAVA_CPPFLAGS)
815 if test yes = $java_ok ; then
816 AC_MSG_CHECKING([for Java path separator])
817 [echo 'public class conftest { public static void main(String[] args) { System.out.println(System.getProperty("path.separator")); } }' > conftest.java]
818 if (exec >&5 2>&5;$JAVAC conftest.java;exit $?) ; then
819 JAVA_PATHSEP=`$JAVA conftest 2>&5`
820 AC_SUBST(JAVA_PATHSEP)
821 if test -n "$JAVA_PATHSEP" ; then
822 AC_MSG_RESULT($JAVA_PATHSEP)
823 BINDINGS="$BINDINGS java"
825 AC_MSG_RESULT([failed to run test program])
829 AC_MSG_RESULT([failed to compile test program])
832 if test no = "$java_ok" ; then
833 test yes = "$with_java" && AC_MSG_ERROR([Couldn't compile and run a simple Java test program])
837 if test yes = "$with_java" ; then
838 if test -z "$JAVA" ; then
839 AC_MSG_ERROR([java not found])
840 elif test -z "$JAVAC" ; then
841 AC_MSG_ERROR([javac not found])
842 elif test -z "$JAR" ; then
843 AC_MSG_ERROR([jar not found])
849 if test no != "$with_ruby" ; then
850 dnl See comment for AC_PATH_PROGS(SWIG, ...).
851 if test -n "$RUBY" ; then
852 AC_PATH_PROGS(RUBY, ["$RUBY"], [])
854 AC_PATH_PROGS(RUBY, [ruby1.8 ruby], [])
856 AC_ARG_VAR(RUBY, [Ruby interpreter])
857 if test -n "$RUBY" ; then
858 dnl Require Ruby 1.8 or newer. Paul says:
859 dnl I'm using 1.8.4. I imagine anything in the 1.8.x series will be fine,
860 dnl not sure about 1.6 but hardly anyone uses <1.8.
862 dnl Brief testing with Ruby 1.6.8 show the bindings probably work there,
863 dnl but smoketest.rb doesn't because the test/unit module isn't available.
864 AC_MSG_CHECKING([$RUBY version])
865 dnl RUBY_VERSION works with 1.6. Once we've checked we have at least 1.8
866 dnl we can safely use RbConfig below (RbConfig requires Ruby 1.8; Config
867 dnl gives a deprecation warning with Ruby 1.9.3).
868 version=`$RUBY -e 'print RUBY_VERSION' 2>/dev/null`
871 AC_MSG_RESULT([\$RUBY -e 'print RUBY_VERSION' didn't work])
872 if test yes = "$with_ruby" ; then
873 AC_MSG_ERROR([Working Ruby interpreter not found])
877 [0.*|1.[0-7]|1.[0-7].*])
878 AC_MSG_RESULT([$version (too old)])
879 if test yes = "$with_ruby" ; then
880 AC_MSG_ERROR([Only Ruby 1.8 or newer is supported ($RUBY is $version)])
885 if test -n "$RUBY" ; then
886 AC_MSG_RESULT([$version])
887 AC_ARG_VAR(RUBY_INC, [Directory where ruby.h can be found])
888 if test -z "$RUBY_INC" ; then
889 dnl Ruby 1.9 added rubyhdrdir; for older Ruby we use archdir.
890 [RUBY_INC=`$RUBY -rrbconfig -e 'print RbConfig::CONFIG["rubyhdrdir"] || RbConfig::CONFIG["archdir"]'`]
893 dnl Check that ruby.h is there, which is a good way to check that
894 dnl the appropriate ruby-dev package has been installed.
895 AC_MSG_CHECKING([for $RUBY_INC/ruby.h])
896 if test -f "$RUBY_INC/ruby.h" ; then
899 AC_MSG_CHECKING([for ruby/io.h])
901 if test -f "$RUBY_INC/ruby/io.h" ; then
904 dnl In a VPATH build, the ruby subdirectory won't exist the first
906 test -d ruby || mkdir ruby
908 dnl Newer Ruby has ruby/io.h - older has rubyio.h. Ruby doesn't
909 dnl seem to provide any way to generate code which works with
910 dnl both (and even the version number isn't a discriminator as
911 dnl Debian etch has 1.9 without ruby/io.h). The SWIG version
912 dnl we're currently using assumes rubyio.h exists and luckily
913 dnl it includes it with "", so we can just drop a rubyio.h
914 dnl wrapper alongside ruby/xapian_wrap.cc.
915 echo '#include <ruby/io.h>' > ruby/rubyio.h
920 AC_ARG_VAR(RUBY_INC_ARCH, [Directory where ruby/config.h can be found (needed from Ruby 1.9)])
921 if test -z "$RUBY_INC_ARCH" ; then
922 dnl Ruby 2.0 and later Ruby 1.9 have rubyarchhdrdir; for early 1.9,
923 dnl use rubyhdrdir+"/"+arch.
924 [RUBY_INC_ARCH=`$RUBY -rrbconfig -e 'd = RbConfig::CONFIG["rubyhdrdir"]; print RbConfig::CONFIG["rubyarchhdrdir"] || (d ? d + "/" + RbConfig::CONFIG["arch"] : "")'`]
925 dnl Ruby 1.8 has no rubyhdrdir, so set RUBY_INC_ARCH=RUBY_INC.
926 test x"$RUBY_INC_ARCH" != x || RUBY_INC_ARCH=$RUBY_INC
928 AC_SUBST(RUBY_INC_ARCH)
930 AC_ARG_VAR(RUBY_LIB, [Directory to install ruby files into])
931 if test -z "$RUBY_LIB" ; then
932 [RUBY_LIB=`$RUBY -rrbconfig -e 'print RbConfig::CONFIG["sitelibdir"]'`]
936 AC_ARG_VAR(RUBY_LIB_ARCH, [Directory to install ruby binary modules into])
937 if test -z "$RUBY_LIB_ARCH" ; then
938 [RUBY_LIB_ARCH=`$RUBY -rrbconfig -e 'print RbConfig::CONFIG["sitearchdir"]'`]
940 AC_SUBST(RUBY_LIB_ARCH)
943 if test unsupported = "$allow_undefined_flag" ; then
944 dnl For Microsoft Windows and a few other platforms.
945 [RUBY_LIBS=`$RUBY -rrbconfig -e 'print RbConfig::CONFIG["LIBRUBYARG"]'`]
949 if test yes = "$enable_documentation" ; then
950 if test -n "$RDOC" ; then
951 AC_PATH_PROGS(RDOC, ["$RDOC"], [])
953 dnl Try replace the *last* 'ruby' with 'rdoc'.
954 rdoc_best_guess=`echo "$RUBY"|sed 's,\(.*\)ruby,\1rdoc,'`
955 AC_PATH_PROGS(RDOC, ["$rdoc_best_guess"], [])
956 if test -z "$RDOC"; then
957 AC_PATH_PROGS(RDOC, [rdoc], [])
958 test -n "$RDOC" || RDOC="$MISSING rdoc"
963 BINDINGS="$BINDINGS ruby"
965 AC_MSG_RESULT([no (install ruby-dev or ruby-devel package or similar)])
966 if test yes = "$with_ruby" ; then
967 AC_MSG_ERROR([ruby.h not found])
970 RUBY_DLEXT=`$RUBY -rrbconfig -e 'print RbConfig::CONFIG[["DLEXT"]]'`
976 if test no != "$with_perl" ; then
977 AC_PATH_PROGS(PERL, ["${PERL-perl}"], [])
978 AC_ARG_VAR(PERL, [perl interpreter])
979 if test -n "$PERL" ; then
980 AC_ARG_VAR(PERL_INC, [Directory to include for XSUB,h and other Perl API headers])
981 if test -z "$PERL_INC" ; then
982 PERL_INC=`$PERL -MConfig -e 'print $Config{archlibexp}, "/CORE"'`
986 AC_ARG_VAR(PERL_ARCH, [Directory to install architecture-dependent perl files into])
987 if test -z "$PERL_ARCH" ; then
988 PERL_ARCH=`$PERL -MConfig -e 'print $Config{installsitearch}'`
992 AC_ARG_VAR(PERL_LIB, [Directory to install architecture-independent perl files into])
993 if test -z "$PERL_LIB" ; then
994 PERL_LIB=`$PERL -MConfig -e 'print $Config{installsitelib}'`
998 AC_ARG_VAR(PERL_SO, [for perl module extension])
999 if test -z "$PERL_SO" ; then
1000 PERL_SO=`$PERL -MConfig -e 'print ".", $Config{dlext}'`
1004 if test -z "$PERL_XAPIAN_VERSION" ; then
1005 dnl snapshot versions look like 1.2.3_git123 or 1.2.3_svn14971
1006 case $PACKAGE_VERSION in
1008 PERL_XAPIAN_VERSION=`echo "$PACKAGE_VERSION"|sed 's/_git/./'` ;;
1010 PERL_XAPIAN_VERSION=`echo "$PACKAGE_VERSION"|sed 's/_svn/./'` ;;
1012 PERL_XAPIAN_VERSION=$PACKAGE_VERSION.0 ;;
1015 AC_SUBST(PERL_XAPIAN_VERSION)
1017 BINDINGS="$BINDINGS perl"
1019 if test yes = "$with_perl" ; then
1020 AC_MSG_ERROR([perl not found])
1025 if test no != "$with_lua" ; then
1026 AC_PATH_PROGS(LUA, ["${LUA-lua}"], [])
1027 AC_ARG_VAR(LUA, [lua interpreter])
1028 if test -n "$LUA" ; then
1029 dnl We need Lua 5.1 or later.
1030 AC_MSG_CHECKING([$LUA version])
1031 lua_version=`$LUA -e 'print(_VERSION)' | cut -f 2 -d ' ' 2>&AS_MESSAGE_LOG_FD`
1033 case $lua_version in
1034 [[01234]].*|5.0|5.0.*)
1035 AC_MSG_RESULT([$lua_version < 5.1 (too old)])
1036 if test yes = "$with_lua" ; then
1037 AC_MSG_ERROR([$LUA too old (Lua 5.1 or newer required)])
1042 AC_MSG_RESULT([\$LUA -e 'print(_VERSION)' | cut -f 2 -d ' ' didn't work])
1044 if test yes = "$with_lua" ; then
1045 AC_MSG_ERROR([Working Lua interpreter not found])
1051 if test -n "$LUA" ; then
1052 AC_MSG_RESULT([$lua_version])
1054 AC_ARG_VAR([LUA_LIB], [Directory to install compiled Lua modules into])
1055 AC_ARG_VAR([LUA_SO], [Extension for compiled Lua modules (e.g. LUA_SO=.so)])
1056 AC_MSG_CHECKING([for directory to install compiled Lua modules into])
1057 if test -z "$LUA_LIB" -o -z "$LUA_SO" ; then
1058 lua_cpath=`$LUA -e 'require("package") print(package.cpath)'`
1059 dnl Look for the first absolute path in lua_cpath which has leaf
1060 dnl "?.<ext>" and put the directory part into lua_lib and <ext> into
1061 dnl lua_so. If LUA_SO was specified by the user, only consider
1062 dnl entries where <ext> matches LUA_SO.
1067 [lua_so_pat='[a-zA-Z][a-zA-Z]*'] ;;
1069 dnl If LUA_SO has a leading '.', remove it.
1070 lua_so_pat=`AS_ECHO("$LUA_SO")|sed 's/^\.//'` ;;
1072 dnl If LUA_SO was specified without a leading '.', add one to the
1073 dnl value substituted into Makefile.in.
1078 while test x"$lua_cpath" != x ; do
1079 [lua_lib=`expr X"$lua_cpath" : X'\([^;]*\)'`]
1080 lua_so=.`expr X"$lua_lib" : X'/.*/?\.\('"$lua_so_pat"'\)$'`
1083 dnl If someone has foolishly put ?.lua in cpath, ignore them.
1087 lua_lib=`expr X"$lua_lib" : X'\(/.*\)/?\.'"$lua_so_pat"'$'`
1090 [lua_cpath=`expr X"$lua_cpath" : X'[^;]*;*\(.*\)'`]
1092 test -n "$LUA_LIB" || LUA_LIB=$lua_lib
1093 test -n "$LUA_SO" || LUA_SO=$lua_so
1095 if test -z "$LUA_LIB"; then
1096 AC_MSG_RESULT([not found])
1098 AC_MSG_RESULT([$LUA_LIB])
1102 AC_MSG_CHECKING([for extension to use for compiled Lua modules])
1103 if test -z "$LUA_SO"; then
1104 AC_MSG_RESULT([not found])
1106 AC_MSG_RESULT([$LUA_SO])
1110 AC_MSG_CHECKING([for Lua header files])
1111 AC_ARG_VAR([LUA_INC], [Directory to include for lua headers])
1112 if test -z "$LUA_INC" ; then
1113 dirs="/usr/include/lua$lua_version /usr/local/include/lua$lua_version"
1115 if test -r "$i/lua.h"; then
1122 if test -z "$LUA_INC" ; then
1123 AC_MSG_RESULT([not found])
1125 AC_MSG_RESULT([$LUA_INC])
1126 BINDINGS="$BINDINGS lua"
1127 LUA_CPPFLAGS="-I$LUA_INC"
1129 AC_SUBST([LUA_CPPFLAGS])
1132 if test yes = "$with_lua" ; then
1133 AC_MSG_ERROR([lua not found])
1140 dnl Set flags to control warnings (enable more, or disable annoying ones)
1141 dnl and other compiler specific flags.
1144 if test yes = "$GXX" ; then
1145 dnl Python itself is compiled with -fno-strict-aliasing, and it appears
1146 dnl it's safest to follow this lead when compiling the SWIG generated
1147 dnl interface code. E.g.:
1148 dnl http://article.gmane.org/gmane.comp.gcc.devel/74692
1149 dnl The code SWIG generates for other languages seems to have similar
1150 dnl issues too, so just turn this on for all of them.
1152 dnl There's no need to check -fno-strict-aliasing is supported as it works
1153 dnl with GCC 2.95 and we don't support anything older.
1154 SWIG_CXXFLAGS="-fno-strict-aliasing"
1156 dnl We need to explicitly link against -lstdc++ on OpenBSD (discovered
1157 dnl on OpenBSD 3.7 with GCC 3.3.5 but this appears to be due to a
1158 dnl deliberate decision on the part of OpenBSD developers). Luckily
1159 dnl we can just always specify -lstdc++ explicitly if GCC is the
1160 dnl compiler and libtool will eliminate the duplicate on other
1162 XAPIAN_LIBS="$XAPIAN_LIBS -lstdc++"
1164 dnl Intel's C++ compiler is identified as "GXX" by autoconf's test - check
1165 dnl which we actually have.
1167 [#ifdef __INTEL_COMPILER
1172 dnl Intel's compiler:
1174 dnl -w1 stops the avalanche of uninteresting "remark" messages.
1175 dnl -wd... disables warnings which don't have good code workarounds.
1177 dnl Swig generated code gives lots of unused and uninitialized warnings.
1178 dnl They're non-harmful, so suppress them.
1179 SWIG_CXXFLAGS="$SWIG_CXXFLAGS -Wall -w1 -wd177,1572"
1180 dnl The Java JNI wrappers have a few unused variables.
1181 JAVA_CXXFLAGS="-Wall -w1 -wd177,1572"
1186 dnl Swig generated code gives lots of unused and uninitialized warnings.
1187 dnl They're non-harmful, so suppress them.
1188 SWIG_CXXFLAGS="$SWIG_CXXFLAGS -Wall -Wno-unused -Wno-uninitialized"
1189 AC_MSG_CHECKING([whether to use -fvisibility=hidden])
1190 dnl To be robust, we check both that -fvisibility=hidden is recognised
1191 dnl and that SWIG will have added the visibility attributes.
1192 dnl The GCC wiki says it's supported from GCC 4.0 onwards. GCC 3.4
1193 dnl also supports -fvisibility, but doesn't allow visibility to be
1194 dnl specified for classes, which probably breaks throwing exception
1195 dnl classes from the library. We want that to work, so only switch
1196 dnl this on for GCC 4.0 onwards.
1197 SAVE_CXXFLAGS=$CXXFLAGS
1198 CXXFLAGS="-fvisibility=hidden"
1199 AC_TRY_COMPILE([], [
1201 /* GCC supports -fvisibility and allows specifying visibility for classes. */
1207 SWIG_CXXFLAGS="$SWIG_CXXFLAGS -fvisibility=hidden"
1210 CXXFLAGS=$SAVE_CXXFLAGS
1211 dnl The Java JNI wrappers have a few unused variables.
1212 JAVA_CXXFLAGS="-Wall -W -Wno-unused"
1215 AC_SUBST(SWIG_CXXFLAGS)
1216 AC_SUBST(JAVA_CXXFLAGS)
1218 dnl Restore CXXFLAGS to those the user specified or autoconf defaulted to.
1219 CXXFLAGS=$save_CXXFLAGS
1221 dnl Required for auto regeneration to work in a combined maintainer-mode tree.
1222 : ${AUTOM4TE=autom4te}
1223 AC_SUBST([AUTOM4TE])
1225 AC_CONFIG_FILES([Makefile
1227 python/Makefile python/version.i
1229 java/Makefile java/native/Makefile java/org/xapian/Makefile
1230 java/org/xapian/errors/Makefile java/org/xapian/examples/Makefile
1232 tcl8/Makefile tcl8/pkgIndex.tcl
1233 csharp/Makefile csharp/AssemblyInfo.cs
1235 perl/Makefile perl/util.i
1237 xapian-bindings.spec
1242 if test -z "$BINDINGS" ; then
1243 echo "*** Not found the required tools for building bindings for any"
1244 echo "*** supported language!"
1246 echo "*** You may need to install -dev or -devel packages for the languages"
1247 echo "*** you want to build bindings for."
1249 echo "*** For details of how to point configure at tools not on PATH, see:"
1250 echo "*** ./configure --help"
1252 echo "*** Building bindings for languages:" $BINDINGS
1255 if test "$COMPAT_VERSION" != "$XAPIAN_VERSION" ; then
1256 release_series=[`echo "$COMPAT_VERSION"|sed 's/[0-9][0-9]*$//'`]
1257 case $XAPIAN_VERSION in
1258 $release_series*) ;;
1260 AC_MSG_ERROR([Xapian library is version ${XAPIAN_VERSION-<0.8.2} which is from a different release series to bindings $PACKAGE_VERSION, so they aren't compatible.])
1263 dnl 0.8.2 was the first version which set XAPIAN_VERSION
1264 AC_MSG_WARN([Xapian library is version ${XAPIAN_VERSION-<0.8.2} but the bindings are version $PACKAGE_VERSION - we strongly recommend using matching versions.])