| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514 |
- dnl ---------------------------------------------------------------------------
- dnl Macro: AC_CHECK_MYSQL
- dnl Check for custom MySQL paths in --with-mysql-* options.
- dnl If some paths are missing, check if mysql_config exists.
- dnl ---------------------------------------------------------------------------
- AC_DEFUN([AC_CHECK_MYSQL],[
- mysqlconfig_locations="mysql_config /usr/bin/mysql_config /usr/local/bin/mysql_config /usr/local/mysql/bin/mysql_config /opt/mysql/bin/mysql_config /usr/pkg/bin/mysql_config"
- user_mysql_includes=
- user_mysql_libs=
- # check explicit MySQL root for mysql_config, include, lib
- if test [ x$1 != xyes -a x$1 != xno ]
- then
- mysqlroot=`echo $1 | sed -e 's+/$++'`
- if test [ -x "$mysqlroot/bin/mysql_config" ]
- then
- # if there's mysql_config, that's the best route
- mysqlconfig_locations="$mysqlroot/bin/mysql_config"
- elif test [ -d "$mysqlroot/include" -a -d "$mysqlroot/lib" ]
- then
- # explicit root; do not check well-known paths
- mysqlconfig_locations=
- # includes
- if test [ -d "$mysqlroot/include/mysql" ]
- then
- user_mysql_includes="$mysqlroot/include/mysql"
- else
- user_mysql_includes="$mysqlroot/include"
- fi
- # libs
- if test [ -d "$mysqlroot/lib/mysql" ]
- then
- user_mysql_libs="$mysqlroot/lib/mysql"
- else
- user_mysql_libs="$mysqlroot/lib"
- fi
- else
- AC_MSG_ERROR([invalid MySQL root directory '$mysqlroot'; neither bin/mysql_config, nor include/ and lib/ were found there])
- fi
- fi
- # try running mysql_config
- AC_MSG_CHECKING([for mysql_config])
- for mysqlconfig in $mysqlconfig_locations
- do
- if test [ -n "$mysqlconfig" ]
- then
- MYSQL_CFLAGS=`${mysqlconfig} --cflags 2>/dev/null`
- MYSQL_LIBS=`${mysqlconfig} --libs 2>/dev/null`
- if test [ $? -eq 0 ]
- then
- MYSQL_PKGLIBDIR=`echo $MYSQL_LIBS | sed -e 's/-[[^L]][[^ ]]*//g;s/\s*-L//g;'`
- AC_MSG_RESULT([$mysqlconfig])
- mysqlconfig=
- break
- else
- MYSQL_CFLAGS=
- MYSQL_LIBS=
- MYSQL_PKGLIBDIR=
- fi
- fi
- done
- if test [ -n "$mysqlconfig" ]
- then
- mysqlconfig_used=
- AC_MSG_RESULT([not found])
- else
- mysqlconfig_used=yes
- fi
- # if there's nothing from mysql_config, check well-known include paths
- # explicit overrides will be applied later
- if test [ -z "$MYSQL_CFLAGS" ]
- then
- for CANDIDATE in "$user_mysql_includes" "/usr/local/mysql/include" "/usr/local/mysql/include/mysql" \
- "/usr/include/mysql"
- do
- if test [ -n "$CANDIDATE" -a -r "$CANDIDATE/mysql.h" ]
- then
- MYSQL_CFLAGS="-I$CANDIDATE"
- break
- fi
- done
- fi
- # if there's nothing from mysql_config, check well-known library paths
- # explicit overrides will be applied later
- if test [ -z "$MYSQL_LIBS" ]
- then
- for CANDIDATE in "$user_mysql_libs" "/usr/lib64/mysql" \
- "/usr/local/mysql/lib/mysql" "/usr/local/mysql/lib" \
- "/usr/local/lib/mysql" "/usr/lib/mysql" \
- "/opt/mysql/lib/mysql" "/usr/pkg/lib/mysql"
- do
- if test [ -n "$CANDIDATE" -a -d "$CANDIDATE" ]
- then
- MYSQL_LIBS="-L$CANDIDATE -lmysqlclient -lz"
- MYSQL_PKGLIBDIR="$CANDIDATE"
- break
- fi
- done
- fi
- # apply explicit include path overrides
- AC_ARG_WITH([mysql-includes],
- AC_HELP_STRING([--with-mysql-includes], [path to MySQL header files]),
- [ac_cv_mysql_includes=$withval])
- if test [ -n "$ac_cv_mysql_includes" ]
- then
- MYSQL_CFLAGS="-I$ac_cv_mysql_includes"
- fi
- # apply explicit lib path overrides
- AC_ARG_WITH([mysql-libs],
- AC_HELP_STRING([--with-mysql-libs], [path to MySQL libraries]),
- [ac_cv_mysql_libs=$withval])
- if test [ -n "$ac_cv_mysql_libs" ]
- then
- # Trim trailing '.libs' if user passed it in --with-mysql-libs option
- ac_cv_mysql_libs=`echo ${ac_cv_mysql_libs} | sed -e 's/.libs$//' \
- -e 's+.libs/$++'`
- MYSQL_LIBS="-L$ac_cv_mysql_libs -lmysqlclient -lz"
- MYSQL_PKGLIBDIR="$ac_cv_mysql_libs"
- fi
- # if we got options from mysqlconfig try to actually use them
- if test [ -n "$mysqlconfig_used" -a -n "$MYSQL_CFLAGS" -a -n "$MYSQL_LIBS" ]
- then
- _CFLAGS=$CFLAGS
- _LIBS=$LIBS
-
- CFLAGS="$CFLAGS $MYSQL_CFLAGS"
- LIBS="$LIBS $MYSQL_LIBS"
-
- AC_CHECK_FUNC(mysql_real_connect,[],
- [
- # if mysql binary was built using a different compiler and we
- # got options from mysql_config some of them might not work
- # with compiler we will be using
-
- # throw away everything that isn't one of -D -L -I -l and retry
- MYSQL_CFLAGS=`echo $MYSQL_CFLAGS | sed -e 's/-[[^DLIl]][[^ ]]*//g'`
- MYSQL_LIBS=`echo $MYSQL_LIBS | sed -e 's/-[[^DLIl]][[^ ]]*//g'`
- CFLAGS="$_CFLAGS $MYSQL_CFLAGS"
- LIBS="$_LIBS $MYSQL_LIBS"
- unset ac_cv_func_mysql_real_connect
- AC_CHECK_FUNC(mysql_real_connect,[],
- [
- # ... that didn't help
- # clear flags, the code below will complain
- MYSQL_CFLAGS=
- MYSQL_LIBS=
- MYSQL_PKGLIBDIR=
- ])
- ])
- CFLAGS=$_CFLAGS
- LIBS=$_LIBS
- fi
- # now that we did all we could, perform final checks
- AC_MSG_CHECKING([MySQL include files])
- if test [ -z "$MYSQL_CFLAGS" ]
- then
- AC_MSG_ERROR([missing include files.
- ******************************************************************************
- ERROR: cannot find MySQL include files.
- Check that you do have MySQL include files installed.
- The package name is typically 'mysql-devel'.
- If include files are installed on your system, but you are still getting
- this message, you should do one of the following:
- 1) either specify includes location explicitly, using --with-mysql-includes;
- 2) or specify MySQL installation root location explicitly, using --with-mysql;
- 3) or make sure that the path to 'mysql_config' program is listed in
- your PATH environment variable.
- To disable MySQL support, use --without-mysql option.
- ******************************************************************************
- ])
- else
- AC_MSG_RESULT([$MYSQL_CFLAGS])
- fi
- AC_MSG_CHECKING([MySQL libraries])
- if test [ -z "$MYSQL_LIBS" ]
- then
- AC_MSG_ERROR([missing libraries.
- ******************************************************************************
- ERROR: cannot find MySQL libraries.
- Check that you do have MySQL libraries installed.
- The package name is typically 'mysql-devel'.
- If libraries are installed on your system, but you are still getting
- this message, you should do one of the following:
- 1) either specify libraries location explicitly, using --with-mysql-libs;
- 2) or specify MySQL installation root location explicitly, using --with-mysql;
- 3) or make sure that the path to 'mysql_config' program is listed in
- your PATH environment variable.
- To disable MySQL support, use --without-mysql option.
- ******************************************************************************
- ])
- else
- AC_MSG_RESULT([$MYSQL_LIBS])
- fi
- ])
- dnl ---------------------------------------------------------------------------
- dnl Macro: AC_CHECK_PGSQL
- dnl First check for custom PostgreSQL paths in --with-pgsql-* options.
- dnl If some paths are missing, check if pg_config exists.
- dnl ---------------------------------------------------------------------------
- AC_DEFUN([AC_CHECK_PGSQL],[
- # Check for custom includes path
- if test [ -z "$ac_cv_pgsql_includes" ]
- then
- AC_ARG_WITH([pgsql-includes],
- AC_HELP_STRING([--with-pgsql-includes], [path to PostgreSQL header files]),
- [ac_cv_pgsql_includes=$withval])
- fi
- if test [ -n "$ac_cv_pgsql_includes" ]
- then
- AC_CACHE_CHECK([PostgreSQL includes], [ac_cv_pgsql_includes], [ac_cv_pgsql_includes=""])
- PGSQL_CFLAGS="-I$ac_cv_pgsql_includes"
- fi
- # Check for custom library path
- if test [ -z "$ac_cv_pgsql_libs" ]
- then
- AC_ARG_WITH([pgsql-libs],
- AC_HELP_STRING([--with-pgsql-libs], [path to PostgreSQL libraries]),
- [ac_cv_pgsql_libs=$withval])
- fi
- if test [ -n "$ac_cv_pgsql_libs" ]
- then
- AC_CACHE_CHECK([PostgreSQL libraries], [ac_cv_pgsql_libs], [ac_cv_pgsql_libs=""])
- PGSQL_PKGLIBDIR="$ac_cv_pgsql_libs"
- PGSQL_LIBS="-L$PGSQL_PKGLIBDIR -lpq"
- fi
- # If some path is missing, try to autodetermine with pgsql_config
- if test [ -z "$ac_cv_pgsql_includes" -o -z "$ac_cv_pgsql_libs" ]
- then
- if test [ -z "$pgconfig" ]
- then
- AC_PATH_PROG(pgconfig,pg_config)
- fi
- if test [ -z "$pgconfig" ]
- then
- AC_MSG_ERROR([pg_config executable not found
- ********************************************************************************
- ERROR: cannot find PostgreSQL libraries. If you want to compile with PosgregSQL support,
- you must either specify file locations explicitly using
- --with-pgsql-includes and --with-pgsql-libs options, or make sure path to
- pg_config is listed in your PATH environment variable. If you want to
- disable PostgreSQL support, use --without-pgsql option.
- ********************************************************************************
- ])
- else
- if test [ -z "$ac_cv_pgsql_includes" ]
- then
- AC_MSG_CHECKING(PostgreSQL C flags)
- PGSQL_CFLAGS="-I`${pgconfig} --includedir`"
- AC_MSG_RESULT($PGSQL_CFLAGS)
- fi
- if test [ -z "$ac_cv_pgsql_libs" ]
- then
- AC_MSG_CHECKING(PostgreSQL linker flags)
- PGSQL_PKGLIBDIR=`${pgconfig} --libdir`
- PGSQL_LIBS="-L$PGSQL_PKGLIBDIR -lpq"
- AC_MSG_RESULT($PGSQL_LIBS)
- fi
- fi
- fi
- ])
- dnl ---------------------------------------------------------------------------
- dnl Macro: AC_CHECK_LIBSTEMMER
- dnl Check the libstemmer first in custom include path in --with-libstemmer=*
- dnl If not given, try to guess common shared libs, and finally fall back into
- dnl old sphinx way which invokes statically linked lib built from the sources
- dnl ---------------------------------------------------------------------------
- AC_DEFUN([AC_CHECK_LIBSTEMMER],[
- # cflags and libs
- LIBSTEMMER_CFLAGS=
- LIBSTEMMER_LIBS=
- # First check, if we have the sources of internal libstemmer.
- # If so, it has the max. priority over any other possibilities
- if test -d ./libstemmer_c && test -f libstemmer_c/include/libstemmer.h; then
- ac_cv_use_internal_libstemmer=yes
- LIBSTEMMER_LIBS="\$(top_srcdir)/libstemmer_c/libstemmer.a"
- LIBSTEMMER_CFLAGS="-I\$(top_srcdir)/libstemmer_c/include"
- else
- # possible includedir paths
- includedirs="/usr/include /usr/include/libstemmer /usr/include/libstemmer_c"
- # possible libdirs -- 64bit first in case of multiarch environments
- libdirs="/usr/lib/x86_64-linux-gnu /usr/lib64 /usr/local/lib64 /usr/lib/i386-linux-gnu /usr/lib /usr/local/lib"
- # possible libnames -- shared one first, then static one
- libnames="stemmer stemmer_c"
- # was (include) path explicitely given?
- if test [ -n "$ac_cv_use_libstemmer" -a x$ac_cv_use_libstemmer != xyes]; then
- includedirs=$ac_cv_use_libstemmer
- fi
- # try to find header files
- for includedir in $includedirs
- do
- if test [ -f $includedir/libstemmer.h ]; then
- LIBSTEMMER_CFLAGS="-I$includedir"
- break
- fi
- done
- # try to find shared library
- for libname in $libnames
- do
- for libdir in $libdirs
- do
- if test [ -f $libdir/lib${libname}.so ]; then
- LIBSTEMMER_LIBS="-L$libdir -l$libname"
- break 2
- fi
- done
- done
- # if not found, check static libs
- if test [ -z "$LIBSTEMMER_LIBS" ]; then
- for libname in $libnames
- do
- for libdir in $libdirs
- do
- if test [ -f $libdir/lib${libname}.a ]; then
- LIBSTEMMER_LIBS="$libdir/lib${libname}.a"
- break 2
- fi
- done
- done
- fi
- fi
- # Now we either have libstemmer, or not
- if test [ -z "$LIBSTEMMER_LIBS" ]; then
- AC_MSG_ERROR([missing libstemmer sources from libstemmer_c.
- Please download the C version of libstemmer library from
- http://snowball.tartarus.org/ and extract its sources over libstemmer_c/
- subdirectory in order to build Sphinx with libstemmer support. Or
- install the package named like 'libstemmer-dev' using your favorite
- package manager.
- ])
- fi
- ])
- dnl ---------------------------------------------------------------------------
- dnl Macro: AC_CHECK_RE2
- dnl Check user-specified path in --with-re2=*, then check ./libre2 path.
- dnl Finally check for installed libraries and headers if present.
- dnl Also libraries and headers paths can be given using --with-re2-libs and
- dnl --with-re2-includes
- dnl ---------------------------------------------------------------------------
- AC_DEFUN([AC_CHECK_RE2],[
- # Includes and libraries
- LIBRE2_CFLAGS=
- LIBRE2_LIBS=
- # First check if include path was explicitly given.
- # If so, it has the maximum priority over any other possibilities
- if test [ -n "$ac_cv_use_re2" -a x$ac_cv_use_re2 != xyes]; then
- re2include=$ac_cv_use_re2
- if test [ -f $re2include/re2/re2.h ]; then
- LIBRE2_CFLAGS="-I$re2include"
- LIBRE2_LIBS="$re2include/obj/libre2.a"
- # Use re2 Makefile if present
- if test [ -f $re2include/Makefile ]; then
- LIBRE2_PATH="$re2include"
- fi
- fi
- else
- # Check if there any sources in ./libre2 path
- if test -d ./libre2 && test -f ./libre2/re2/re2.h; then
- ac_cv_use_re2=yes
- LIBRE2_LIBS="\$(top_srcdir)/libre2/obj/libre2.a"
- LIBRE2_CFLAGS="-I\$(top_srcdir)/libre2"
- LIBRE2_PATH="libre2"
- else
- # Possible include paths
- re2includedirs="/usr/include /usr/include/re2"
- # Possible libraries paths
- re2libdirs="/usr/lib/x86_64-linux-gnu /usr/lib64 /usr/local/lib64 /usr/lib/i386-linux-gnu /usr/lib /usr/local/lib"
- # Trying to find installed header files
- for re2includedir in $re2includedirs
- do
- if test [ -f $re2includedir/re2/re2.h ]; then
- LIBRE2_CFLAGS="-I$re2includedir"
- break
- fi
- done
- # Trying to find installed libraries
- for re2libdir in $re2libdirs
- do
- if test [ -f $re2libdir/libre2.a ]; then
- LIBRE2_LIBS="$re2libdir/libre2.a"
- break 2
- fi
- done
- fi
- fi
- # Apply explicit include path overrides
- if test x$ac_cv_re2_includes != xno; then
- if test [ -f $ac_cv_re2_includes/re2/re2.h ]; then
- LIBRE2_CFLAGS="-I$ac_cv_re2_includes"
- else
- AC_MSG_ERROR([missing re2 headers])
- fi
- fi
- # Apply explicit lib path overrides
- if test x$ac_cv_re2_libs != xno; then
- if test [ -f "$ac_cv_re2_libs" ]; then
- LIBRE2_LIBS="$ac_cv_re2_libs"
- else
- AC_MSG_ERROR([missing re2 library libre2.a])
- fi
- fi
- # Now we either have re2, or not
- if test [ -z "$LIBRE2_LIBS" ]; then
- AC_MSG_ERROR([missing re2 sources])
- fi
- ])
- dnl ---------------------------------------------------------------------------
- dnl Macro: SPHINX_CONFIGURE_PART
- dnl
- dnl Tells what stage is ./configure running now, nicely formatted
- dnl ---------------------------------------------------------------------------
- dnl SPHINX_CONFIGURE_PART(MESSAGE)
- AC_DEFUN([SPHINX_CONFIGURE_PART],[
- AC_MSG_RESULT()
- AC_MSG_RESULT([$1])
- TMP=`echo $1 | sed -e sX.X-Xg`
- AC_MSG_RESULT([$TMP])
- AC_MSG_RESULT()
- ])
- dnl ---------------------------------------------------------------------------
- dnl Macro: SPHINX_CHECK_DEFINE
- dnl
- dnl Checks if this symbol is defined in that header file
- dnl ---------------------------------------------------------------------------
- AC_DEFUN([SPHINX_CHECK_DEFINE],[
- AC_CACHE_CHECK([for $1 in $2],ac_cv_define_$1,[
- AC_EGREP_CPP(YES_IS_DEFINED, [
- #include <$2>
- #ifdef $1
- YES_IS_DEFINED
- #endif
- ], ac_cv_define_$1=yes, ac_cv_define_$1=no)
- ])
- if test "$ac_cv_define_$1" = "yes"; then
- AC_DEFINE(HAVE_$1, 1, [Define if $1 is defined in $2])
- fi
- ])
|