diff options
Diffstat (limited to 'clucene.m4')
-rw-r--r-- | clucene.m4 | 153 |
1 files changed, 153 insertions, 0 deletions
diff --git a/clucene.m4 b/clucene.m4 new file mode 100644 index 0000000..1287429 --- /dev/null +++ b/clucene.m4 @@ -0,0 +1,153 @@ +## -*- autoconf -*- +dnl This file was created by Lee Carpenter <[email protected]> +dnl Later modified by Martin Gruner <[email protected]> +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]) +ac_clucene_library_dirs="$ac_clucene_dir/lib $exec_prefix/lib $prefix/lib /usr/lib /usr/lib64 /usr/local/lib" + +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_ERROR(CLucene library not found. Try to use configure with --with-clucene-dir=/path/to/clucene); +fi + +if test "x$ac_static_clucene" = "xYES"; then + LIB_CLUCENE="$ac_cv_clucene_libdir/libclucene.a"; +else + LIB_CLUCENE="-lclucene"; +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" +LD_LIBRARY_PATH="$ac_cv_clucene_libdir" +export LD_LIBRARY_PATH +LIBRARY_PATH= +export LIBRARY_PATH + +cat > conftest.$ac_ext <<EOF +#include <iostream> +#include <swversion.h> +#include <CLucene/clucene-config.h> + +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 ${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; + +]) + |