## -*- autoconf -*- dnl This file was created by Lee Carpenter dnl Later modified by Martin Gruner dnl It provides macros for the autoconf package to find the CLucene library on your system. dnl ---------------------------------------------------------------------- dnl Check for clucene installation dnl First argument specifies whether or not to link dnl CLucene statically dnl ---------------------------------------------------------------------- AC_DEFUN(AC_CHECK_CLUCENE, [ dnl AC_MSG_CHECKING([for a clucene installation]) dnl The option for the configure script AC_ARG_WITH(clucene-dir, [ --with-clucene-dir=DIR Path where CLucene is installed (default=/usr) ], [ ac_clucene_dir=$withval ],ac_clucene_dir=/usr ) AC_ARG_ENABLE(static-clucene, [ --enable-static-clucene Link to the static CLucene library], ac_static_clucene="YES", [ ac_static_clucene="$1" ] ) dnl try to find CLucene library files AC_MSG_CHECKING([for CLucene library files]) clucene_multiarch_libs="`find /usr/lib/ -maxdepth 1 -type d | xargs echo`" ac_clucene_library_dirs="$ac_clucene_dir/lib $exec_prefix/lib $prefix/lib /usr/lib /usr/lib64 /usr/local/lib $clucene_multiarch_libs" if test "x$ac_static_clucene" = "xYES"; then SEARCH_LIBS="libclucene.a"; else SEARCH_LIBS="libclucene.so libclucene.so.0 libclucene.so.0.0.0 libcluene.a"; fi AC_CACHE_VAL(ac_cv_clucene_libdir, AC_FIND_FILE($SEARCH_LIBS, $ac_clucene_library_dirs, ac_cv_clucene_libdir)) if test "x$ac_cv_clucene_libdir" = "xNO"; then AC_MSG_CHECKING([for CLucene 2.x library files]) SEARCH_LIBS="libclucene-shared.so libclucene-shared.so.1"; AC_CACHE_VAL(ac_cv_clucene2_libdir, AC_FIND_FILE($SEARCH_LIBS, $ac_clucene_library_dirs, ac_cv_clucene_libdir)) if test "x$ac_cv_clucene2_libdir" = "xNO"; then AC_MSG_ERROR(CLucene library not found. Try to use configure with --with-clucene-dir=/path/to/clucene); fi else ac_cv_clucene2_libdir="NO" fi if test "x$ac_static_clucene" = "xYES"; then LIB_CLUCENE="$ac_cv_clucene_libdir/libclucene.a"; else if test "x$ac_cv_clucene2_libdir" = "xNO"; then LIB_CLUCENE="-lclucene"; else CXXFLAGS="$CXXFLAGS -DCLUCENE_V2" LIB_CLUCENE="-lclucene-core -lclucene-shared"; fi fi AC_SUBST(CLUCENE_LIBRARY_PATH) AC_SUBST(LIB_CLUCENE) all_libraries="$all_libraries -L$ac_cv_clucene_libdir" if test "x$ac_static_clucene" = "xYES"; then MESSAGE="static library $ac_cv_clucene_libdir/libclucene.a"; else MESSAGE="$ac_cv_clucene_libdir"; fi AC_MSG_RESULT([$MESSAGE]) dnl -- try to find CLucene include files -- AC_MSG_CHECKING([for Clucene include files]) ac_clucene_include_dirs="$ac_clucene_dir/include $exec_prefix/include $prefix/include /usr/include /usr/local/include" AC_CACHE_VAL(ac_cv_clucene_incdir, AC_FIND_FILE(CLucene.h, $ac_clucene_include_dirs, ac_cv_clucene_incdir)) if test "x$ac_cv_clucene_incdir" = "xNO"; then AC_MSG_ERROR([The CLucene include file files were not found. Please try to use configure with --with-clucene-dir=/path/to/clucene ]) fi CLUCENE_INCLUDES="-I$ac_cv_clucene_incdir" AC_SUBST(CLUCENE_INCLUDES) all_includes="$all_includes -I$ac_cv_clucene_incdir -I$ac_cv_clucene_libdir -I$ac_cv_sword_incdir" #$ac_cv_clucene_libdir needed for Clucene/clucene-config.h AC_MSG_RESULT([$ac_cv_clucene_incdir]) dnl -- CLucene installed test -- AC_MSG_CHECKING([for CLucene version]) AC_CACHE_VAL(ac_cv_installed_clucene_version, [ AC_LANG_SAVE AC_LANG_CPLUSPLUS ac_LD_LIBRARY_PATH_safe=$LD_LIBRARY_PATH ac_LIBRARY_PATH="$LIBRARY_PATH" ac_cxxflags_safe="$CXXFLAGS" ac_ldflags_safe="$LDFLAGS" ac_libs_safe="$LIBS" CXXFLAGS="$CXXFLAGS -I$" LDFLAGS="$LDFLAGS -L$ac_cv_clucene_libdir -L$ac_cv_sword_libdir" LIBS="$LIB_CLUCENE -lz -lsword -ltqt" LD_LIBRARY_PATH="$ac_cv_clucene_libdir" export LD_LIBRARY_PATH LIBRARY_PATH= export LIBRARY_PATH cat > conftest.$ac_ext < #include #include int main(int argc, char* argv[[]]) { if ( sword::SWVersion( _CL_VERSION ) >= sword::SWVersion( "0.9.16" ) ){ std::cout << "ok"; } else{ std::cout << "not-ok"; } return 0; } EOF ac_link='$LIBTOOL_SHELL --silent --mode=link --tag=LD ${CXX-g++} -o conftest $CXXFLAGS $all_includes $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' if AC_TRY_EVAL(ac_link) && test -s conftest; then if test -x conftest; then eval ac_cv_installed_clucene_version=`./conftest 2>&5` fi else echo "configure: failed program was:" >&AC_FD_CC AC_MSG_ERROR([Failed to compile the test program to check the CLucene version! Please have a look at config.log! Report this to the BibleTime developers!]); cat conftest.$ac_ext >&AC_FD_CC fi rm -f conftest* CXXFLAGS="$ac_cxxflags_safe" LDFLAGS="$ac_ldflags_safe" LIBS="$ac_libs_safe" LD_LIBRARY_PATH="$ac_LD_LIBRARY_PATH_safe" export LD_LIBRARY_PATH LIBRARY_PATH="$ac_LIBRARY_PATH" export LIBRARY_PATH AC_LANG_RESTORE ]) if test "x$ac_cv_installed_clucene_version" = "xok"; then AC_MSG_RESULT([ok, version is recent enough]); elif test "x$ac_cv_installed_clucene_version" = "xnot-ok"; then AC_MSG_RESULT([installed]); AC_MSG_ERROR([Your CLucene version is not recent enough! Please upgrade to version >= 0.9.16!]); fi; ])