mirror of
https://gitee.com/clygintang/Dockfile-Coreseek.git
synced 2025-07-21 00:00:15 +08:00
424 lines
12 KiB
Plaintext
Executable File
424 lines
12 KiB
Plaintext
Executable File
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
|
|
AC_MSG_RESULT([$mysqlconfig])
|
|
mysqlconfig=
|
|
break
|
|
else
|
|
MYSQL_CFLAGS=
|
|
MYSQL_LIBS=
|
|
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"
|
|
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"
|
|
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=
|
|
])
|
|
])
|
|
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_LIBS="-L$ac_cv_pgsql_libs -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_LIBS="-L`${pgconfig} --libdir` -lpq"
|
|
AC_MSG_RESULT($PGSQL_LIBS)
|
|
fi
|
|
fi
|
|
fi
|
|
])
|
|
|
|
dnl ---------------------------------------------------------------------------
|
|
dnl Macro: AC_CHECK_MMSEG
|
|
dnl First check for custom PostgreSQL paths in --with-mmseg-* options.
|
|
dnl If some paths are missing, check if pg_config exists.
|
|
dnl ---------------------------------------------------------------------------
|
|
|
|
AC_DEFUN([AC_CHECK_MMSEG],[
|
|
|
|
# if there's nothing from mysql_config, check well-known include paths
|
|
# explicit overrides will be applied later
|
|
if test [ -z "$MMSEG_CFLAGS" ]
|
|
then
|
|
for CANDIDATE in "$user_mmseg_includes" "/usr/local/include/mmseg" "/usr/include/mmseg"
|
|
do
|
|
if test [ -n "$CANDIDATE" -a -r "$CANDIDATE/Segmenter.h" ]
|
|
then
|
|
MMSEG_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 "$MMSEG_LIBS" ]
|
|
then
|
|
for CANDIDATE in "$user_mmseg_libs" "/usr/lib64" \
|
|
"/usr/local/lib" "/usr/local/mmseg/lib" \
|
|
"/usr/local/lib/mmseg" "/usr/lib" \
|
|
"/opt/mmseg/lib"
|
|
do
|
|
if test [ -n "$CANDIDATE" -a -d "$CANDIDATE" ]
|
|
then
|
|
MMSEG_LIBS="-L$CANDIDATE -lmmseg"
|
|
break
|
|
fi
|
|
done
|
|
fi
|
|
|
|
|
|
|
|
# apply explicit include path overrides
|
|
AC_ARG_WITH([mmseg-includes],
|
|
AC_HELP_STRING([--with-mmseg-includes], [path to libmmseg header files]),
|
|
[ac_cv_mmseg_includes=$withval])
|
|
if test [ -n "$ac_cv_mmseg_includes" ]
|
|
then
|
|
MMSEG_CFLAGS="-I$ac_cv_mmseg_includes"
|
|
fi
|
|
|
|
|
|
# apply explicit lib path overrides
|
|
AC_ARG_WITH([mmseg-libs],
|
|
AC_HELP_STRING([--with-mmseg-libs], [path to libmmseg libraries]),
|
|
[ac_cv_mmseg_libs=$withval])
|
|
if test [ -n "$ac_cv_mmseg_libs" ]
|
|
then
|
|
# Trim trailing '.libs' if user passed it in --with-mysql-libs option
|
|
ac_cv_mmseg_libs=`echo ${ac_cv_mmseg_libs} | sed -e 's/.libs$//' \
|
|
-e 's+.libs/$++'`
|
|
MMSEG_LIBS="-L$ac_cv_mmseg_libs -lmmseg"
|
|
fi
|
|
|
|
# now that we did all we could, perform final checks
|
|
AC_MSG_CHECKING([libmmseg include files])
|
|
if test [ -z "$MMSEG_CFLAGS" ]
|
|
then
|
|
AC_MSG_ERROR([missing include files.
|
|
|
|
******************************************************************************
|
|
ERROR: cannot find libmmseg include files.
|
|
|
|
To disable libmmseg support, use --without-mmseg option.
|
|
******************************************************************************
|
|
])
|
|
else
|
|
AC_MSG_RESULT([$MMSEG_CFLAGS])
|
|
fi
|
|
|
|
AC_MSG_CHECKING([libmmseg libraries])
|
|
if test [ -z "$MMSEG_LIBS" ]
|
|
then
|
|
AC_MSG_ERROR([missing libraries.
|
|
|
|
******************************************************************************
|
|
ERROR: cannot find libmmseg libraries.
|
|
|
|
To disable libmmseg support, use --without-mmseg option.
|
|
******************************************************************************
|
|
])
|
|
else
|
|
AC_MSG_RESULT([$MMSEG_LIBS])
|
|
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
|
|
])
|