You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
167 lines
5.1 KiB
167 lines
5.1 KiB
## -*- autoconf -*- |
|
dnl This file was created by Lee Carpenter <elc@carpie.net> |
|
dnl Later modified by Martin Gruner <mgruner@crosswire.org> |
|
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 <<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 --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; |
|
|
|
]) |
|
|
|
|