4 Star 8 Fork 10

strwei / sphinx-jieba

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
acinclude.m4 15.15 KB
一键复制 编辑 原始数据 按行查看 历史
frankee 提交于 2015-12-08 11:17 . update to 2.2.9
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
])
C++
1
https://gitee.com/strwei/sphinx-jieba.git
git@gitee.com:strwei/sphinx-jieba.git
strwei
sphinx-jieba
sphinx-jieba
master

搜索帮助