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.25], [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 For OpenJDK (and maybe others) we have to specify an extra -I
784 dnl option for an OS-specific subdirectory containing a "jni_md.h"
785 dnl header which is included by "jni.h". Sadly we seem to need to
786 dnl hardcode a mapping for these platform names - the list below
787 dnl was determined by inspecting the source code of OpenJDK 8.
793 jni_host_os=solaris ;;
794 mingw* | pw32* | cygwin*)
797 jni_host_os=darwin ;;
803 if test -n "$jni_host_os" ; then
804 CPPFLAGS="$CPPFLAGS -I$jnidir/$jni_host_os"
805 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include <jni.h>]])], [java_ok=yes])
806 if test yes = $java_ok ; then
807 AC_MSG_RESULT([yes, requires additional -I$jnidir/$jni_host_os])
808 JAVA_CPPFLAGS="-I$jnidir -I$jnidir/$jni_host_os"
812 AC_MSG_RESULT([found, but not usable])
814 CPPFLAGS="$SAVE_CPPFLAGS -I$jnidir"
819 CPPFLAGS=$SAVE_CPPFLAGS
820 test noyes = $java_ok$with_java && AC_MSG_ERROR([jni.h not found])
822 AC_SUBST(JAVA_CPPFLAGS)
823 if test yes = $java_ok ; then
824 AC_MSG_CHECKING([for Java path separator])
825 [echo 'public class conftest { public static void main(String[] args) { System.out.println(System.getProperty("path.separator")); } }' > conftest.java]
826 if (exec >&5 2>&5;$JAVAC conftest.java;exit $?) ; then
827 JAVA_PATHSEP=`$JAVA conftest 2>&5`
828 AC_SUBST(JAVA_PATHSEP)
829 if test -n "$JAVA_PATHSEP" ; then
830 AC_MSG_RESULT($JAVA_PATHSEP)
831 BINDINGS="$BINDINGS java"
833 AC_MSG_RESULT([failed to run test program])
837 AC_MSG_RESULT([failed to compile test program])
840 if test no = "$java_ok" ; then
841 test yes = "$with_java" && AC_MSG_ERROR([Couldn't compile and run a simple Java test program])
845 if test yes = "$with_java" ; then
846 if test -z "$JAVA" ; then
847 AC_MSG_ERROR([java not found])
848 elif test -z "$JAVAC" ; then
849 AC_MSG_ERROR([javac not found])
850 elif test -z "$JAR" ; then
851 AC_MSG_ERROR([jar not found])
857 if test no != "$with_ruby" ; then
858 dnl See comment for AC_PATH_PROGS(SWIG, ...).
859 if test -n "$RUBY" ; then
860 AC_PATH_PROGS(RUBY, ["$RUBY"], [])
862 AC_PATH_PROGS(RUBY, [ruby1.8 ruby], [])
864 AC_ARG_VAR(RUBY, [Ruby interpreter])
865 if test -n "$RUBY" ; then
866 dnl Require Ruby 1.8 or newer. Paul says:
867 dnl I'm using 1.8.4. I imagine anything in the 1.8.x series will be fine,
868 dnl not sure about 1.6 but hardly anyone uses <1.8.
870 dnl Brief testing with Ruby 1.6.8 show the bindings probably work there,
871 dnl but smoketest.rb doesn't because the test/unit module isn't available.
872 AC_MSG_CHECKING([$RUBY version])
873 dnl RUBY_VERSION works with 1.6. Once we've checked we have at least 1.8
874 dnl we can safely use RbConfig below (RbConfig requires Ruby 1.8; Config
875 dnl gives a deprecation warning with Ruby 1.9.3).
876 version=`$RUBY -e 'print RUBY_VERSION' 2>/dev/null`
879 AC_MSG_RESULT([\$RUBY -e 'print RUBY_VERSION' didn't work])
880 if test yes = "$with_ruby" ; then
881 AC_MSG_ERROR([Working Ruby interpreter not found])
885 [0.*|1.[0-7]|1.[0-7].*])
886 AC_MSG_RESULT([$version (too old)])
887 if test yes = "$with_ruby" ; then
888 AC_MSG_ERROR([Only Ruby 1.8 or newer is supported ($RUBY is $version)])
893 if test -n "$RUBY" ; then
894 AC_MSG_RESULT([$version])
895 AC_ARG_VAR(RUBY_INC, [Directory where ruby.h can be found])
896 if test -z "$RUBY_INC" ; then
897 dnl Ruby 1.9 added rubyhdrdir; for older Ruby we use archdir.
898 [RUBY_INC=`$RUBY -rrbconfig -e 'print RbConfig::CONFIG["rubyhdrdir"] || RbConfig::CONFIG["archdir"]'`]
901 dnl Check that ruby.h is there, which is a good way to check that
902 dnl the appropriate ruby-dev package has been installed.
903 AC_MSG_CHECKING([for $RUBY_INC/ruby.h])
904 if test -f "$RUBY_INC/ruby.h" ; then
907 AC_MSG_CHECKING([for ruby/io.h])
909 if test -f "$RUBY_INC/ruby/io.h" ; then
912 dnl In a VPATH build, the ruby subdirectory won't exist the first
914 test -d ruby || mkdir ruby
916 dnl Newer Ruby has ruby/io.h - older has rubyio.h. Ruby doesn't
917 dnl seem to provide any way to generate code which works with
918 dnl both (and even the version number isn't a discriminator as
919 dnl Debian etch has 1.9 without ruby/io.h). The SWIG version
920 dnl we're currently using assumes rubyio.h exists and luckily
921 dnl it includes it with "", so we can just drop a rubyio.h
922 dnl wrapper alongside ruby/xapian_wrap.cc.
923 echo '#include <ruby/io.h>' > ruby/rubyio.h
928 AC_ARG_VAR(RUBY_INC_ARCH, [Directory where ruby/config.h can be found (needed from Ruby 1.9)])
929 if test -z "$RUBY_INC_ARCH" ; then
930 dnl Ruby 2.0 and later Ruby 1.9 have rubyarchhdrdir; for early 1.9,
931 dnl use rubyhdrdir+"/"+arch.
932 [RUBY_INC_ARCH=`$RUBY -rrbconfig -e 'd = RbConfig::CONFIG["rubyhdrdir"]; print RbConfig::CONFIG["rubyarchhdrdir"] || (d ? d + "/" + RbConfig::CONFIG["arch"] : "")'`]
933 dnl Ruby 1.8 has no rubyhdrdir, so set RUBY_INC_ARCH=RUBY_INC.
934 test x"$RUBY_INC_ARCH" != x || RUBY_INC_ARCH=$RUBY_INC
936 AC_SUBST(RUBY_INC_ARCH)
938 AC_ARG_VAR(RUBY_LIB, [Directory to install ruby files into])
939 if test -z "$RUBY_LIB" ; then
940 [RUBY_LIB=`$RUBY -rrbconfig -e 'print RbConfig::CONFIG["sitelibdir"]'`]
944 AC_ARG_VAR(RUBY_LIB_ARCH, [Directory to install ruby binary modules into])
945 if test -z "$RUBY_LIB_ARCH" ; then
946 [RUBY_LIB_ARCH=`$RUBY -rrbconfig -e 'print RbConfig::CONFIG["sitearchdir"]'`]
948 AC_SUBST(RUBY_LIB_ARCH)
951 if test unsupported = "$allow_undefined_flag" ; then
952 dnl For Microsoft Windows and a few other platforms.
953 [RUBY_LIBS=`$RUBY -rrbconfig -e 'print RbConfig::CONFIG["LIBRUBYARG"]'`]
957 if test yes = "$enable_documentation" ; then
958 if test -n "$RDOC" ; then
959 AC_PATH_PROGS(RDOC, ["$RDOC"], [])
961 dnl Try replace the *last* 'ruby' with 'rdoc'.
962 rdoc_best_guess=`echo "$RUBY"|sed 's,\(.*\)ruby,\1rdoc,'`
963 AC_PATH_PROGS(RDOC, ["$rdoc_best_guess"], [])
964 if test -z "$RDOC"; then
965 AC_PATH_PROGS(RDOC, [rdoc], [])
966 test -n "$RDOC" || RDOC="$MISSING rdoc"
971 BINDINGS="$BINDINGS ruby"
973 AC_MSG_RESULT([no (install ruby-dev or ruby-devel package or similar)])
974 if test yes = "$with_ruby" ; then
975 AC_MSG_ERROR([ruby.h not found])
978 RUBY_DLEXT=`$RUBY -rrbconfig -e 'print RbConfig::CONFIG[["DLEXT"]]'`
984 if test no != "$with_perl" ; then
985 AC_PATH_PROGS(PERL, ["${PERL-perl}"], [])
986 AC_ARG_VAR(PERL, [perl interpreter])
987 if test -n "$PERL" ; then
988 AC_ARG_VAR(PERL_INC, [Directory to include for XSUB,h and other Perl API headers])
989 if test -z "$PERL_INC" ; then
990 PERL_INC=`$PERL -MConfig -e 'print $Config{archlibexp}, "/CORE"'`
994 AC_ARG_VAR(PERL_ARCH, [Directory to install architecture-dependent perl files into])
995 if test -z "$PERL_ARCH" ; then
996 PERL_ARCH=`$PERL -MConfig -e 'print $Config{installsitearch}'`
1000 AC_ARG_VAR(PERL_LIB, [Directory to install architecture-independent perl files into])
1001 if test -z "$PERL_LIB" ; then
1002 PERL_LIB=`$PERL -MConfig -e 'print $Config{installsitelib}'`
1006 AC_ARG_VAR(PERL_SO, [for perl module extension])
1007 if test -z "$PERL_SO" ; then
1008 PERL_SO=`$PERL -MConfig -e 'print ".", $Config{dlext}'`
1012 if test -z "$PERL_XAPIAN_VERSION" ; then
1013 dnl snapshot versions look like 1.2.3_git123 or 1.2.3_svn14971
1014 case $PACKAGE_VERSION in
1016 PERL_XAPIAN_VERSION=`echo "$PACKAGE_VERSION"|sed 's/_git/./'` ;;
1018 PERL_XAPIAN_VERSION=`echo "$PACKAGE_VERSION"|sed 's/_svn/./'` ;;
1020 PERL_XAPIAN_VERSION=$PACKAGE_VERSION.0 ;;
1023 AC_SUBST(PERL_XAPIAN_VERSION)
1025 BINDINGS="$BINDINGS perl"
1027 if test yes = "$with_perl" ; then
1028 AC_MSG_ERROR([perl not found])
1033 if test no != "$with_lua" ; then
1034 AC_PATH_PROGS(LUA, ["${LUA-lua}"], [])
1035 AC_ARG_VAR(LUA, [lua interpreter])
1036 if test -n "$LUA" ; then
1037 dnl We need Lua 5.1 or later.
1038 AC_MSG_CHECKING([$LUA version])
1039 lua_version=`$LUA -e 'print(_VERSION)' | cut -f 2 -d ' ' 2>&AS_MESSAGE_LOG_FD`
1041 case $lua_version in
1042 [[01234]].*|5.0|5.0.*)
1043 AC_MSG_RESULT([$lua_version < 5.1 (too old)])
1044 if test yes = "$with_lua" ; then
1045 AC_MSG_ERROR([$LUA too old (Lua 5.1 or newer required)])
1050 AC_MSG_RESULT([\$LUA -e 'print(_VERSION)' | cut -f 2 -d ' ' didn't work])
1052 if test yes = "$with_lua" ; then
1053 AC_MSG_ERROR([Working Lua interpreter not found])
1059 if test -n "$LUA" ; then
1060 AC_MSG_RESULT([$lua_version])
1062 AC_ARG_VAR([LUA_LIB], [Directory to install compiled Lua modules into])
1063 AC_ARG_VAR([LUA_SO], [Extension for compiled Lua modules (e.g. LUA_SO=.so)])
1064 AC_MSG_CHECKING([for directory to install compiled Lua modules into])
1065 if test -z "$LUA_LIB" -o -z "$LUA_SO" ; then
1066 lua_cpath=`$LUA -e 'require("package") print(package.cpath)'`
1067 dnl Look for the first absolute path in lua_cpath which has leaf
1068 dnl "?.<ext>" and put the directory part into lua_lib and <ext> into
1069 dnl lua_so. If LUA_SO was specified by the user, only consider
1070 dnl entries where <ext> matches LUA_SO.
1075 [lua_so_pat='[a-zA-Z][a-zA-Z]*'] ;;
1077 dnl If LUA_SO has a leading '.', remove it.
1078 lua_so_pat=`AS_ECHO("$LUA_SO")|sed 's/^\.//'` ;;
1080 dnl If LUA_SO was specified without a leading '.', add one to the
1081 dnl value substituted into Makefile.in.
1086 while test x"$lua_cpath" != x ; do
1087 [lua_lib=`expr X"$lua_cpath" : X'\([^;]*\)'`]
1088 lua_so=.`expr X"$lua_lib" : X'/.*/?\.\('"$lua_so_pat"'\)$'`
1091 dnl If someone has foolishly put ?.lua in cpath, ignore them.
1095 lua_lib=`expr X"$lua_lib" : X'\(/.*\)/?\.'"$lua_so_pat"'$'`
1098 [lua_cpath=`expr X"$lua_cpath" : X'[^;]*;*\(.*\)'`]
1100 test -n "$LUA_LIB" || LUA_LIB=$lua_lib
1101 test -n "$LUA_SO" || LUA_SO=$lua_so
1103 if test -z "$LUA_LIB"; then
1104 AC_MSG_RESULT([not found])
1106 AC_MSG_RESULT([$LUA_LIB])
1110 AC_MSG_CHECKING([for extension to use for compiled Lua modules])
1111 if test -z "$LUA_SO"; then
1112 AC_MSG_RESULT([not found])
1114 AC_MSG_RESULT([$LUA_SO])
1118 AC_MSG_CHECKING([for Lua header files])
1119 AC_ARG_VAR([LUA_INC], [Directory to include for lua headers])
1120 if test -z "$LUA_INC" ; then
1121 dirs="/usr/include/lua$lua_version /usr/local/include/lua$lua_version"
1123 if test -r "$i/lua.h"; then
1130 if test -z "$LUA_INC" ; then
1131 AC_MSG_RESULT([not found])
1133 AC_MSG_RESULT([$LUA_INC])
1134 BINDINGS="$BINDINGS lua"
1135 LUA_CPPFLAGS="-I$LUA_INC"
1137 AC_SUBST([LUA_CPPFLAGS])
1140 if test yes = "$with_lua" ; then
1141 AC_MSG_ERROR([lua not found])
1148 dnl Set flags to control warnings (enable more, or disable annoying ones)
1149 dnl and other compiler specific flags.
1152 if test yes = "$GXX" ; then
1153 dnl Python itself is compiled with -fno-strict-aliasing, and it appears
1154 dnl it's safest to follow this lead when compiling the SWIG generated
1155 dnl interface code. E.g.:
1156 dnl http://article.gmane.org/gmane.comp.gcc.devel/74692
1157 dnl The code SWIG generates for other languages seems to have similar
1158 dnl issues too, so just turn this on for all of them.
1160 dnl There's no need to check -fno-strict-aliasing is supported as it works
1161 dnl with GCC 2.95 and we don't support anything older.
1162 SWIG_CXXFLAGS="-fno-strict-aliasing"
1164 dnl We need to explicitly link against -lstdc++ on OpenBSD (discovered
1165 dnl on OpenBSD 3.7 with GCC 3.3.5 but this appears to be due to a
1166 dnl deliberate decision on the part of OpenBSD developers). Luckily
1167 dnl we can just always specify -lstdc++ explicitly if GCC is the
1168 dnl compiler and libtool will eliminate the duplicate on other
1170 XAPIAN_LIBS="$XAPIAN_LIBS -lstdc++"
1172 dnl Intel's C++ compiler is identified as "GXX" by autoconf's test - check
1173 dnl which we actually have.
1175 [#ifdef __INTEL_COMPILER
1180 dnl Intel's compiler:
1182 dnl -w1 stops the avalanche of uninteresting "remark" messages.
1183 dnl -wd... disables warnings which don't have good code workarounds.
1185 dnl Swig generated code gives lots of unused and uninitialized warnings.
1186 dnl They're non-harmful, so suppress them.
1187 SWIG_CXXFLAGS="$SWIG_CXXFLAGS -Wall -w1 -wd177,1572"
1188 dnl The Java JNI wrappers have a few unused variables.
1189 JAVA_CXXFLAGS="-Wall -w1 -wd177,1572"
1194 dnl Swig generated code gives lots of unused and uninitialized warnings.
1195 dnl They're non-harmful, so suppress them.
1196 SWIG_CXXFLAGS="$SWIG_CXXFLAGS -Wall -Wno-unused -Wno-uninitialized"
1197 AC_MSG_CHECKING([whether to use -fvisibility=hidden])
1198 dnl To be robust, we check both that -fvisibility=hidden is recognised
1199 dnl and that SWIG will have added the visibility attributes.
1200 dnl The GCC wiki says it's supported from GCC 4.0 onwards. GCC 3.4
1201 dnl also supports -fvisibility, but doesn't allow visibility to be
1202 dnl specified for classes, which probably breaks throwing exception
1203 dnl classes from the library. We want that to work, so only switch
1204 dnl this on for GCC 4.0 onwards.
1205 SAVE_CXXFLAGS=$CXXFLAGS
1206 CXXFLAGS="-fvisibility=hidden"
1207 AC_TRY_COMPILE([], [
1209 /* GCC supports -fvisibility and allows specifying visibility for classes. */
1215 SWIG_CXXFLAGS="$SWIG_CXXFLAGS -fvisibility=hidden"
1218 CXXFLAGS=$SAVE_CXXFLAGS
1219 dnl The Java JNI wrappers have a few unused variables.
1220 JAVA_CXXFLAGS="-Wall -W -Wno-unused"
1223 AC_SUBST(SWIG_CXXFLAGS)
1224 AC_SUBST(JAVA_CXXFLAGS)
1226 dnl Restore CXXFLAGS to those the user specified or autoconf defaulted to.
1227 CXXFLAGS=$save_CXXFLAGS
1229 dnl Required for auto regeneration to work in a combined maintainer-mode tree.
1230 : ${AUTOM4TE=autom4te}
1231 AC_SUBST([AUTOM4TE])
1233 AC_CONFIG_FILES([Makefile
1235 python/Makefile python/version.i
1237 java/Makefile java/native/Makefile java/org/xapian/Makefile
1238 java/org/xapian/errors/Makefile java/org/xapian/examples/Makefile
1240 tcl8/Makefile tcl8/pkgIndex.tcl
1241 csharp/Makefile csharp/AssemblyInfo.cs
1243 perl/Makefile perl/util.i
1245 xapian-bindings.spec
1250 if test -z "$BINDINGS" ; then
1251 echo "*** Not found the required tools for building bindings for any"
1252 echo "*** supported language!"
1254 echo "*** You may need to install -dev or -devel packages for the languages"
1255 echo "*** you want to build bindings for."
1257 echo "*** For details of how to point configure at tools not on PATH, see:"
1258 echo "*** ./configure --help"
1260 echo "*** Building bindings for languages:" $BINDINGS
1263 if test "$COMPAT_VERSION" != "$XAPIAN_VERSION" ; then
1264 release_series=[`echo "$COMPAT_VERSION"|sed 's/[0-9][0-9]*$//'`]
1265 case $XAPIAN_VERSION in
1266 $release_series*) ;;
1268 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.])
1271 dnl 0.8.2 was the first version which set XAPIAN_VERSION
1272 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.])