diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 412 |
1 files changed, 412 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..bb687cb --- /dev/null +++ b/configure.ac @@ -0,0 +1,412 @@ +# --------------------------------------------------------------------- +# Initialisation +# --------------------------------------------------------------------- + +# Version change: Change line 8 only ! +# Change it immediately after a release + +AC_INIT(sword, 1.7.2, sword-bugs@crosswire.org, sword, http://crosswire.org/sword) +AC_CONFIG_SRCDIR(sword.bmp) +AC_PREREQ(2.52) +AC_REVISION($Revision: 1.45 $) + +AC_CANONICAL_TARGET +AM_INIT_AUTOMAKE + +AM_CONFIG_HEADER(include/config.h) + +AC_CONFIG_MACRO_DIR([m4]) + +case $host_os in + mingw*) + # both lines necessary to convince gcc to build dll + LIBS="$LIBS -no-undefined"; + export lt_cv_deplibs_check_method=pass_all; + ;; +esac + +# --------------------------------------------------------------------- +# Check Programs +# --------------------------------------------------------------------- +CFLAGS=" $CFLAGS" +CXXFLAGS=" $CXXFLAGS" +AC_LANG(C++) +AC_PROG_CC +AC_PROG_CXX +AC_PROG_INSTALL +AC_LIBTOOL_WIN32_DLL +AC_PROG_LIBTOOL + +AC_C_BIGENDIAN + +PKG_CHECK_MODULES([CLUCENE2], [libclucene-core >= 2.3],,true) +if test "x$CLUCENE2_LIBS" = x; then +ACX_CLUCENE +fi + +# --------------------------------------------------------------------- +# With options +# --------------------------------------------------------------------- +AC_ARG_WITH(zlib, + AC_HELP_STRING([--with-zlib],[allow zlib compressed modules (default=yes)]),,with_zlib=yes) +AC_ARG_WITH(icu, + AC_HELP_STRING([--with-icu],[use ICU for unicode (default=yes)]),,with_icu=yes) +AC_ARG_WITH(icusword, + AC_HELP_STRING([--with-icusword],[use custom SWORD ICU (default=no)]),,with_icusword=no) +AC_ARG_WITH(conf, + AC_HELP_STRING([--with-conf],[install a new sword.conf (default=yes)]),,with_conf=yes) +AC_ARG_WITH(cxx11regex, + AC_HELP_STRING([--with-cxx11regex],[build regex support using c++11 regex (default=no)]),,with_cxx11regex=no) +AC_ARG_WITH(curl, + AC_HELP_STRING([--with-curl],[build install manager support using libcurl (default=yes)]),,with_curl=yes) +AC_ARG_WITH(curl_sftp, + AC_HELP_STRING([--with-curl_sftp],[build install manager support using libcurl+sftp (requires --with-curl, default=yes)]),,with_curl_sftp=yes) +#AC_ARG_WITH(lucene, +# AC_HELP_STRING([--with-lucene],[include lucene support for searching (default=no)]),,with_lucene=no) +AC_ARG_WITH([internalregex], + AS_HELP_STRING([--with-internalregex], [Compile using SWORDs internal copy of regex])) + + +# --------------------------------------------------------------------- +# Enable options +# --------------------------------------------------------------------- +AC_ARG_ENABLE(debug, + AC_HELP_STRING([--enable-debug],[build debug library (default=no)]),,enable_debug=no) +AC_ARG_ENABLE(warnings, + AC_HELP_STRING([--enable-warnings],[build with compiler warnings as errors (default=no)]),,enable_warnings=no) +AC_ARG_ENABLE(profile, + AC_HELP_STRING([--enable-profile],[allow profiling (default=no)]),,enable_profile=no) +AC_ARG_ENABLE(profilefn, + AC_HELP_STRING([--enable-profilefn],[allow functioncheck profiling (default=no)]),,enable_profilefn=no) +AC_ARG_ENABLE(tests, + AC_HELP_STRING([--enable-tests],[build test programs (default=yes)]),,enable_tests=yes) +AC_ARG_ENABLE(utilities, + AC_HELP_STRING([--enable-utilities],[build utilities (default=yes)]),,enable_utilities=yes) +AC_ARG_ENABLE(examples, + AC_HELP_STRING([--enable-examples],[build examples (default=no)]),,enable_examples=no) +AM_MAINTAINER_MODE + +# --------------------------------------------------------------------- +# Debug and profile +# --------------------------------------------------------------------- + +# these are first because the SET AM_C.*FLAGS, not just append +if test x$enable_debug = xyes; then + GCJFLAGS="-g -O0" + if test x$ac_cv_prog_cc_g = xyes; then + AM_CFLAGS="-g3 -O0 -Wall -Werror" + else + AM_CFLAGS="-O0 -Wall -Werror" + fi + if test x$ac_cv_prog_cxx_g = xyes; then + AM_CXXFLAGS="-g3 -O0 -Wall -Werror -Woverloaded-virtual" + else + AM_CXXFLAGS="-O0 -Wall -Werror -Woverloaded-virtual" + fi +else + AM_CFLAGS="-O3" + AM_CXXFLAGS="-O3" +fi + +AM_CFLAGS="$AM_CFLAGS -fPIC" +AM_CXXFLAGS="$AM_CXXFLAGS -fPIC" + +# --------------------------------------------------------------------- +# Check libraries +# --------------------------------------------------------------------- +if test x$with_zlib = xyes; then + AC_CHECK_LIB(z, compress,,with_zlib="no") +else + with_zlib="no" +fi + +if test x$with_zlib = xno; then + AM_CFLAGS="$AM_CFLAGS -DEXCLUDEZLIB" + AM_CXXFLAGS="$AM_CXXFLAGS -DEXCLUDEZLIB" +fi + +AS_IF([test "x$with_internalregex" = "xyes"], + [have_systemregex="no"], + [AC_SEARCH_LIBS(regexec, regex, [have_systemregex="yes"], [have_systemregex="no"])]) + +AS_IF([test "x$have_systemregex" = "xyes"], + [with_internalregex="no" + AC_MSG_NOTICE([Using system regex.h])], + [with_internalregex="yes" + AS_IF([test "x$with_internalregex" = "xno"], + [AC_MSG_ERROR([System regex forced but not found])], + [AC_MSG_NOTICE([Using internal regex.h])])]) + + +# --------------------------------------------------------------------- +# Find CppUnit +# --------------------------------------------------------------------- +# Locate CppUnit (minimum version 1.8.0) for testing. +AM_PATH_CPPUNIT(1.8.0) + +# You can set up an automake conditional and use it to conditionally +# build cppunit-using test programs. +AM_CONDITIONAL(HAVE_CPPUNIT, test "$CPPUNIT_LIBS") + + +# --------------------------------------------------------------------- +# Find pkg-config +# --------------------------------------------------------------------- +use_pkgconfig=yes +AC_PATH_PROG(PKG_CONFIG, pkg-config, no) +if test x$PKG_CONFIG = xno ; then + AC_MSG_WARN([*** pkg-config not found. See http://www.freedesktop.org/software/pkgconfig/]) + AC_MSG_WARN([not using pkg-config]) + use_pkgconfig=no +fi + +if $PKG_CONFIG --atleast-pkgconfig-version 0.14 ; then + : +else + AC_MSG_WARN([*** pkg-config too old; version 0.14 or better required.]) + AC_MSG_WARN([not using pkg-config]) + use_pkgconfig=no +fi + + +# --------------------------------------------------------------------- +# Find ICU tools +# --------------------------------------------------------------------- +ICU_VER= +ICU_LIBS= +ICU_IOLIBS= +if test x$with_icu = xyes; then + AC_PATH_PROG(ICU_CONFIG, icu-config, no) +# The icu-config script was new in icu 2.2 + if test "$ICU_CONFIG" = "no" ; then + echo "*** The icu-config script installed by icu could not be found" + echo "*** continuing anyway and assuming 2.1 or earlier" + ICU_VER="2.1" + ICU_LIBS="-licui18n -licuuc -licudata" + ICU_IOLIBS="-lustdio" + else + ICU_VER=`$ICU_CONFIG --version` + ICU_LIBS=`$ICU_CONFIG --ldflags` + #ICU_IOLIBS=`if test $(echo "$ICU_VER >= 3.0"|bc) -eq 1; then $ICU_CONFIG --ldflags-icuio; else $ICU_CONFIG --ldflags-ustdio; fi;` + ICU_IOLIBS=`$ICU_CONFIG --ldflags-icuio` + fi + AM_CXXFLAGS="$AM_CXXFLAGS -D_ICU_" + AM_CFLAGS="$AM_CFLAGS -D_ICU_" +fi + +if test "x$ICU_LIBS" != x; then + with_icu=yes + LIBS="$LIBS $ICU_LIBS $ICU_IOLIBS" +else + with_icu=no +fi + + +if test x$with_icusword = xyes; then +AM_CXXFLAGS="$AM_CXXFLAGS -D_ICUSWORD_" +AM_CFLAGS="$AM_CFLAGS -D_ICUSWORD_" +fi + + +AM_CXXFLAGS="$AM_CXXFLAGS -ftemplate-depth-25" + +if test x$enable_warnings = xyes; then + AM_CFLAGS="$AM_CFLAGS -Werror" + AM_CXXFLAGS="$AM_CXXFLAGS -Werror -Woverloaded-virtual" +fi + +if test x$enable_profile = xyes; then + AM_CFLAGS="$AM_CFLAGS -pg" + AM_CXXFLAGS="$AM_CXXFLAGS -pg" +fi +if test x$enable_profilefn = xyes; then + AM_CFLAGS="$AM_CFLAGS -g -finstrument-functions" + AM_CXXFLAGS="$AM_CXXFLAGS -g -finstrument-functions" + LIBS="$LIBS -g -finstrument-functions -lfnccheck" +fi + +# --------------------------------------------------------------------- +# Check for curl for installmgr suport +# --------------------------------------------------------------------- + +with_internalftplib=no +if test x$with_curl = xyes; then + AC_PATH_PROG(CURL_CONFIG, curl-config, no) + if test "$CURL_CONFIG" = "no" ; then + echo "*** The curl-config script installed by curl could not be found" + echo "*** compiling without libcurl support" + with_curl=no + with_curl_sftp=no + with_internalftplib=yes + else + echo "curl found - remote install options available" + CURL_AM_CFLAGS=`$CURL_CONFIG --cflags` + CURL_LIBS=`$CURL_CONFIG --libs` + AM_CXXFLAGS="$AM_CXXFLAGS -DCURLAVAILABLE $CURL_AM_CFLAGS" + AM_CFLAGS="$AM_CFLAGS -DCURLAVAILABLE $CURL_AM_CFLAGS" + LIBS="$LIBS $CURL_LIBS" + if test x$with_curl_sftp = xyes; then + if test x`$CURL_CONFIG --protocols|grep SFTP|wc -l` = x1; then + AM_CXXFLAGS="$AM_CXXFLAGS -DCURLSFTPAVAILABLE" + AM_CFLAGS="$AM_CFLAGS -DCURLSFTPAVAILABLE" + else + with_curl_sftp=no; + fi + fi + fi +else + with_curl=no; + with_curl_sftp=no; + with_internalftplib=yes +fi + +if test x$with_cxx11regex = xyes; then + AM_CXXFLAGS="$AM_CXXFLAGS -DUSECXX11REGEX -std=c++11 -ftemplate-depth=100" +fi + +# --------------------------------------------------------------------- +# Check for clucene for lucene searching support +# --------------------------------------------------------------------- + +# NOTE the $libdir hack at the end of the c[xx]flags. Apparently F16 finds that clucene is not multilib-save and places some include files in /usr/lib[64]/ +with_clucene=no +if test "x$CLUCENE2_LIBS" != x; then + echo "clucene 2.x found - lucene searching options available" + AM_CXXFLAGS="$AM_CXXFLAGS $CLUCENE2_CFLAGS -DUSELUCENE -DCLUCENE2 -I$libdir" + AM_CFLAGS="$AM_CFLAGS $CLUCENE2_CFLAGS -DUSELUCENE -DCLUCENE2 -I$libdir" + LIBS="$LIBS $CLUCENE2_LIBS" + with_clucene="yes 2.x" + CLUCENE_LIBS="$CLUCENE_LIBS $CLUCENE2_LIBS" +else +if test "x$CLUCENE_LIBS" != x; then + echo "lucene 0.x found - lucene searching options available" + AM_CXXFLAGS="$AM_CXXFLAGS $CLUCENE_CXXFLAGS -DUSELUCENE -I$libdir" + AM_CFLAGS="$AM_CFLAGS -DUSELUCENE -I$libdir" + LIBS="$LIBS $CLUCENE_LIBS" + with_clucene="yes 0.x" +else + echo "lucene searching options not available" +fi +fi + +AC_CHECK_FUNCS(vsnprintf, [have_vsnprintf="yes"]) + +# --------------------------------------------------------------------- +# Alter global conf directory only if not /etc +# --------------------------------------------------------------------- + +if test "x$sysconfdir" = "x/etc"; then + dir_confdef="no" +else + dir_confdef="yes" +fi + +changequote(<<,>>) +V1=`expr $VERSION : '\([0-9]*\)\.[0-9]*\.*[0-9]*\.*[0-9]*'` +V2=`expr $VERSION : '[0-9]*\.\([0-9]*\)\.*[0-9]*\.*[0-9]*'` +V3=`expr $VERSION : '[0-9]*\.[0-9]*\.*\([0-9]*\)\.*[0-9]*'` +V4=`expr $VERSION : '[0-9]*\.[0-9]*\.*[0-9]*\.*\([0-9]*\)'` +changequote([,]) + +SWORD_VERSION_STR=$VERSION +SWORD_VERSION_MAJOR=$V1 +SWORD_VERSION_MINOR=$V2 +SWORD_VERSION_MICRO=$V3 +if test "$V4" = "" ; then V4=0; fi +SWORD_VERSION_NANO=$V4 + +if test "$V2" -le 9 ; then V2=0$V2 ; fi +if test "$V3" -le 9 ; then V3=00$V3 ; elif test "$V3" -le 99 ; then V3=0$V3 ; fi +if test "$V4" -le 9 ; then V4=00$V4 ; elif test "$V4" -le 99 ; then V4=0$V4 ; fi +SWORD_VERSION_NUM=$V1$V2$V3$V4 + +AC_SUBST(SWORD_VERSION_NUM) +AC_SUBST(SWORD_VERSION_STR) +AC_SUBST(SWORD_VERSION_MAJOR) +AC_SUBST(SWORD_VERSION_MINOR) +AC_SUBST(SWORD_VERSION_MICRO) +AC_SUBST(SWORD_VERSION_NANO) + + + +# --------------------------------------------------------------------- +# Substitute variables into makefiles +# --------------------------------------------------------------------- +AC_SUBST(with_zlib) +AC_SUBST(with_icu) +AC_SUBST(with_icusword) +AC_SUBST(with_conf) +AC_SUBST(dir_confdef) +AC_SUBST(CC) +AC_SUBST(ICU_VER) +AC_SUBST(enable_debug) +AC_SUBST(enable_profile) + +AC_SUBST(AM_CXXFLAGS) +AC_SUBST(AM_CFLAGS) + +AC_SUBST(target_cpu) +AC_SUBST(target_vendor) +AC_SUBST(target_os) + +AC_SUBST(target_system) +AC_SUBST(target_mingw32) + +AC_SUBST(CURL_LIBS) +AC_SUBST(ICU_LIBS) +AC_SUBST(ICU_IOLIBS) +AC_SUBST(CLUCENE_LIBS) + + +# --------------------------------------------------------------------- +# Conditional variables +# --------------------------------------------------------------------- + +AM_CONDITIONAL(HAVE_LIBZ, test x$with_zlib = xyes) +AM_CONDITIONAL(HAVE_ICU, test x$with_icu = xyes) +AM_CONDITIONAL(HAVE_ICUSWORD, test x$with_icusword = xyes) +AM_CONDITIONAL(HAVE_VSNPRINTF, test x$have_vsnprintf = xyes) + +AM_CONDITIONAL(USELUCENE, test "x$with_clucene" != xno) +AM_CONDITIONAL(SHAREDLIB, test x$enable_shared = xyes) +AM_CONDITIONAL(INSTCONF, test x$with_conf = xyes) +AM_CONDITIONAL(USECXX11REGEX, test x$with_cxx11regex = xyes) +AM_CONDITIONAL(WITHCURL, test x$with_curl = xyes) +AM_CONDITIONAL(WITHCURLSFTP, test x$with_curl_sftp = xyes) +AM_CONDITIONAL(INTERNALFTPLIB, test x$with_internalftplib = xyes) +AM_CONDITIONAL(USE_INTERNAL_REGEX, test x$with_internalregex = xyes) +AM_CONDITIONAL(CONFDEF, test x$dir_confdef = xyes) +AM_CONDITIONAL(USE_PKGCONF, test x$use_pkgconfig = xyes) +AM_CONDITIONAL(BUILDTESTS, test x$enable_tests = xyes) +AM_CONDITIONAL(BUILDUTILS, test x$enable_utilities = xyes) +AM_CONDITIONAL(BUILDEXAMPLES, test x$enable_examples = xyes) + +# --------------------------------------------------------------------- +# Final output +# --------------------------------------------------------------------- +AC_CONFIG_FILES(Makefile lib/Makefile tests/Makefile tests/cppunit/Makefile utilities/Makefile examples/Makefile examples/cmdline/Makefile utilities/diatheke/Makefile sword.pc include/swversion.h sword.spec) +AC_OUTPUT + +echo +echo +echo "Configuration:" +echo " LIBDIR: $libdir" +echo " DEBUG: $enable_debug" +echo " PROFILE: $enable_profile" +echo " BUILD TESTS: $enable_tests" +echo " BUILD EXAMPLES: $enable_examples" +echo " BUILD UTILITIES: $enable_utilities" +echo " LIBZ: $with_zlib" +echo " ICU: $with_icu" +echo " ICUSWORD: $with_icusword" +echo " CXX11REGEX: $with_cxx11regex" +echo " CURL: $with_curl" +echo " CURL SFTP: $with_curl_sftp" +echo " INTERNAL FTPLIB: $with_internalftplib" +echo " INTERNAL REGEX: $with_internalregex" +echo " CLUCENE: $with_clucene" +echo +echo + + + |