mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
9d3d017c6c
added configure options PACKAGE and VERSION for ndb GuessConfig.sh: added options for PACKAGE and VERSION Epilogue.mk: Added target distdir ndb/Epilogue.mk: Added target distdir ndb/config/GuessConfig.sh: added options for PACKAGE and VERSION configure.in: added configure options PACKAGE and VERSION for ndb
2869 lines
82 KiB
Text
2869 lines
82 KiB
Text
dnl -*- ksh -*-
|
|
dnl Process this file with autoconf to produce a configure script.
|
|
|
|
AC_INIT(sql/mysqld.cc)
|
|
AC_CANONICAL_SYSTEM
|
|
# The Docs Makefile.am parses this line!
|
|
AM_INIT_AUTOMAKE(mysql, 4.1.2-alpha)
|
|
AM_CONFIG_HEADER(config.h)
|
|
|
|
PROTOCOL_VERSION=10
|
|
DOT_FRM_VERSION=6
|
|
# See the libtool docs for information on how to do shared lib versions.
|
|
SHARED_LIB_VERSION=14:0:0
|
|
|
|
# Set all version vars based on $VERSION. How do we do this more elegant ?
|
|
# Remember that regexps needs to quote [ and ] since this is run through m4
|
|
MYSQL_NO_DASH_VERSION=`echo $VERSION | sed -e "s|[[a-z]]*-.*$||"`
|
|
MYSQL_BASE_VERSION=`echo $MYSQL_NO_DASH_VERSION | sed -e "s|\.[[^.]]*$||"`
|
|
MYSQL_VERSION_ID=`echo $MYSQL_NO_DASH_VERSION. | sed -e 's/\./ /g; s/ \([[0-9]]\) / 0\\1 /g; s/ //g'`
|
|
|
|
# The port should be constant for a LONG time
|
|
MYSQL_TCP_PORT_DEFAULT=3306
|
|
MYSQL_UNIX_ADDR_DEFAULT="/tmp/mysql.sock"
|
|
|
|
# Remember to add a directory sql/share/LANGUAGE
|
|
AVAILABLE_LANGUAGES="\
|
|
czech danish dutch english estonian french german greek hungarian \
|
|
italian japanese korean norwegian norwegian-ny polish portuguese \
|
|
romanian russian slovak spanish swedish ukrainian"
|
|
|
|
# Generate make rules for all error messages
|
|
AVAILABLE_LANGUAGES_ERRORS=
|
|
AVAILABLE_LANGUAGES_ERRORS_RULES=$srcdir/ac_available_languages_fragment
|
|
rm -f $AVAILABLE_LANGUAGES_ERRORS_RULES
|
|
for i in $AVAILABLE_LANGUAGES
|
|
do
|
|
AVAILABLE_LANGUAGES_ERRORS="$AVAILABLE_LANGUAGES_ERRORS $i/errmsg.sys"
|
|
case $host_os in
|
|
netware* | modesto*)
|
|
echo "$i/errmsg.sys: $i/errmsg.txt
|
|
\$(top_builddir)/extra/comp_err.linux -C\$(srcdir)/charsets/ \$^ $i/errmsg.sys" \
|
|
>> $AVAILABLE_LANGUAGES_ERRORS_RULES
|
|
;;
|
|
*)
|
|
echo "$i/errmsg.sys: $i/errmsg.txt
|
|
\$(top_builddir)/extra/comp_err -C\$(srcdir)/charsets/ \$^ $i/errmsg.sys" \
|
|
>> $AVAILABLE_LANGUAGES_ERRORS_RULES
|
|
;;
|
|
esac
|
|
done
|
|
|
|
#####
|
|
#####
|
|
|
|
AC_SUBST(MYSQL_NO_DASH_VERSION)
|
|
AC_SUBST(MYSQL_BASE_VERSION)
|
|
AC_SUBST(MYSQL_VERSION_ID)
|
|
AC_SUBST(PROTOCOL_VERSION)
|
|
AC_DEFINE_UNQUOTED(PROTOCOL_VERSION, $PROTOCOL_VERSION)
|
|
AC_SUBST(DOT_FRM_VERSION)
|
|
AC_DEFINE_UNQUOTED(DOT_FRM_VERSION, $DOT_FRM_VERSION)
|
|
AC_SUBST(SHARED_LIB_VERSION)
|
|
AC_SUBST(AVAILABLE_LANGUAGES)
|
|
AC_SUBST(AVAILABLE_LANGUAGES_ERRORS)
|
|
AC_SUBST_FILE(AVAILABLE_LANGUAGES_ERRORS_RULES)
|
|
|
|
# Canonicalize the configuration name.
|
|
SYSTEM_TYPE="$host_vendor-$host_os"
|
|
MACHINE_TYPE="$host_cpu"
|
|
AC_SUBST(SYSTEM_TYPE)
|
|
AC_DEFINE_UNQUOTED(SYSTEM_TYPE, "$SYSTEM_TYPE")
|
|
AC_SUBST(MACHINE_TYPE)
|
|
AC_DEFINE_UNQUOTED(MACHINE_TYPE, "$MACHINE_TYPE")
|
|
|
|
# Detect intel x86 like processor
|
|
BASE_MACHINE_TYPE=$MACHINE_TYPE
|
|
case $MACHINE_TYPE in
|
|
i?86) BASE_MACHINE_TYPE=i386 ;;
|
|
esac
|
|
|
|
# Save some variables and the command line options for mysqlbug
|
|
SAVE_ASFLAGS="$ASFLAGS"
|
|
SAVE_CFLAGS="$CFLAGS"
|
|
SAVE_CXXFLAGS="$CXXFLAGS"
|
|
SAVE_LDFLAGS="$LDFLAGS"
|
|
SAVE_CXXLDFLAGS="$CXXLDFLAGS"
|
|
CONF_COMMAND="$0 $ac_configure_args"
|
|
AC_SUBST(CONF_COMMAND)
|
|
AC_SUBST(SAVE_ASFLAGS)
|
|
AC_SUBST(SAVE_CFLAGS)
|
|
AC_SUBST(SAVE_CXXFLAGS)
|
|
AC_SUBST(SAVE_LDFLAGS)
|
|
AC_SUBST(SAVE_CXXLDFLAGS)
|
|
AC_SUBST(CXXLDFLAGS)
|
|
|
|
AC_PREREQ(2.12)dnl Minimum Autoconf version required.
|
|
|
|
AM_MAINTAINER_MODE
|
|
#AC_ARG_PROGRAM # Automaticly invoked by AM_INIT_AUTOMAKE
|
|
AM_SANITY_CHECK
|
|
# This is needed is SUBDIRS is set
|
|
AC_PROG_MAKE_SET
|
|
# This generates rules for webpage generation for the MySQL homepage.
|
|
AM_CONDITIONAL(LOCAL, test -d ../web/SitePages)
|
|
|
|
# This is need before AC_PROG_CC
|
|
#
|
|
|
|
if test "x${CFLAGS-}" = x ; then
|
|
cflags_is_set=no
|
|
else
|
|
cflags_is_set=yes
|
|
fi
|
|
|
|
if test "x${CPPFLAGS-}" = x ; then
|
|
cppflags_is_set=no
|
|
else
|
|
cppflags_is_set=yes
|
|
fi
|
|
|
|
if test "x${LDFLAGS-}" = x ; then
|
|
ldflags_is_set=no
|
|
else
|
|
ldflags_is_set=yes
|
|
fi
|
|
|
|
# The following hack should ensure that configure doesn't add optimizing
|
|
# or debugging flags to CFLAGS or CXXFLAGS
|
|
CFLAGS="$CFLAGS "
|
|
CXXFLAGS="$CXXFLAGS "
|
|
|
|
dnl Checks for programs.
|
|
AC_PROG_AWK
|
|
AC_PROG_CC
|
|
AC_PROG_CXX
|
|
AC_PROG_CPP
|
|
|
|
# Print version of CC and CXX compiler (if they support --version)
|
|
case $SYSTEM_TYPE in
|
|
*netware*)
|
|
CC_VERSION=`$CC -version | grep -i version`
|
|
;;
|
|
*)
|
|
CC_VERSION=`$CC --version | sed 1q`
|
|
;;
|
|
esac
|
|
if test $? -eq "0"
|
|
then
|
|
AC_MSG_CHECKING("C Compiler version");
|
|
AC_MSG_RESULT("$CC $CC_VERSION")
|
|
else
|
|
CC_VERSION=""
|
|
fi
|
|
case $SYSTEM_TYPE in
|
|
*netware*)
|
|
CXX_VERSION=`$CXX -version | grep -i version`
|
|
;;
|
|
*)
|
|
CXX_VERSION=`$CXX --version | sed 1q`
|
|
;;
|
|
esac
|
|
if test $? -eq "0"
|
|
then
|
|
AC_MSG_CHECKING("C++ compiler version");
|
|
AC_MSG_RESULT("$CXX $CXX_VERSION")
|
|
else
|
|
CXX_VERSION=""
|
|
fi
|
|
AC_SUBST(CXX_VERSION)
|
|
AC_SUBST(CC_VERSION)
|
|
|
|
# Fix for sgi gcc / sgiCC which tries to emulate gcc
|
|
if test "$CC" = "sgicc"
|
|
then
|
|
ac_cv_prog_gcc="no"
|
|
fi
|
|
if test "$CXX" = "sgi++"
|
|
then
|
|
GXX="no"
|
|
fi
|
|
|
|
if test "$ac_cv_prog_gcc" = "yes"
|
|
then
|
|
AS="$CC -c"
|
|
AC_SUBST(AS)
|
|
else
|
|
AC_PATH_PROG(AS, as, as)
|
|
fi
|
|
# Still need ranlib for readline; local static use only so no libtool.
|
|
AC_PROG_RANLIB
|
|
# We use libtool
|
|
#AC_LIBTOOL_WIN32_DLL
|
|
AC_PROG_LIBTOOL
|
|
|
|
# Ensure that we have --preserve-dup-deps defines, otherwise we get link
|
|
# problems of 'mysql' with CXX=g++
|
|
LIBTOOL="$LIBTOOL --preserve-dup-deps"
|
|
AC_SUBST(LIBTOOL)dnl
|
|
|
|
#AC_LIBTOOL_DLOPEN AC_LIBTOOL_WIN32_DLL AC_DISABLE_FAST_INSTALL AC_DISABLE_SHARED AC_DISABLE_STATIC
|
|
|
|
# AC_PROG_INSTALL
|
|
AC_PROG_INSTALL
|
|
test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
|
|
|
|
# Not critical since the generated file is distributed
|
|
AC_PROG_YACC
|
|
AC_CHECK_PROG(PDFMANUAL, pdftex, manual.pdf)
|
|
AC_CHECK_PROG(DVIS, tex, manual.dvi)
|
|
|
|
AC_MSG_CHECKING("return type of sprintf")
|
|
|
|
#check the return type of sprintf
|
|
case $SYSTEM_TYPE in
|
|
*netware*)
|
|
AC_DEFINE(SPRINTF_RETURNS_INT) AC_MSG_RESULT("int")
|
|
;;
|
|
*)
|
|
AC_TRY_RUN([
|
|
int main()
|
|
{
|
|
char* s = "hello";
|
|
char buf[6];
|
|
if((int)sprintf(buf, s) == strlen(s))
|
|
return 0;
|
|
|
|
return -1;
|
|
}
|
|
],
|
|
AC_DEFINE(SPRINTF_RETURNS_INT) AC_MSG_RESULT("int"),
|
|
AC_TRY_RUN([
|
|
int main()
|
|
{
|
|
char* s = "hello";
|
|
char buf[6];
|
|
if((char*)sprintf(buf,s) == buf + strlen(s))
|
|
return 0;
|
|
return -1;
|
|
}
|
|
], AC_DEFINE(SPRINTF_RETURNS_PTR) AC_MSG_RESULT("ptr"),
|
|
AC_DEFINE(SPRINTF_RETURNS_GARBAGE) AC_MSG_RESULT("garbage")))
|
|
;;
|
|
esac
|
|
|
|
|
|
# option, cache_name, variable,
|
|
# code to execute if yes, code to exectute if fail
|
|
AC_DEFUN(AC_SYS_COMPILER_FLAG,
|
|
[
|
|
AC_MSG_CHECKING($1)
|
|
OLD_CFLAGS="[$]CFLAGS"
|
|
AC_CACHE_VAL(mysql_cv_option_$2,
|
|
[
|
|
CFLAGS="[$]OLD_CFLAGS $1"
|
|
AC_TRY_RUN([int main(){exit(0);}],mysql_cv_option_$2=yes,mysql_cv_option_$2=no,mysql_cv_option_$2=no)
|
|
])
|
|
|
|
CFLAGS="[$]OLD_CFLAGS"
|
|
|
|
if test x"[$]mysql_cv_option_$2" = "xyes" ; then
|
|
$3="[$]$3 $1"
|
|
AC_MSG_RESULT(yes)
|
|
$5
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
$4
|
|
fi
|
|
])
|
|
|
|
# arch, option, cache_name, variable
|
|
AC_DEFUN(AC_SYS_CPU_COMPILER_FLAG,
|
|
[
|
|
if test "`uname -m 2>/dev/null`" = "$1" ; then
|
|
AC_SYS_COMPILER_FLAG($2,$3,$4)
|
|
fi
|
|
])
|
|
|
|
# os, option, cache_name, variable
|
|
AC_DEFUN(AC_SYS_OS_COMPILER_FLAG,
|
|
[
|
|
if test "x$mysql_cv_sys_os" = "x$1" ; then
|
|
AC_SYS_COMPILER_FLAG($2,$3,$4)
|
|
fi
|
|
])
|
|
|
|
# We need some special hacks when running slowaris
|
|
AC_PATH_PROG(uname_prog, uname, no)
|
|
|
|
# We should go through this and put all the explictly system dependent
|
|
# stuff in one place
|
|
AC_MSG_CHECKING(operating system)
|
|
AC_CACHE_VAL(mysql_cv_sys_os,
|
|
[
|
|
if test "$uname_prog" != "no"; then
|
|
mysql_cv_sys_os="`uname`"
|
|
else
|
|
mysql_cv_sys_os="Not Solaris"
|
|
fi
|
|
])
|
|
AC_MSG_RESULT($mysql_cv_sys_os)
|
|
|
|
# This should be rewritten to use $target_os
|
|
case "$target_os" in
|
|
sco3.2v5*)
|
|
CFLAGS="$CFLAGS -DSCO"
|
|
CXXFLAGS="$CXXFLAGS -DSCO"
|
|
LD='$(CC) $(CFLAGS)'
|
|
case "$CFLAGS" in
|
|
*-belf*)
|
|
AC_SYS_COMPILER_FLAG(-belf,sco_belf_option,CFLAGS,[],[
|
|
case "$LDFLAGS" in
|
|
*-belf*) ;;
|
|
*) echo "Adding -belf option to ldflags."
|
|
LDFLAGS="$LDFLAGS -belf"
|
|
;;
|
|
esac
|
|
])
|
|
;;
|
|
*)
|
|
AC_SYS_COMPILER_FLAG(-belf,sco_belf_option,CFLAGS,[],[
|
|
case "$LDFLAGS" in
|
|
*-belf*) ;;
|
|
*)
|
|
echo "Adding -belf option to ldflags."
|
|
LDFLAGS="$LDFLAGS -belf"
|
|
;;
|
|
esac
|
|
])
|
|
;;
|
|
esac
|
|
;;
|
|
sysv5UnixWare*)
|
|
if test "$GCC" != "yes"; then
|
|
# We are using built-in inline function
|
|
CFLAGS="$CFLAGS -Kalloca"
|
|
fi
|
|
CXXFLAGS="$CXXFLAGS -DNO_CPLUSPLUS_ALLOCA"
|
|
;;
|
|
sysv5OpenUNIX8*)
|
|
if test "$GCC" != "yes"; then
|
|
# We are using built-in inline function
|
|
CFLAGS="$CFLAGS -Kalloca"
|
|
fi
|
|
CXXFLAGS="$CXXFLAGS -DNO_CPLUSPLUS_ALLOCA"
|
|
;;
|
|
esac
|
|
AC_SUBST(CC)
|
|
AC_SUBST(CFLAGS)
|
|
AC_SUBST(CXX)
|
|
AC_SUBST(CXXFLAGS)
|
|
AC_SUBST(LD)
|
|
AC_SUBST(INSTALL_SCRIPT)
|
|
|
|
export CC CXX CFLAGS LD LDFLAGS AR
|
|
|
|
if test "$GXX" = "yes"
|
|
then
|
|
# mysqld requires -fno-implicit-templates.
|
|
# Disable exceptions as they seams to create problems with gcc and threads.
|
|
# mysqld doesn't use run-time-type-checking, so we disable it.
|
|
CXXFLAGS="$CXXFLAGS -fno-implicit-templates -fno-exceptions -fno-rtti"
|
|
|
|
# If you are using 'gcc' 3.0 (not g++) to compile C++ programs on Linux,
|
|
# we will gets some problems when linking static programs.
|
|
# The following code is used to fix this problem.
|
|
|
|
if test "$CXX" = "gcc" -o "$CXX" = "ccache gcc"
|
|
then
|
|
if $CXX -v 2>&1 | grep 'version 3' > /dev/null 2>&1
|
|
then
|
|
CXXFLAGS="$CXXFLAGS -DUSE_MYSYS_NEW -DDEFINE_CXA_PURE_VIRTUAL"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
# Avoid bug in fcntl on some versions of linux
|
|
AC_MSG_CHECKING("if we should use 'skip-locking' as default for $target_os")
|
|
# Any wariation of Linux
|
|
if expr "$target_os" : "[[Ll]]inux.*" > /dev/null
|
|
then
|
|
MYSQLD_DEFAULT_SWITCHES="--skip-locking"
|
|
IS_LINUX="true"
|
|
AC_MSG_RESULT("yes");
|
|
else
|
|
MYSQLD_DEFAULT_SWITCHES=""
|
|
IS_LINUX="false"
|
|
AC_MSG_RESULT("no");
|
|
fi
|
|
AC_SUBST(MYSQLD_DEFAULT_SWITCHES)
|
|
AC_SUBST(IS_LINUX)
|
|
|
|
dnl Find paths to some shell programs
|
|
AC_PATH_PROG(LN, ln, ln)
|
|
# This must be able to take a -f flag like normal unix ln.
|
|
AC_PATH_PROG(LN_CP_F, ln, ln)
|
|
if ! ( expr "$SYSTEM_TYPE" : ".*netware.*" > /dev/null ); then
|
|
# If ln -f does not exists use -s (AFS systems)
|
|
if test -n "$LN_CP_F"; then
|
|
LN_CP_F="$LN_CP_F -s"
|
|
fi
|
|
fi
|
|
|
|
AC_PATH_PROG(MV, mv, mv)
|
|
AC_PATH_PROG(RM, rm, rm)
|
|
AC_PATH_PROG(CP, cp, cp)
|
|
AC_PATH_PROG(SED, sed, sed)
|
|
AC_PATH_PROG(CMP, cmp, cmp)
|
|
AC_PATH_PROG(CHMOD, chmod, chmod)
|
|
AC_PATH_PROG(HOSTNAME, hostname, hostname)
|
|
# Check for a GNU tar named 'gtar', or 'gnutar' (MacOS X) and
|
|
# fall back to 'tar' otherwise and hope that it's a GNU tar as well
|
|
AC_CHECK_PROGS(TAR, gnutar gtar tar)
|
|
|
|
dnl We use a path for perl so the script startup works
|
|
dnl We make sure to use perl, not perl5, in hopes that the RPMs will
|
|
dnl not depend on the perl5 binary being installed (probably a bug in RPM)
|
|
AC_PATH_PROG(PERL, perl, no)
|
|
if test "$PERL" != "no" && $PERL -e 'require 5' > /dev/null 2>&1
|
|
then
|
|
PERL5=$PERL
|
|
else
|
|
AC_PATH_PROG(PERL5, perl5, no)
|
|
if test "$PERL5" != no
|
|
then
|
|
PERL=$PERL5
|
|
ac_cv_path_PERL=$ac_cv_path_PERL5
|
|
fi
|
|
fi
|
|
|
|
AC_SUBST(HOSTNAME)
|
|
AC_SUBST(PERL)
|
|
AC_SUBST(PERL5)
|
|
|
|
# Lock for PS
|
|
AC_PATH_PROG(PS, ps, ps)
|
|
AC_MSG_CHECKING("how to check if pid exists")
|
|
PS=$ac_cv_path_PS
|
|
# Linux style
|
|
if $PS p $$ 2> /dev/null | grep $0 > /dev/null
|
|
then
|
|
FIND_PROC="$PS p \$\$PID | grep mysqld > /dev/null"
|
|
# Solaris
|
|
elif $PS -p $$ 2> /dev/null | grep $0 > /dev/null
|
|
then
|
|
FIND_PROC="$PS -p \$\$PID | grep mysqld > /dev/null"
|
|
# BSD style
|
|
elif $PS -uaxww 2> /dev/null | grep $0 > /dev/null
|
|
then
|
|
FIND_PROC="$PS -uaxww | grep mysqld | grep \" \$\$PID \" > /dev/null"
|
|
# SysV style
|
|
elif $PS -ef 2> /dev/null | grep $0 > /dev/null
|
|
then
|
|
FIND_PROC="$PS -ef | grep mysqld | grep \" \$\$PID \" > /dev/null"
|
|
# Do anybody use this?
|
|
elif $PS $$ 2> /dev/null | grep $0 > /dev/null
|
|
then
|
|
FIND_PROC="$PS \$\$PID | grep mysqld > /dev/null"
|
|
else
|
|
case $SYSTEM_TYPE in
|
|
*freebsd*)
|
|
FIND_PROC="$PS p \$\$PID | grep mysqld > /dev/null"
|
|
;;
|
|
*darwin*)
|
|
FIND_PROC="$PS -uaxww | grep mysqld | grep \" \$\$PID \" > /dev/null"
|
|
;;
|
|
*cygwin*)
|
|
FIND_PROC="$PS -e | grep mysqld | grep \" \$\$PID \" > /dev/null"
|
|
;;
|
|
*netware* | *modesto*)
|
|
FIND_PROC=
|
|
;;
|
|
*)
|
|
AC_MSG_ERROR([Could not find the right ps switches. Which OS is this ?. See the Installation chapter in the Reference Manual.])
|
|
esac
|
|
fi
|
|
AC_SUBST(FIND_PROC)
|
|
AC_MSG_RESULT("$FIND_PROC")
|
|
|
|
# Check if a pid is valid
|
|
AC_PATH_PROG(KILL, kill, kill)
|
|
AC_MSG_CHECKING("for kill switches")
|
|
if $ac_cv_path_KILL -0 $$
|
|
then
|
|
CHECK_PID="$ac_cv_path_KILL -0 \$\$PID > /dev/null 2> /dev/null"
|
|
elif kill -s 0 $$
|
|
then
|
|
CHECK_PID="$ac_cv_path_KILL -s 0 \$\$PID > /dev/null 2> /dev/null"
|
|
else
|
|
AC_MSG_WARN([kill -0 to check for pid seems to fail])
|
|
CHECK_PID="$ac_cv_path_KILL -s SIGCONT \$\$PID > /dev/null 2> /dev/null"
|
|
fi
|
|
AC_SUBST(CHECK_PID)
|
|
AC_MSG_RESULT("$CHECK_PID")
|
|
|
|
# We need a ANSI C compiler
|
|
AM_PROG_CC_STDC
|
|
|
|
# We need an assembler, too
|
|
AM_PROG_AS
|
|
|
|
if test "$am_cv_prog_cc_stdc" = "no"
|
|
then
|
|
AC_MSG_ERROR([MySQL requires a ANSI C compiler (and a C++ compiler). Try gcc. See the Installation chapter in the Reference Manual.])
|
|
fi
|
|
|
|
NOINST_LDFLAGS=
|
|
|
|
static_nss=""
|
|
STATIC_NSS_FLAGS=""
|
|
OTHER_LIBC_LIB=""
|
|
AC_ARG_WITH(other-libc,
|
|
[ --with-other-libc=DIR Link against libc and other standard libraries
|
|
installed in the specified non-standard location
|
|
overriding default. Originally added to be able to
|
|
link against glibc 2.2 without making the user
|
|
upgrade the standard libc installation.],
|
|
[
|
|
other_libc_include="$withval/include"
|
|
other_libc_lib="$withval/lib"
|
|
with_other_libc="yes"
|
|
enable_shared="no"
|
|
all_is_static="yes"
|
|
CFLAGS="$CFLAGS -I$other_libc_include"
|
|
# There seems to be a feature in gcc that treats system and libc headers
|
|
# silently when they violatate ANSI C++ standard, but it is strict otherwise
|
|
# since gcc cannot now recognize that our headers are libc, we work around
|
|
# by telling it to be permissive. Note that this option only works with
|
|
# new versions of gcc (2.95.x and above)
|
|
CXXFLAGS="$CXXFLAGS -fpermissive -I$other_libc_include"
|
|
if test -f "$other_libc_lib/libnss_files.a"
|
|
then
|
|
# libc has been compiled with --enable-static-nss
|
|
# we need special flags, but we will have to add those later
|
|
STATIC_NSS_FLAGS="-lc -lnss_files -lnss_dns -lresolv"
|
|
STATIC_NSS_FLAGS="$STATIC_NSS_FLAGS $STATIC_NSS_FLAGS"
|
|
OTHER_LIBC_LIB="-static -L$other_libc_lib"
|
|
static_nss=1
|
|
else
|
|
# this is a dirty hack. We if we detect static nss glibc in the special
|
|
# location, we do not re-direct the linker to get libraries from there
|
|
# during check. The reason is that if we did, we would have to find a
|
|
# way to append the special static nss flags to LIBS every time we do
|
|
# any check - this is definitely feasible, but not worthwhile the risk
|
|
# of breaking other things. So for our purposes it would be sufficient
|
|
# to assume that whoever is using static NSS knows what he is doing and
|
|
# has sensible libraries in the regular location
|
|
LDFLAGS="$LDFLAGS -static -L$other_libc_lib "
|
|
fi
|
|
|
|
# When linking against custom libc installed separately, we want to force
|
|
# all binary builds to be static, including the build done by configure
|
|
# itself to test for system features.
|
|
with_mysqld_ldflags="-all-static"
|
|
with_client_ldflags="-all-static"
|
|
NOINST_LDFLAGS="-all-static"
|
|
],
|
|
[
|
|
other_libc_include=
|
|
other_libc_lib=
|
|
with_other_libc="no"
|
|
]
|
|
)
|
|
AC_SUBST(NOINST_LDFLAGS)
|
|
|
|
#
|
|
# Check if we are using Linux and a glibc compiled with static nss
|
|
# (this is true on the MySQL build machines to avoid NSS problems)
|
|
#
|
|
|
|
if test "$IS_LINUX" = "true" -a "$static_nss" = ""
|
|
then
|
|
tmp=`nm /usr/lib/libc.a | grep _nss_files_getaliasent_r`
|
|
if test -n "$tmp"
|
|
then
|
|
STATIC_NSS_FLAGS="-lc -lnss_files -lnss_dns -lresolv"
|
|
STATIC_NSS_FLAGS="$STATIC_NSS_FLAGS $STATIC_NSS_FLAGS"
|
|
static_nss=1
|
|
fi
|
|
fi
|
|
|
|
|
|
AC_ARG_WITH(server-suffix,
|
|
[ --with-server-suffix Append value to the version string.],
|
|
[ MYSQL_SERVER_SUFFIX=`echo "$withval" | sed -e 's/^\(...................................\)..*$/\1/'` ],
|
|
[ MYSQL_SERVER_SUFFIX= ]
|
|
)
|
|
AC_SUBST(MYSQL_SERVER_SUFFIX)
|
|
|
|
# Set flags if we wants to have MIT threads.
|
|
AC_ARG_WITH(mit-threads,
|
|
[ --with-mit-threads Always use included thread lib.],
|
|
[ with_mit_threads=$withval ],
|
|
[ with_mit_threads=no ]
|
|
)
|
|
|
|
if test "$with_mit_threads" = "yes"
|
|
then
|
|
enable_largefile="no" # Will not work on Linux.
|
|
fi
|
|
|
|
# Set flags if we want to force to use pthreads
|
|
AC_ARG_WITH(pthread,
|
|
[ --with-pthread Force use of pthread library.],
|
|
[ with_pthread=$withval ],
|
|
[ with_pthread=no ]
|
|
)
|
|
|
|
# Force use of thread libs LIBS
|
|
AC_ARG_WITH(named-thread-libs,
|
|
[ --with-named-thread-libs=ARG
|
|
Use specified thread libraries instead of
|
|
those automatically found by configure.],
|
|
[ with_named_thread=$withval ],
|
|
[ with_named_thread=no ]
|
|
)
|
|
|
|
# Force use of a curses libs
|
|
AC_ARG_WITH(named-curses-libs,
|
|
[ --with-named-curses-libs=ARG
|
|
Use specified curses libraries instead of
|
|
those automatically found by configure.],
|
|
[ with_named_curses=$withval ],
|
|
[ with_named_curses=no ]
|
|
)
|
|
|
|
# Force use of a zlib (compress)
|
|
AC_ARG_WITH(named-z-libs,
|
|
[ --with-named-z-libs=ARG
|
|
Use specified zlib libraries instead of
|
|
those automatically found by configure.],
|
|
[ with_named_zlib=$withval ],
|
|
[ with_named_zlib=z ]
|
|
)
|
|
|
|
# Make thread safe client
|
|
AC_ARG_ENABLE(thread-safe-client,
|
|
[ --enable-thread-safe-client
|
|
Compile the client with threads.],
|
|
[ THREAD_SAFE_CLIENT=$enableval ],
|
|
[ THREAD_SAFE_CLIENT=no ]
|
|
)
|
|
|
|
# compile with strings functions in assembler
|
|
AC_ARG_ENABLE(assembler,
|
|
[ --enable-assembler Use assembler versions of some string
|
|
functions if available.],
|
|
[ ENABLE_ASSEMBLER=$enableval ],
|
|
[ ENABLE_ASSEMBLER=no ]
|
|
)
|
|
|
|
AC_MSG_CHECKING(if we should use assembler functions)
|
|
# For now we only support assembler on i386 and sparc systems
|
|
AM_CONDITIONAL(ASSEMBLER_x86, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "i386")
|
|
AM_CONDITIONAL(ASSEMBLER_sparc32, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "sparc")
|
|
AM_CONDITIONAL(ASSEMBLER_sparc64, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "sparcv9")
|
|
AM_CONDITIONAL(ASSEMBLER, test "$ASSEMBLER_x86_TRUE" = "" -o "$ASSEMBLER_sparc32_TRUE" = "")
|
|
|
|
if test "$ASSEMBLER_TRUE" = ""
|
|
then
|
|
AC_MSG_RESULT([yes])
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
fi
|
|
|
|
|
|
AC_MSG_CHECKING(if we should use RAID)
|
|
AC_ARG_WITH(raid,
|
|
[ --with-raid Enable RAID Support],
|
|
[ USE_RAID=$withval ],
|
|
[ USE_RAID=no ]
|
|
)
|
|
if test "$USE_RAID" = "yes"
|
|
then
|
|
AC_MSG_RESULT([yes])
|
|
AC_DEFINE([USE_RAID])
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
fi
|
|
|
|
# Use this to set the place used for unix socket used to local communication.
|
|
AC_ARG_WITH(unix-socket-path,
|
|
[ --with-unix-socket-path=SOCKET
|
|
Where to put the unix-domain socket. SOCKET must be
|
|
an absolute file name.],
|
|
[ MYSQL_UNIX_ADDR=$withval ],
|
|
[ MYSQL_UNIX_ADDR=$MYSQL_UNIX_ADDR_DEFAULT ]
|
|
)
|
|
AC_SUBST(MYSQL_UNIX_ADDR)
|
|
|
|
AC_ARG_WITH(tcp-port,
|
|
[ --with-tcp-port=port-number
|
|
Which port to use for MySQL services (default 3306)],
|
|
[ MYSQL_TCP_PORT=$withval ],
|
|
[ MYSQL_TCP_PORT=$MYSQL_TCP_PORT_DEFAULT ]
|
|
)
|
|
AC_SUBST(MYSQL_TCP_PORT)
|
|
# We might want to document the assigned port in the manual.
|
|
AC_SUBST(MYSQL_TCP_PORT_DEFAULT)
|
|
|
|
# Use this to set the place used for unix socket used to local communication.
|
|
AC_ARG_WITH(mysqld-user,
|
|
[ --with-mysqld-user=username
|
|
What user the mysqld daemon shall be run as.],
|
|
[ MYSQLD_USER=$withval ],
|
|
[ MYSQLD_USER=mysql ]
|
|
)
|
|
AC_SUBST(MYSQLD_USER)
|
|
|
|
# If we should allow LOAD DATA LOCAL
|
|
AC_MSG_CHECKING(If we should should enable LOAD DATA LOCAL by default)
|
|
AC_ARG_ENABLE(local-infile,
|
|
[ --enable-local-infile Enable LOAD DATA LOCAL INFILE (default: disabled)],
|
|
[ ENABLED_LOCAL_INFILE=$enableval ],
|
|
[ ENABLED_LOCAL_INFILE=no ]
|
|
)
|
|
if test "$ENABLED_LOCAL_INFILE" = "yes"
|
|
then
|
|
AC_MSG_RESULT([yes])
|
|
AC_DEFINE([ENABLED_LOCAL_INFILE])
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
fi
|
|
|
|
MYSQL_SYS_LARGEFILE
|
|
|
|
# Types that must be checked AFTER large file support is checked
|
|
AC_TYPE_SIZE_T
|
|
|
|
#--------------------------------------------------------------------
|
|
# Check for system header files
|
|
#--------------------------------------------------------------------
|
|
|
|
AC_HEADER_DIRENT
|
|
AC_HEADER_STDC
|
|
AC_HEADER_SYS_WAIT
|
|
AC_CHECK_HEADERS(fcntl.h float.h floatingpoint.h ieeefp.h limits.h \
|
|
memory.h pwd.h select.h \
|
|
stdlib.h stddef.h \
|
|
strings.h string.h synch.h sys/mman.h sys/socket.h netinet/in.h arpa/inet.h \
|
|
sys/timeb.h sys/types.h sys/un.h sys/vadvise.h sys/wait.h term.h \
|
|
unistd.h utime.h sys/utime.h termio.h termios.h sched.h crypt.h alloca.h \
|
|
sys/ioctl.h malloc.h sys/malloc.h linux/config.h)
|
|
|
|
#--------------------------------------------------------------------
|
|
# Check for system libraries. Adds the library to $LIBS
|
|
# and defines HAVE_LIBM etc
|
|
#--------------------------------------------------------------------
|
|
|
|
AC_CHECK_LIB(m, floor, [], AC_CHECK_LIB(m, __infinity))
|
|
|
|
AC_CHECK_LIB(nsl_r, gethostbyname_r, [],
|
|
AC_CHECK_LIB(nsl, gethostbyname_r))
|
|
AC_CHECK_FUNC(gethostbyname_r)
|
|
|
|
AC_CHECK_FUNC(setsockopt, , AC_CHECK_LIB(socket, setsockopt))
|
|
AC_CHECK_FUNC(yp_get_default_domain, ,
|
|
AC_CHECK_LIB(nsl, yp_get_default_domain))
|
|
AC_CHECK_FUNC(p2open, , AC_CHECK_LIB(gen, p2open))
|
|
# This may get things to compile even if bind-8 is installed
|
|
AC_CHECK_FUNC(bind, , AC_CHECK_LIB(bind, bind))
|
|
# For crypt() on Linux
|
|
AC_CHECK_LIB(crypt, crypt)
|
|
AC_CHECK_FUNC(crypt, AC_DEFINE(HAVE_CRYPT))
|
|
|
|
# For sem_xxx functions on Solaris 2.6
|
|
AC_CHECK_FUNC(sem_init, , AC_CHECK_LIB(posix4, sem_init))
|
|
|
|
# For compress in zlib
|
|
MYSQL_CHECK_ZLIB_WITH_COMPRESS($with_named_zlib)
|
|
|
|
#--------------------------------------------------------------------
|
|
# Check for TCP wrapper support
|
|
#--------------------------------------------------------------------
|
|
|
|
AC_ARG_WITH(libwrap,
|
|
[ --with-libwrap[=DIR] Compile in libwrap (tcp_wrappers) support],[
|
|
case "$with_libwrap" in
|
|
no) : ;;
|
|
yes|*)
|
|
_cppflags=${CPPFLAGS}
|
|
_ldflags=${LDFLAGS}
|
|
|
|
if test "$with_libwrap" != "yes"; then
|
|
CPPFLAGS="${CPPFLAGS} -I$with_libwrap/include"
|
|
LDFLAGS="${LDFLAGS} -L$with_libwrap/lib"
|
|
fi
|
|
|
|
_libs=${LIBS}
|
|
AC_CHECK_HEADER(tcpd.h,
|
|
LIBS="-lwrap $LIBS"
|
|
AC_MSG_CHECKING(for TCP wrappers library -lwrap)
|
|
AC_TRY_LINK([#include <tcpd.h>
|
|
int allow_severity = 0;
|
|
int deny_severity = 0;
|
|
|
|
struct request_info *req;
|
|
],[hosts_access (req)],
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(LIBWRAP)
|
|
AC_DEFINE(HAVE_LIBWRAP)
|
|
if test "$with_libwrap" != "yes"; then
|
|
WRAPLIBS="-L${with_libwrap}/lib"
|
|
fi
|
|
WRAPLIBS="${WRAPLIBS} -lwrap",
|
|
AC_MSG_RESULT(no)
|
|
CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags}),
|
|
CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags})
|
|
LDFLAGS=${_ldflags} LIBS=${_libs}
|
|
;;
|
|
esac
|
|
])
|
|
AC_SUBST(WRAPLIBS)
|
|
|
|
if test "$IS_LINUX" = "true"; then
|
|
AC_MSG_CHECKING([for atomic operations])
|
|
|
|
atom_ops=
|
|
AC_TRY_RUN([
|
|
#include <asm/atomic.h>
|
|
int main()
|
|
{
|
|
atomic_t v;
|
|
|
|
atomic_set(&v, 23);
|
|
atomic_add(5, &v);
|
|
return atomic_read(&v) == 28 ? 0 : -1;
|
|
}
|
|
], AC_DEFINE(HAVE_ATOMIC_ADD) atom_ops="${atom_ops}atomic_add ",
|
|
)
|
|
AC_TRY_RUN([
|
|
#include <asm/atomic.h>
|
|
int main()
|
|
{
|
|
atomic_t v;
|
|
|
|
atomic_set(&v, 23);
|
|
atomic_sub(5, &v);
|
|
return atomic_read(&v) == 18 ? 0 : -1;
|
|
}
|
|
], AC_DEFINE(HAVE_ATOMIC_SUB) atom_ops="${atom_ops}atomic_sub ",
|
|
)
|
|
|
|
if test -z "$atom_ops"; then atom_ops="no"; fi
|
|
AC_MSG_RESULT($atom_ops)
|
|
|
|
AC_ARG_WITH(pstack,
|
|
[ --with-pstack Use the pstack backtrace library],
|
|
[ USE_PSTACK=$withval ],
|
|
[ USE_PSTACK=no ])
|
|
pstack_libs=
|
|
pstack_dirs=
|
|
if test "$USE_PSTACK" = yes -a "$IS_LINUX" = "true" -a "$BASE_MACHINE_TYPE" = "i386" -a "$with_mit_threads" = "no"
|
|
then
|
|
have_libiberty= have_libbfd=
|
|
my_save_LIBS="$LIBS"
|
|
dnl I have no idea if this is a good test - can not find docs for libiberty
|
|
AC_CHECK_LIB([iberty], [fdmatch],
|
|
[have_libiberty=yes
|
|
AC_CHECK_LIB([bfd], [bfd_openr], [have_libbfd=yes], , [-liberty])])
|
|
LIBS="$my_save_LIBS"
|
|
|
|
if test x"$have_libiberty" = xyes -a x"$have_libbfd" = xyes
|
|
then
|
|
pstack_dirs='$(top_srcdir)'/pstack
|
|
pstack_libs="../pstack/libpstack.a -lbfd -liberty"
|
|
# We must link staticly when using pstack
|
|
with_mysqld_ldflags="-all-static"
|
|
AC_SUBST([pstack_dirs])
|
|
AC_SUBST([pstack_libs])
|
|
AC_DEFINE([USE_PSTACK])
|
|
dnl This check isn't needed, but might be nice to give some feedback....
|
|
dnl AC_CHECK_HEADER(libiberty.h,
|
|
dnl have_libiberty_h=yes,
|
|
dnl have_libiberty_h=no)
|
|
else
|
|
USE_PSTACK="no"
|
|
fi
|
|
else
|
|
USE_PSTACK="no"
|
|
fi
|
|
fi
|
|
AM_CONDITIONAL(COMPILE_PSTACK, test "$USE_PSTACK" = "yes")
|
|
AC_MSG_CHECKING([if we should use pstack])
|
|
AC_MSG_RESULT([$USE_PSTACK])
|
|
|
|
# Check for gtty if termio.h doesn't exists
|
|
if test "$ac_cv_header_termio_h" = "no" -a "$ac_cv_header_termios_h" = "no"
|
|
then
|
|
AC_CHECK_FUNC(gtty, , AC_CHECK_LIB(compat, gtty))
|
|
fi
|
|
# We make a special variable for client library's to avoid including
|
|
# thread libs in the client.
|
|
NON_THREADED_CLIENT_LIBS="$LIBS"
|
|
|
|
AC_MSG_CHECKING([for int8])
|
|
case $SYSTEM_TYPE in
|
|
*netware)
|
|
AC_MSG_RESULT([no])
|
|
;;
|
|
*)
|
|
AC_TRY_RUN([
|
|
#ifdef HAVE_STDLIB_H
|
|
#include <stdlib.h>
|
|
#endif
|
|
|
|
#ifdef HAVE_STDDEF_H
|
|
#include <stddef.h>
|
|
#endif
|
|
|
|
#ifdef HAVE_SYS_TYPES_H
|
|
#include <sys/types.h>
|
|
#endif
|
|
|
|
int main()
|
|
{
|
|
int8 i;
|
|
return 0;
|
|
}
|
|
], AC_DEFINE(HAVE_INT_8_16_32) AC_MSG_RESULT([yes]), AC_MSG_RESULT([no])
|
|
)
|
|
;;
|
|
esac
|
|
|
|
#
|
|
# Some system specific hacks
|
|
#
|
|
|
|
MAX_C_OPTIMIZE="-O3"
|
|
MAX_CXX_OPTIMIZE="-O3"
|
|
|
|
case $SYSTEM_TYPE in
|
|
*solaris2.7*)
|
|
# Solaris 2.7 has a broken /usr/include/widec.h
|
|
# Make a fixed copy in ./include
|
|
echo "Fixing broken include files for $SYSTEM_TYPE"
|
|
echo " - Creating local copy of widec.h"
|
|
if test ! -d include
|
|
then
|
|
mkdir ./include
|
|
fi
|
|
builddir=`pwd`
|
|
sed -e "s|^#if[ ]*!defined(lint) && !defined(__lint)|#if !defined\(lint\) \&\& !defined\(__lint\) \&\& !defined\(getwc\)|" < /usr/include/widec.h > include/widec.h
|
|
CFLAGS="$CFLAGS -DHAVE_CURSES_H -I$builddir/include -DHAVE_RWLOCK_T"
|
|
CXXFLAGS="$CXXFLAGS -DHAVE_CURSES_H -I$builddir/include -DHAVE_RWLOCK_T"
|
|
;;
|
|
*solaris2.8*)
|
|
# Solaris 2.8 has a broken /usr/include/widec.h
|
|
# Make a fixed copy in ./include
|
|
echo "Fixing broken include files for $SYSTEM_TYPE"
|
|
echo " - Creating local copy of widec.h"
|
|
if test ! -d include
|
|
then
|
|
mkdir ./include
|
|
fi
|
|
builddir=`pwd`
|
|
sed -e "s|^#if[ ]*!defined(__lint)|#if !defined\(__lint\) \&\& !defined\(getwc\)|" < /usr/include/widec.h > include/widec.h
|
|
CFLAGS="$CFLAGS -DHAVE_CURSES_H -I$builddir/include -DHAVE_RWLOCK_T"
|
|
CXXFLAGS="$CXXFLAGS -DHAVE_CURSES_H -I$builddir/include -DHAVE_RWLOCK_T"
|
|
;;
|
|
*solaris2.5.1*)
|
|
echo "Enabling getpass() workaround for Solaris 2.5.1"
|
|
CFLAGS="$CFLAGS -DHAVE_BROKEN_GETPASS -DSOLARIS -DHAVE_RWLOCK_T";
|
|
CXXFLAGS="$CXXFLAGS -DHAVE_RWLOCK_T -DSOLARIS"
|
|
;;
|
|
*solaris*)
|
|
CFLAGS="$CFLAGS -DHAVE_RWLOCK_T"
|
|
CXXFLAGS="$CXXFLAGS -DHAVE_RWLOCK_T"
|
|
;;
|
|
*SunOS*)
|
|
echo "Enabling getpass() workaround for SunOS"
|
|
CFLAGS="$CFLAGS -DHAVE_BROKEN_GETPASS -DSOLARIS";
|
|
;;
|
|
*hpux10.20*)
|
|
echo "Enabling workarounds for hpux 10.20"
|
|
CFLAGS="$CFLAGS -DHAVE_BROKEN_SNPRINTF -DSIGNALS_DONT_BREAK_READ -DDO_NOT_REMOVE_THREAD_WRAPPERS -DHPUX10 -DSIGNAL_WITH_VIO_CLOSE -DHAVE_BROKEN_PTHREAD_COND_TIMEDWAIT -DHAVE_POSIX1003_4a_MUTEX"
|
|
CXXFLAGS="$CXXFLAGS -DHAVE_BROKEN_SNPRINTF -D_INCLUDE_LONGLONG -DSIGNALS_DONT_BREAK_READ -DDO_NOT_REMOVE_THREAD_WRAPPERS -DHPUX10 -DSIGNAL_WITH_VIO_CLOSE -DHAVE_BROKEN_PTHREAD_COND_TIMEDWAIT -DHAVE_POSIX1003_4a_MUTEX"
|
|
if test "$with_named_thread" = "no"
|
|
then
|
|
echo "Using --with-named-thread=-lpthread"
|
|
with_named_thread="-lcma"
|
|
fi
|
|
;;
|
|
*hpux11.*)
|
|
echo "Enabling workarounds for hpux 11"
|
|
CFLAGS="$CFLAGS -DHPUX11 -DHAVE_BROKEN_PREAD -DDONT_USE_FINITE -DHAVE_BROKEN_GETPASS -DNO_FCNTL_NONBLOCK -DDO_NOT_REMOVE_THREAD_WRAPPERS -DHAVE_BROKEN_PTHREAD_COND_TIMEDWAIT"
|
|
CXXFLAGS="$CXXFLAGS -DHPUX11 -DHAVE_BROKEN_PREAD -DDONT_USE_FINITE -D_INCLUDE_LONGLONG -DNO_FCNTL_NONBLOCK -DDO_NOT_REMOVE_THREAD_WRAPPERS -DHAVE_BROKEN_PTHREAD_COND_TIMEDWAIT"
|
|
if test "$with_named_thread" = "no"
|
|
then
|
|
echo "Using --with-named-thread=-lpthread"
|
|
with_named_thread="-lpthread"
|
|
fi
|
|
# Fixes for HPUX 11.0 compiler
|
|
if test "$ac_cv_prog_gcc" = "no"
|
|
then
|
|
CFLAGS="$CFLAGS -DHAVE_BROKEN_INLINE"
|
|
CXXFLAGS="$CXXFLAGS +O2"
|
|
MAX_C_OPTIMIZE=""
|
|
MAX_CXX_OPTIMIZE=""
|
|
fi
|
|
;;
|
|
*rhapsody*)
|
|
if test "$ac_cv_prog_gcc" = "yes"
|
|
then
|
|
CPPFLAGS="$CPPFLAGS -traditional-cpp "
|
|
CFLAGS="-DHAVE_CTHREADS_WRAPPER -DDO_NOT_REMOVE_THREAD_WRAPPERS"
|
|
CXXFLAGS="-DHAVE_CTHREADS_WRAPPER"
|
|
if test $with_named_curses = "no"
|
|
then
|
|
with_named_curses=""
|
|
fi
|
|
fi
|
|
;;
|
|
*darwin5*)
|
|
if test "$ac_cv_prog_gcc" = "yes"
|
|
then
|
|
FLAGS="-traditional-cpp -DHAVE_DARWIN_THREADS -D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSE -DSIGNALS_DONT_BREAK_READ -DHAVE_BROKEN_REALPATH"
|
|
CFLAGS="$CFLAGS $FLAGS"
|
|
CXXFLAGS="$CXXFLAGS $FLAGS"
|
|
MAX_C_OPTIMIZE="-O"
|
|
with_named_curses=""
|
|
fi
|
|
;;
|
|
*darwin6*)
|
|
if test "$ac_cv_prog_gcc" = "yes"
|
|
then
|
|
FLAGS="-DHAVE_DARWIN_THREADS -D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSE -DSIGNALS_DONT_BREAK_READ -DHAVE_BROKEN_REALPATH"
|
|
CFLAGS="$CFLAGS $FLAGS"
|
|
CXXFLAGS="$CXXFLAGS $FLAGS"
|
|
MAX_C_OPTIMIZE="-O"
|
|
fi
|
|
;;
|
|
*darwin7*)
|
|
if test "$ac_cv_prog_gcc" = "yes"
|
|
then
|
|
FLAGS="-DHAVE_DARWIN_THREADS -D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSE -DSIGNALS_DONT_BREAK_READ"
|
|
CFLAGS="$CFLAGS $FLAGS"
|
|
CXXFLAGS="$CXXFLAGS $FLAGS"
|
|
MAX_C_OPTIMIZE="-O"
|
|
fi
|
|
;;
|
|
*freebsd*)
|
|
echo "Adding fix for interrupted reads"
|
|
OSVERSION=`sysctl -a | grep osreldate | awk '{ print $2 }'`
|
|
if test "$OSVERSION" -gt "480100" && \
|
|
test "$OSVERSION" -lt "500000" || \
|
|
test "$OSVERSION" -gt "500109"
|
|
then
|
|
CXXFLAGS="$CXXFLAGS -DMYSQLD_NET_RETRY_COUNT=1000000"
|
|
else
|
|
CFLAGS="$CFLAGS -DHAVE_BROKEN_REALPATH"
|
|
CXXFLAGS="$CXXFLAGS -DMYSQLD_NET_RETRY_COUNT=1000000 -DHAVE_BROKEN_REALPATH"
|
|
fi
|
|
;;
|
|
*netbsd*)
|
|
echo "Adding flag -Dunix"
|
|
CFLAGS="$CFLAGS -Dunix"
|
|
CXXFLAGS="$CXXFLAGS -Dunix"
|
|
OVERRIDE_MT_LD_ADD="\$(top_srcdir)/mit-pthreads/obj/libpthread.a"
|
|
;;
|
|
*bsdi*)
|
|
echo "Adding fix for BSDI"
|
|
CFLAGS="$CFLAGS -D__BSD__ -DHAVE_BROKEN_REALPATH"
|
|
AC_DEFINE_UNQUOTED(SOCKOPT_OPTLEN_TYPE, size_t)
|
|
;;
|
|
*sgi-irix6*)
|
|
if test "$with_named_thread" = "no"
|
|
then
|
|
echo "Using --with-named-thread=-lpthread"
|
|
with_named_thread="-lpthread"
|
|
fi
|
|
CXXFLAGS="$CXXFLAGS -D_BOOL"
|
|
;;
|
|
*aix4.3*)
|
|
echo "Adding defines for AIX"
|
|
CFLAGS="$CFLAGS -Wa,-many -DUNDEF_HAVE_INITGROUPS -DSIGNALS_DONT_BREAK_READ"
|
|
CXXFLAGS="$CXXFLAGS -Wa,-many -DUNDEF_HAVE_INITGROUPS -DSIGNALS_DONT_BREAK_READ"
|
|
;;
|
|
dnl Is this the right match for DEC OSF on alpha?
|
|
*dec-osf*)
|
|
if test "$ac_cv_prog_gcc" = "yes" && test "$host_cpu" = "alpha"
|
|
then
|
|
echo "Adding defines for DEC OSF on alpha"
|
|
CFLAGS="$CFLAGS -mieee"
|
|
CXXFLAGS="$CXXFLAGS -mieee"
|
|
fi
|
|
echo "Adding defines for OSF1"
|
|
# gethostbyname_r is deprecated and doesn't work ok on OSF1
|
|
CFLAGS="$CFLAGS -DUNDEF_HAVE_GETHOSTBYNAME_R"
|
|
CXXFLAGS="$CXXFLAGS -DUNDEF_HAVE_GETHOSTBYNAME_R"
|
|
;;
|
|
*netware*)
|
|
# No need for curses library so set it to null
|
|
with_named_curses=""
|
|
|
|
# No thread library - in LibC
|
|
with_named_thread=""
|
|
|
|
#
|
|
# Edit Makefile.in files.
|
|
#
|
|
echo -n "configuring Makefile.in files for NetWare... "
|
|
for file in sql/Makefile.in libmysql/Makefile.in libmysql_r/Makefile.in sql/share/Makefile.in strings/Makefile.in client/Makefile.in
|
|
do
|
|
# echo "#### $file ####"
|
|
filedir="`dirname $file`"
|
|
filebase="`basename $file`"
|
|
filesed=$filedir/$filebase.sed
|
|
#
|
|
# Backup and always use original file
|
|
#
|
|
if test -f $file.bk
|
|
then
|
|
cp -fp $file.bk $file
|
|
else
|
|
cp -fp $file $file.bk
|
|
fi
|
|
case $file in
|
|
sql/Makefile.in)
|
|
# Use gen_lex_hash.linux instead of gen_lex_hash
|
|
# Add library dependencies to mysqld_DEPENDENCIES
|
|
lib_DEPENDENCIES="\$(bdb_libs_with_path) \$(innodb_libs) \$(pstack_libs) \$(innodb_system_libs) \$(openssl_libs)"
|
|
cat > $filesed << EOF
|
|
s,\(^.*\$(MAKE) gen_lex_hash\),#\1,
|
|
s,\(\./gen_lex_hash\),\1.linux,
|
|
s%\(mysqld_DEPENDENCIES = \) %\1$lib_DEPENDENCIES %
|
|
EOF
|
|
;;
|
|
sql/share/Makefile.in)
|
|
cat > $filesed << EOF
|
|
s,\(extra/comp_err\),\1.linux,
|
|
EOF
|
|
;;
|
|
libmysql/Makefile.in)
|
|
cat > $filesed << EOF
|
|
s,\(\./conf_to_src\)\( \$(top_srcdir)\),\1.linux\2,
|
|
s,\(: conf_to_src\),\1.linux,
|
|
EOF
|
|
;;
|
|
libmysql_r/Makefile.in)
|
|
cat > $filesed << EOF
|
|
s,\(\./conf_to_src\)\( \$(top_srcdir)\),\1.linux\2,
|
|
s,\(: conf_to_src\),\1.linux,
|
|
EOF
|
|
;;
|
|
strings/Makefile.in)
|
|
cat > $filesed << EOF
|
|
s,\(\./conf_to_src\)\( \$(top_srcdir)\),\1.linux\2,
|
|
s,\(: conf_to_src\),\1.linux,
|
|
EOF
|
|
;;
|
|
client/Makefile.in)
|
|
#
|
|
cat > $filesed << EOF
|
|
s,libmysqlclient.la,.libs/libmysqlclient.a,
|
|
EOF
|
|
;;
|
|
esac
|
|
if `sed -f $filesed $file > $file.nw`;\
|
|
then
|
|
mv -f $file.nw $file
|
|
rm -f $filesed
|
|
else
|
|
exit 1
|
|
fi
|
|
# wait for file system changes to complete
|
|
sleep 1
|
|
done
|
|
echo "done"
|
|
|
|
#
|
|
# Make sure the following files are writable.
|
|
#
|
|
# When the files are retrieved from some source code control systems they are read-only.
|
|
#
|
|
echo -n "making sure specific build files are writable... "
|
|
for file in \
|
|
Docs/include.texi \
|
|
Docs/mysql.info \
|
|
Docs/manual.txt \
|
|
Docs/manual_toc.html \
|
|
Docs/manual.html \
|
|
Docs/INSTALL-BINARY \
|
|
INSTALL-SOURCE \
|
|
COPYING \
|
|
COPYING.LIB \
|
|
MIRRORS
|
|
do
|
|
if test -e $file; then
|
|
chmod +w $file
|
|
fi
|
|
done
|
|
echo "done"
|
|
|
|
;;
|
|
esac
|
|
|
|
|
|
#---START: Used in for client configure
|
|
# Check if we threads are in libc or if we should use
|
|
# -lpthread, -lpthreads or mit-pthreads
|
|
# We have to check libc last because else it fails on Solaris 2.6
|
|
|
|
with_posix_threads="no"
|
|
# Hack for DEC-UNIX (OSF1)
|
|
if test "$with_named_thread" = "no" -a "$with_mit_threads" = "no"
|
|
then
|
|
# Look for LinuxThreads.
|
|
AC_MSG_CHECKING("LinuxThreads")
|
|
res=`grep Linuxthreads /usr/include/pthread.h 2>/dev/null | wc -l`
|
|
if test "$res" -gt 0
|
|
then
|
|
AC_MSG_RESULT("Found")
|
|
AC_DEFINE(HAVE_LINUXTHREADS)
|
|
# Linux 2.0 sanity check
|
|
AC_TRY_COMPILE([#include <sched.h>], [int a = sched_get_priority_min(1);], ,
|
|
AC_MSG_ERROR([Syntax error in sched.h. Change _P to __P in the /usr/include/sched.h file. See the Installation chapter in the Reference Manual]))
|
|
# RedHat 5.0 does not work with dynamic linking of this. -static also
|
|
# gives a speed increase in linux so it does not hurt on other systems.
|
|
with_named_thread="-lpthread"
|
|
else
|
|
AC_MSG_RESULT("Not found")
|
|
# If this is a linux machine we should barf
|
|
if test "$IS_LINUX" = "true"
|
|
then
|
|
AC_MSG_ERROR([This is a linux system and Linuxthreads was not
|
|
found. On linux Linuxthreads should be used. Please install Linuxthreads
|
|
(or a new glibc) and try again. See the Installation chapter in the
|
|
Reference Manual for more information.])
|
|
else
|
|
AC_MSG_CHECKING("DEC threads")
|
|
if test -f /usr/shlib/libpthread.so -a -f /usr/lib/libmach.a -a -f /usr/ccs/lib/cmplrs/cc/libexc.a
|
|
then
|
|
with_named_thread="-lpthread -lmach -lexc"
|
|
CFLAGS="$CFLAGS -D_REENTRANT"
|
|
CXXFLAGS="$CXXFLAGS -D_REENTRANT"
|
|
AC_DEFINE(HAVE_DEC_THREADS)
|
|
AC_MSG_RESULT("yes")
|
|
else
|
|
AC_MSG_RESULT("no")
|
|
AC_MSG_CHECKING("DEC 3.2 threads")
|
|
if test -f /usr/shlib/libpthreads.so -a -f /usr/lib/libmach.a -a -f /usr/ccs/lib/cmplrs/cc/libexc.a
|
|
then
|
|
with_named_thread="-lpthreads -lmach -lc_r"
|
|
AC_DEFINE(HAVE_DEC_THREADS)
|
|
AC_DEFINE(HAVE_DEC_3_2_THREADS)
|
|
with_osf32_threads="yes"
|
|
MYSQLD_DEFAULT_SWITCHES="--skip-thread-priority"
|
|
AC_MSG_RESULT("yes")
|
|
else
|
|
AC_MSG_RESULT("no")
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
|
|
dnl This is needed because -lsocket has to come after the thread
|
|
dnl library on SCO.
|
|
AC_DEFUN([MYSQL_REMOVE_SOCKET_FROM_LIBS_HACK], [
|
|
LIBS=`echo " $LIBS " | sed -e 's/ -lsocket / /g'`
|
|
])
|
|
# Hack for SCO UNIX
|
|
if test "$with_named_thread" = "no"
|
|
then
|
|
AC_MSG_CHECKING("SCO threads")
|
|
if expr "$SYSTEM_TYPE" : ".*sco.*" > /dev/null
|
|
then
|
|
if test -f /usr/lib/libgthreads.a -o -f /usr/lib/libgthreads.so
|
|
then
|
|
MYSQL_REMOVE_SOCKET_FROM_LIBS_HACK
|
|
with_named_thread="-lgthreads -lsocket -lgthreads"
|
|
# sched.h conflicts with fsu-threads
|
|
touch ./include/sched.h
|
|
|
|
# We must have gcc
|
|
if expr "$CC" : ".*gcc.*"
|
|
then
|
|
AC_MSG_RESULT("yes")
|
|
else
|
|
AC_MSG_ERROR([On SCO UNIX MySQL must be compiled with gcc. See the Installation chapter in the Reference Manual.]);
|
|
fi
|
|
AC_MSG_RESULT("yes")
|
|
elif test -f /usr/local/lib/libpthread.a -o -f /usr/local/lib/libpthread.so
|
|
then
|
|
MYSQL_REMOVE_SOCKET_FROM_LIBS_HACK
|
|
with_named_thread="-lpthread -lsocket"
|
|
# sched.h conflicts with fsu-threads
|
|
# touch ./include/sched.h
|
|
|
|
AC_MSG_CHECKING("for gcc")
|
|
# We must have gcc
|
|
if expr "$CC" : ".*gcc.*"
|
|
then
|
|
AC_MSG_RESULT("yes")
|
|
else
|
|
AC_MSG_ERROR([On SCO UNIX MySQL must be compiled with gcc. See the Installation chapter in the Reference Manual.]);
|
|
fi
|
|
AC_MSG_RESULT("yes")
|
|
# Hack for SCO UnixWare 7.1.x
|
|
#
|
|
elif test "$with_named_thread" = "no"
|
|
then
|
|
AC_MSG_RESULT("no")
|
|
AC_MSG_CHECKING("SCO UnixWare 7.1.x native threads")
|
|
if expr "$SYSTEM_TYPE" : ".*sco.*" > /dev/null
|
|
then
|
|
if test -f /usr/lib/libthread.so -o -f /usr/lib/libthreadT.so
|
|
then
|
|
MYSQL_REMOVE_SOCKET_FROM_LIBS_HACK
|
|
if expr "$CC" : ".*gcc.*"
|
|
then
|
|
with_named_thread="-pthread -lsocket -lnsl"
|
|
else
|
|
with_named_thread="-Kthread -lsocket -lnsl"
|
|
fi
|
|
if expr "$SYSTEM_TYPE" : ".*unixware7.0.0" > /dev/null
|
|
then
|
|
AC_DEFINE(HAVE_UNIXWARE7_THREADS)
|
|
else
|
|
AC_DEFINE(HAVE_UNIXWARE7_POSIX)
|
|
fi
|
|
AC_MSG_RESULT("yes")
|
|
# We must have cc
|
|
AC_MSG_CHECKING("for gcc")
|
|
if expr "$CC" : ".*gcc.*"
|
|
then
|
|
CC="$CC -pthread -DUNIXWARE_7 -DHAVE_BROKEN_RWLOCK";
|
|
CXX="$CXX -pthread -DUNIXWARE_7 -DHAVE_BROKEN_RWLOCK";
|
|
else
|
|
CC="$CC -Kthread -DUNIXWARE_7 -DHAVE_BROKEN_RWLOCK";
|
|
CXX="$CXX -Kthread -DUNIXWARE_7 -DHAVE_BROKEN_RWLOCK";
|
|
fi
|
|
else
|
|
{ echo "configure: error: Can't find thread libs on SCO UnixWare7. See the Installation chapter in the Reference Manual." 1>&2; exit 1; };
|
|
fi
|
|
else
|
|
AC_MSG_RESULT("no")
|
|
fi
|
|
else
|
|
AC_MSG_ERROR([On SCO UNIX MySQL requires that the FSUThreads package is installed. See the Installation chapter in the Reference Manual.]);
|
|
fi
|
|
else
|
|
AC_MSG_RESULT("no")
|
|
fi
|
|
fi
|
|
# Hack for SCO UnixWare7
|
|
#
|
|
if test "$with_named_thread" = "no"
|
|
then
|
|
AC_MSG_CHECKING("SCO UnixWare7 native threads")
|
|
if expr "$SYSTEM_TYPE" : ".*UnixWare*" > /dev/null
|
|
then
|
|
if test -f /usr/lib/libthread.so -o -f /usr/lib/libthreadT.so
|
|
then
|
|
MYSQL_REMOVE_SOCKET_FROM_LIBS_HACK
|
|
if expr "$CC" : ".*gcc.*"
|
|
then
|
|
with_named_thread="-pthread -lsocket -lnsl"
|
|
else
|
|
with_named_thread="-Kthread -lsocket -lnsl"
|
|
fi
|
|
if expr "$SYSTEM_TYPE" : ".*unixware7.0.0" > /dev/null
|
|
then
|
|
AC_DEFINE(HAVE_UNIXWARE7_THREADS)
|
|
else
|
|
AC_DEFINE(HAVE_UNIXWARE7_POSIX)
|
|
fi
|
|
# We must have cc
|
|
AC_MSG_CHECKING("for gcc")
|
|
if expr "$CC" : ".*gcc.*"
|
|
then
|
|
CC="$CC -pthread -DUNIXWARE_7 -DHAVE_BROKEN_RWLOCK";
|
|
CXX="$CXX -pthread -DUNIXWARE_7 -DHAVE_BROKEN_RWLOCK";
|
|
else
|
|
CC="$CC -Kthread -DUNIXWARE_7 -DHAVE_BROKEN_RWLOCK";
|
|
CXX="$CXX -Kthread -DUNIXWARE_7 -DHAVE_BROKEN_RWLOCK";
|
|
fi
|
|
AC_MSG_RESULT("yes")
|
|
else
|
|
{ echo "configure: error: Can't find thread libs on SCO UnixWare7. See the Installation chapter in the Reference Manual." 1>&2; exit 1; };
|
|
fi
|
|
else
|
|
AC_MSG_RESULT("no")
|
|
fi
|
|
fi
|
|
|
|
# Hack for Caldera OpenUNIX8
|
|
#
|
|
if test "$with_named_thread" = "no"
|
|
then
|
|
AC_MSG_CHECKING("OpenUNIX8 native threads")
|
|
if expr "$SYSTEM_TYPE" : ".*OpenUNIX*" > /dev/null
|
|
then
|
|
if test -f /usr/lib/libthread.so -o -f /usr/lib/libthreadT.so
|
|
then
|
|
MYSQL_REMOVE_SOCKET_FROM_LIBS_HACK
|
|
if expr "$CC" : ".*gcc.*"
|
|
then
|
|
with_named_thread="-pthread -lsocket -lnsl"
|
|
else
|
|
with_named_thread="-Kthread -lsocket -lnsl"
|
|
fi
|
|
if expr "$SYSTEM_TYPE" : ".*unixware7.0.0" > /dev/null
|
|
then
|
|
AC_DEFINE(HAVE_UNIXWARE7_THREADS)
|
|
else
|
|
AC_DEFINE(HAVE_UNIXWARE7_POSIX)
|
|
fi
|
|
# We must have cc
|
|
AC_MSG_CHECKING("for gcc")
|
|
if expr "$CC" : ".*gcc.*"
|
|
then
|
|
CC="$CC -pthread -DUNIXWARE_7 -DHAVE_BROKEN_RWLOCK";
|
|
CXX="$CXX -pthread -DUNIXWARE_7 -DHAVE_BROKEN_RWLOCK";
|
|
else
|
|
CC="$CC -Kthread -DUNIXWARE_7 -DHAVE_BROKEN_RWLOCK";
|
|
CXX="$CXX -Kthread -DUNIXWARE_7 -DHAVE_BROKEN_RWLOCK";
|
|
fi
|
|
AC_MSG_RESULT("yes")
|
|
else
|
|
{ echo "configure: error: Can't find thread libs on Caldera OpenUNIX 8. See the Installation chapter in the Reference Manual." 1>&2; exit 1; };
|
|
fi
|
|
else
|
|
AC_MSG_RESULT("no")
|
|
fi
|
|
fi
|
|
|
|
# Hack for Siemens UNIX
|
|
if test "$with_named_thread" = "no" -a "$with_mit_threads" = "no"
|
|
then
|
|
AC_MSG_CHECKING("Siemens threads")
|
|
if test -f /usr/lib/libxnet.so -a "$SYSTEM_TYPE" = "sni-sysv4"
|
|
then
|
|
LIBS="-lxnet $LIBS"
|
|
NON_THREADED_CLIENT_LIBS="$NON_THREADED_CLIENT_LIBS -lxnet"
|
|
with_named_thread="-Kthread $LDFLAGS -lxnet"
|
|
LD_FLAGS=""
|
|
CFLAGS="-Kthread $CFLAGS"
|
|
CXXFLAGS="-Kthread $CXXFLAGS"
|
|
AC_MSG_RESULT("yes")
|
|
else
|
|
AC_MSG_RESULT("no")
|
|
fi
|
|
fi
|
|
|
|
# Use library named -lpthread
|
|
if test "$with_named_thread" = "no" -a "$with_pthread" = "yes"
|
|
then
|
|
with_named_thread="-lpthread"
|
|
fi
|
|
|
|
#---END:
|
|
|
|
# Hack for Solaris >= 2.5
|
|
# We want both the new and the old interface
|
|
|
|
if test "$with_named_thread" = "no" -a "$with_mit_threads" = "no"
|
|
then
|
|
AC_MSG_CHECKING("Solaris threads")
|
|
if test -f /usr/lib/libpthread.so -a -f /usr/lib/libthread.so
|
|
then
|
|
with_named_thread="-lpthread -lthread"
|
|
AC_MSG_RESULT("yes")
|
|
else
|
|
AC_MSG_RESULT("no")
|
|
fi
|
|
fi
|
|
|
|
TOOLS_LIBS="$NON_THREADED_CLIENT_LIBS"
|
|
|
|
# Should we use named pthread library ?
|
|
AC_MSG_CHECKING("named thread libs:")
|
|
if test "$with_named_thread" != "no"
|
|
then
|
|
LIBS="$with_named_thread $LIBS $with_named_thread"
|
|
TOOLS_LIBS="$with_named_thread $TOOLS_LIBS $with_named_thread"
|
|
with_posix_threads="yes"
|
|
with_mit_threads="no"
|
|
AC_MSG_RESULT("$with_named_thread")
|
|
else
|
|
AC_MSG_RESULT("no")
|
|
if test "$with_mit_threads" = "no"
|
|
then
|
|
# pthread_create is in standard libraries (As in BSDI 3.0)
|
|
AC_MSG_CHECKING("for pthread_create in -libc");
|
|
AC_TRY_LINK(
|
|
[#include <pthread.h>],
|
|
[ (void) pthread_create((pthread_t*) 0,(pthread_attr_t*) 0, 0, 0); ],
|
|
with_posix_threads=yes, with_posix_threads=no)
|
|
AC_MSG_RESULT("$with_posix_threads")
|
|
if test "$with_posix_threads" = "no"
|
|
then
|
|
AC_MSG_CHECKING("for pthread_create in -lpthread");
|
|
ac_save_LIBS="$LIBS"
|
|
ac_save_TOOLS_LIBS="$TOOLS_LIBS"
|
|
LIBS="$LIBS -lpthread"
|
|
TOOLS_LIBS="$TOOLS_LIBS -lpthread"
|
|
AC_TRY_LINK(
|
|
[#include <pthread.h>],
|
|
[ (void) pthread_create((pthread_t*) 0,(pthread_attr_t*) 0, 0, 0); ],
|
|
with_posix_threads=yes, with_posix_threads=no)
|
|
AC_MSG_RESULT("$with_posix_threads")
|
|
if test "$with_posix_threads" = "no"
|
|
then
|
|
LIBS=" $ac_save_LIBS -lpthreads"
|
|
TOOLS_LIBS=" $ac_save_TOOLS_LIBS -lpthreads"
|
|
AC_MSG_CHECKING("for pthread_create in -lpthreads");
|
|
AC_TRY_LINK(
|
|
[#include <pthread.h>],
|
|
[ pthread_create((pthread_t*) 0,(pthread_attr_t*) 0, 0, 0); ],
|
|
with_posix_threads=yes, with_posix_threads=no)
|
|
AC_MSG_RESULT("$with_posix_threads")
|
|
if test "$with_posix_threads" = "no"
|
|
then
|
|
# This is for FreeBSD
|
|
LIBS="$ac_save_LIBS -pthread"
|
|
TOOLS_LIBS="$ac_save_TOOLS_LIBS -pthread"
|
|
AC_MSG_CHECKING("for pthread_create in -pthread");
|
|
AC_TRY_LINK(
|
|
[#include <pthread.h>],
|
|
[ pthread_create((pthread_t*) 0,(pthread_attr_t*) 0, 0, 0); ],
|
|
with_posix_threads=yes, with_posix_threads=no)
|
|
AC_MSG_RESULT("$with_posix_threads")
|
|
if test "$with_posix_threads" = "no"
|
|
then
|
|
with_mit_threads="yes"
|
|
LIBS="$ac_save_LIBS"
|
|
TOOLS_LIBS="$ac_save_TOOLS_LIBS"
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
#---START: Used in for client configure
|
|
# Must be checked after, because strtok_r may be in -lpthread
|
|
# On AIX strtok_r is in libc_r
|
|
|
|
my_save_LIBS="$LIBS"
|
|
AC_CHECK_LIB(pthread,strtok_r)
|
|
LIBS="$my_save_LIBS"
|
|
if test "$ac_cv_lib_pthread_strtok_r" = "no"
|
|
then
|
|
AC_CHECK_LIB(c_r,strtok_r)
|
|
case "$with_osf32_threads---$target_os" in
|
|
# Don't keep -lc_r in LIBS; -pthread handles it magically
|
|
yes---* | *---freebsd* | *---hpux*) LIBS="$my_save_LIBS" ;;
|
|
|
|
esac
|
|
AC_CHECK_FUNCS(strtok_r pthread_init)
|
|
else
|
|
AC_CHECK_FUNCS(strtok_r)
|
|
fi
|
|
#---END:
|
|
|
|
# Check for dlopen, needed for user definable functions
|
|
# This must be checked after threads on AIX
|
|
# We only need this for mysqld, not for the clients.
|
|
|
|
my_save_LIBS="$LIBS"
|
|
LIBS=""
|
|
AC_CHECK_LIB(dl,dlopen)
|
|
LIBDL=$LIBS
|
|
LIBS="$my_save_LIBS"
|
|
AC_SUBST(LIBDL)
|
|
|
|
# System characteristics
|
|
case $SYSTEM_TYPE in
|
|
*netware* | *modesto*) ;;
|
|
*)
|
|
AC_SYS_RESTARTABLE_SYSCALLS
|
|
;;
|
|
esac
|
|
|
|
# Build optimized or debug version ?
|
|
# First check for gcc and g++
|
|
if test "$ac_cv_prog_gcc" = "yes"
|
|
then
|
|
DEBUG_CFLAGS="-g"
|
|
DEBUG_OPTIMIZE_CC="-O"
|
|
OPTIMIZE_CFLAGS="$MAX_C_OPTIMIZE"
|
|
else
|
|
DEBUG_CFLAGS="-g"
|
|
DEBUG_OPTIMIZE_CC=""
|
|
OPTIMIZE_CFLAGS="-O"
|
|
fi
|
|
if test "$ac_cv_prog_cxx_g" = "yes"
|
|
then
|
|
DEBUG_CXXFLAGS="-g"
|
|
DEBUG_OPTIMIZE_CXX="-O"
|
|
OPTIMIZE_CXXFLAGS="$MAX_CXX_OPTIMIZE"
|
|
else
|
|
DEBUG_CXXFLAGS="-g"
|
|
DEBUG_OPTIMIZE_CXX=""
|
|
OPTIMIZE_CXXFLAGS="-O"
|
|
fi
|
|
|
|
if expr "$SYSTEM_TYPE" : ".*netware.*" > /dev/null; then
|
|
DEBUG_CFLAGS="$DEBUG_CFLAGS -DDEBUG -sym internal,codeview4"
|
|
DEBUG_CXXFLAGS="$DEBUG_CXXFLAGS -DDEBUG -sym internal,codeview4"
|
|
OPTIMIZE_CFLAGS="$OPTIMIZE_CFLAGS -DNDEBUG"
|
|
OPTIMIZE_CXXFLAGS="$OPTIMIZE_CXXFLAGS -DNDEBUG"
|
|
fi
|
|
|
|
AC_ARG_WITH(debug,
|
|
[ --without-debug Build a production version without debugging code],
|
|
[with_debug=$withval],
|
|
[with_debug=no])
|
|
if test "$with_debug" = "yes"
|
|
then
|
|
# Medium debug.
|
|
CFLAGS="$DEBUG_CFLAGS $DEBUG_OPTIMIZE_CC -DDBUG_ON -DSAFE_MUTEX $CFLAGS"
|
|
CXXFLAGS="$DEBUG_CXXFLAGS $DEBUG_OPTIMIZE_CXX -DSAFE_MUTEX $CXXFLAGS"
|
|
elif test "$with_debug" = "full"
|
|
then
|
|
# Full debug. Very slow in some cases
|
|
CFLAGS="$DEBUG_CFLAGS -DDBUG_ON -DSAFE_MUTEX -DSAFEMALLOC $CFLAGS"
|
|
CXXFLAGS="$DEBUG_CXXFLAGS -DSAFE_MUTEX -DSAFEMALLOC $CXXFLAGS"
|
|
else
|
|
# Optimized version. No debug
|
|
CFLAGS="$OPTIMIZE_CFLAGS -DDBUG_OFF $CFLAGS"
|
|
CXXFLAGS="$OPTIMIZE_CXXFLAGS -DDBUG_OFF $CXXFLAGS"
|
|
fi
|
|
|
|
# Force static compilation to avoid linking problems/get more speed
|
|
AC_ARG_WITH(mysqld-ldflags,
|
|
[ --with-mysqld-ldflags Extra linking arguments for mysqld],
|
|
[MYSQLD_EXTRA_LDFLAGS=$withval],
|
|
[MYSQLD_EXTRA_LDFLAGS=])
|
|
AC_SUBST(MYSQLD_EXTRA_LDFLAGS)
|
|
|
|
AC_ARG_WITH(client-ldflags,
|
|
[ --with-client-ldflags Extra linking arguments for clients],
|
|
[CLIENT_EXTRA_LDFLAGS=$withval],
|
|
[CLIENT_EXTRA_LDFLAGS=])
|
|
AC_SUBST(CLIENT_EXTRA_LDFLAGS)
|
|
|
|
AC_ARG_WITH(lib-ccflags,
|
|
[ --with-lib-ccflags Extra CC options for libraries],
|
|
[LIB_EXTRA_CCFLAGS=$withval],
|
|
[LIB_EXTRA_CCFLAGS=])
|
|
AC_SUBST(LIB_EXTRA_CCFLAGS)
|
|
|
|
# Avoid stupid bug on some OS
|
|
AC_ARG_WITH(low-memory,
|
|
[ --with-low-memory Try to use less memory to compile to avoid
|
|
memory limitations.],
|
|
[with_lowmem=$withval],
|
|
[with_lowmem=no])
|
|
if test "$with_lowmem" = "yes"
|
|
then
|
|
if test "$ac_cv_prog_gcc" = "yes"
|
|
then
|
|
LM_CFLAGS="-fno-inline"
|
|
else
|
|
LM_CFLAGS="-O0"
|
|
fi
|
|
else
|
|
LM_CFLAGS=""
|
|
fi
|
|
AC_SUBST(LM_CFLAGS)
|
|
|
|
AC_ARG_WITH(comment,
|
|
[ --with-comment Comment about compilation environment.],
|
|
[with_comment=$withval],
|
|
[with_comment=no])
|
|
if test "$with_comment" != "no"
|
|
then
|
|
COMPILATION_COMMENT=$with_comment
|
|
else
|
|
COMPILATION_COMMENT="Source distribution"
|
|
fi
|
|
AC_SUBST(COMPILATION_COMMENT)
|
|
|
|
AC_MSG_CHECKING("need of special linking flags")
|
|
if test "$IS_LINUX" = "true" -a "$ac_cv_prog_gcc" = "yes" -a "$all_is_static" != "yes"
|
|
then
|
|
LDFLAGS="$LDFLAGS -rdynamic"
|
|
AC_MSG_RESULT("-rdynamic")
|
|
else
|
|
AC_MSG_RESULT("none")
|
|
fi
|
|
|
|
dnl Checks for typedefs, structures, and compiler characteristics.
|
|
AC_C_CONST
|
|
AC_C_INLINE
|
|
AC_TYPE_OFF_T
|
|
AC_STRUCT_ST_RDEV
|
|
AC_HEADER_TIME
|
|
AC_STRUCT_TM
|
|
# AC_CHECK_SIZEOF return 0 when it does not find the size of a
|
|
# type. We want a error instead.
|
|
AC_CHECK_SIZEOF(char, 1)
|
|
if test "$ac_cv_sizeof_char" -eq 0
|
|
then
|
|
AC_MSG_ERROR([No size for char type.
|
|
A likely cause for this could be that there isn't any
|
|
static libraries installed. You can verify this by checking if you have libm.a
|
|
in /lib, /usr/lib or some other standard place. If this is the problem,
|
|
install the static libraries and try again. If this isn't the problem,
|
|
examine config.log for possible errors. If you want to report this, use
|
|
'scripts/mysqlbug' and include at least the last 20 rows from config.log!])
|
|
fi
|
|
AC_CHECK_SIZEOF(char*, 4)
|
|
AC_CHECK_SIZEOF(int, 4)
|
|
if test "$ac_cv_sizeof_int" -eq 0
|
|
then
|
|
AC_MSG_ERROR("No size for int type.")
|
|
fi
|
|
AC_CHECK_SIZEOF(long, 4)
|
|
if test "$ac_cv_sizeof_long" -eq 0
|
|
then
|
|
AC_MSG_ERROR("No size for long type.")
|
|
fi
|
|
AC_CHECK_SIZEOF(long long, 8)
|
|
if test "$ac_cv_sizeof_long_long" -eq 0
|
|
then
|
|
AC_MSG_ERROR("MySQL needs a long long type.")
|
|
fi
|
|
# off_t is not a builtin type
|
|
MYSQL_CHECK_SIZEOF(off_t, 4)
|
|
if test "$ac_cv_sizeof_off_t" -eq 0
|
|
then
|
|
AC_MSG_ERROR("MySQL needs a off_t type.")
|
|
fi
|
|
# This always gives a warning. Ignore it unless you are cross compiling
|
|
AC_C_BIGENDIAN
|
|
#---START: Used in for client configure
|
|
# Check base type of last arg to accept
|
|
MYSQL_TYPE_ACCEPT
|
|
|
|
#---END:
|
|
# Find where the stack goes
|
|
MYSQL_STACK_DIRECTION
|
|
# We want to skip alloca on irix unconditionally. It may work on some version..
|
|
MYSQL_FUNC_ALLOCA
|
|
# Do struct timespec have members tv_sec or ts_sec
|
|
MYSQL_TIMESPEC_TS
|
|
# Do we have the tzname variable
|
|
MYSQL_TZNAME
|
|
# Do the system files define ulong
|
|
MYSQL_CHECK_ULONG
|
|
# Do the system files define uchar
|
|
MYSQL_CHECK_UCHAR
|
|
# Do the system files define uint
|
|
MYSQL_CHECK_UINT
|
|
# Check for fp_except in ieeefp.h
|
|
MYSQL_CHECK_FP_EXCEPT
|
|
# Check for IN_ADDR_T
|
|
MYSQL_CHECK_IN_ADDR_T
|
|
# Do the c++ compiler have a bool type
|
|
MYSQL_CXX_BOOL
|
|
# Check some common bugs with gcc 2.8.# on sparc
|
|
if ! ( expr "$SYSTEM_TYPE" : ".*netware.*" > /dev/null ); then
|
|
MYSQL_CHECK_LONGLONG_TO_FLOAT
|
|
if test "$ac_cv_conv_longlong_to_float" != "yes"
|
|
then
|
|
AC_MSG_ERROR([Your compiler cannot convert a longlong value to a float!
|
|
If you are using gcc 2.8.# you should upgrade to egcs 1.0.3 or newer and try
|
|
again]);
|
|
fi
|
|
fi
|
|
MYSQL_PTHREAD_YIELD
|
|
|
|
######################################################################
|
|
# For readline/libedit (We simply move the mimimum amount of stuff from
|
|
# the readline/libedit configure.in here)
|
|
|
|
dnl Checks for header files.
|
|
AC_CHECK_HEADERS(malloc.h sys/cdefs.h)
|
|
|
|
dnl Checks for library functions.
|
|
AC_FUNC_ALLOCA
|
|
AC_PROG_GCC_TRADITIONAL
|
|
AC_TYPE_SIGNAL
|
|
AC_CHECK_FUNCS(re_comp regcomp strdup)
|
|
|
|
AC_CHECK_HEADERS(vis.h)
|
|
AC_CHECK_FUNCS(strlcat strlcpy)
|
|
AC_CHECK_FUNCS(issetugid)
|
|
AC_CHECK_FUNCS(fgetln)
|
|
AC_CHECK_FUNCS(getline flockfile)
|
|
|
|
# from old readline settting:
|
|
|
|
MAKE_SHELL=/bin/sh
|
|
AC_SUBST(MAKE_SHELL)
|
|
|
|
# Already-done: stdlib.h string.h unistd.h termios.h
|
|
AC_CHECK_HEADERS(varargs.h stdarg.h dirent.h locale.h ndir.h sys/dir.h \
|
|
sys/file.h sys/ndir.h sys/ptem.h sys/pte.h sys/select.h sys/stream.h \
|
|
sys/mman.h curses.h termcap.h termio.h termbits.h asm/termbits.h grp.h \
|
|
paths.h semaphore.h)
|
|
|
|
# Already-done: strcasecmp
|
|
AC_CHECK_FUNCS(lstat putenv select setenv setlocale strcoll tcgetattr)
|
|
|
|
AC_STAT_MACROS_BROKEN
|
|
MYSQL_SIGNAL_CHECK
|
|
MYSQL_CHECK_GETPW_FUNCS
|
|
MYSQL_HAVE_TIOCGWINSZ
|
|
MYSQL_HAVE_FIONREAD
|
|
MYSQL_HAVE_TIOCSTAT
|
|
MYSQL_STRUCT_DIRENT_D_INO
|
|
MYSQL_TYPE_SIGHANDLER
|
|
if test "$with_named_curses" = "no"
|
|
then
|
|
MYSQL_CHECK_LIB_TERMCAP
|
|
else
|
|
TERMCAP_LIB="$with_named_curses"
|
|
fi
|
|
AC_SUBST(TERMCAP_LIB)
|
|
|
|
# End of readline/libedit stuff
|
|
#########################################################################
|
|
|
|
dnl Checks for library functions.
|
|
|
|
#
|
|
# The following code disables intrinsic function support while we test for
|
|
# library functions. This is to avoid configure problems with Intel ecc
|
|
# compiler
|
|
|
|
ORG_CFLAGS="$CFLAGS"
|
|
if test "$GCC" != "yes"; then
|
|
AC_SYS_COMPILER_FLAG(-nolib_inline,nolib_inline,CFLAGS,[],[])
|
|
fi
|
|
|
|
AC_FUNC_MMAP
|
|
AC_TYPE_SIGNAL
|
|
MYSQL_TYPE_QSORT
|
|
AC_FUNC_UTIME_NULL
|
|
AC_FUNC_VPRINTF
|
|
|
|
AC_CHECK_FUNCS(alarm bcmp bfill bmove bzero chsize cuserid fchmod fcntl \
|
|
fconvert fdatasync finite fpresetsticky fpsetmask fsync ftruncate \
|
|
getcwd gethostbyaddr_r gethostbyname_r getpass getpassphrase getpwnam \
|
|
getpwuid getrlimit getrusage getwd gmtime_r index initgroups isnan \
|
|
localtime_r locking longjmp lrand48 madvise mallinfo memcpy memmove \
|
|
mkstemp mlockall perror poll pread pthread_attr_create clock_gettime \
|
|
pthread_attr_getstacksize pthread_attr_setprio pthread_attr_setschedparam \
|
|
pthread_attr_setstacksize pthread_condattr_create pthread_getsequence_np \
|
|
pthread_key_delete pthread_rwlock_rdlock pthread_setprio \
|
|
pthread_setprio_np pthread_setschedparam pthread_sigmask readlink \
|
|
realpath rename rint rwlock_init setupterm sighold sigset sigthreadmask \
|
|
snprintf socket stpcpy strcasecmp strerror strnlen strpbrk strstr strtol \
|
|
strtoll strtoul strtoull tell tempnam thr_setconcurrency vidattr)
|
|
|
|
# isinf() could be a function or a macro (HPUX)
|
|
AC_MSG_CHECKING(for isinf with <math.h>)
|
|
AC_TRY_LINK([#include <math.h>], [float f = 0.0; isinf(f)],
|
|
AC_MSG_RESULT(yes) AC_DEFINE(HAVE_ISINF,,[isinf() macro or function]),
|
|
AC_MSG_RESULT(no))
|
|
|
|
CFLAGS="$ORG_CFLAGS"
|
|
|
|
# Sanity check: We chould not have any fseeko symbol unless
|
|
# large_file_support=yes
|
|
AC_CHECK_FUNC(fseeko,
|
|
[if test "$large_file_support" = no -a "$IS_LINUX" = "true";
|
|
then
|
|
AC_MSG_ERROR("Found fseeko symbol but large_file_support is not enabled!");
|
|
fi]
|
|
)
|
|
|
|
my_save_LIBS="$LIBS"
|
|
LIBS="$LIBS $LIBDL"
|
|
AC_CHECK_FUNCS(dlopen dlerror)
|
|
LIBS="$my_save_LIBS"
|
|
|
|
# Check definition of gethostbyaddr_r (glibc2 defines this with 8 arguments)
|
|
ac_save_CXXFLAGS="$CXXFLAGS"
|
|
AC_CACHE_CHECK([style of gethost* routines], mysql_cv_gethost_style,
|
|
AC_LANG_SAVE
|
|
AC_LANG_CPLUSPLUS
|
|
|
|
# Do not treat warnings as errors if we are linking against other libc
|
|
# this is to work around gcc not being permissive on non-system includes
|
|
# with respect to ANSI C++
|
|
# We also remove the -fbranch-probabilities option as this will give warnings
|
|
# about not profiled code, which confuses configure
|
|
if test "$ac_cv_prog_gxx" = "yes" -a "$with_other_libc" = "no"
|
|
then
|
|
CXXFLAGS=`echo "$CXXFLAGS -Werror" | sed 's/-fbranch-probabilities//'`
|
|
fi
|
|
|
|
AC_TRY_COMPILE(
|
|
[#undef inline
|
|
#if !defined(SCO) && !defined(__osf__) && !defined(_REENTRANT)
|
|
#define _REENTRANT
|
|
#endif
|
|
#include <pthread.h>
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <netinet/in.h>
|
|
#include <arpa/inet.h>
|
|
#include <netdb.h>],
|
|
[int skr;
|
|
struct hostent *foo = gethostbyaddr_r((const char *) 0,
|
|
0, 0, (struct hostent *) 0, (char *) NULL, 0, &skr); return (foo == 0);],
|
|
mysql_cv_gethost_style=solaris, mysql_cv_gethost_style=other))
|
|
AC_LANG_RESTORE
|
|
CXXFLAGS="$ac_save_CXXFLAGS"
|
|
if test "$mysql_cv_gethost_style" = "solaris"
|
|
then
|
|
AC_DEFINE(HAVE_SOLARIS_STYLE_GETHOST)
|
|
fi
|
|
|
|
#---START: Used in for client configure
|
|
|
|
# Check definition of gethostbyname_r (glibc2.0.100 is different from Solaris)
|
|
ac_save_CXXFLAGS="$CXXFLAGS"
|
|
AC_CACHE_CHECK([style of gethostname_r routines], mysql_cv_gethostname_style,
|
|
AC_LANG_SAVE
|
|
AC_LANG_CPLUSPLUS
|
|
if test "$ac_cv_prog_gxx" = "yes" -a "$with_other_libc" = "no"
|
|
then
|
|
CXXFLAGS=`echo "$CXXFLAGS -Werror" | sed 's/-fbranch-probabilities//'`
|
|
fi
|
|
AC_TRY_COMPILE(
|
|
[#undef inline
|
|
#if !defined(SCO) && !defined(__osf__) && !defined(_REENTRANT)
|
|
#define _REENTRANT
|
|
#endif
|
|
#include <pthread.h>
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <netinet/in.h>
|
|
#include <arpa/inet.h>
|
|
#include <netdb.h>],
|
|
[int skr;
|
|
|
|
skr = gethostbyname_r((const char *) 0,
|
|
(struct hostent*) 0, (char*) 0, 0, (struct hostent **) 0, &skr);],
|
|
mysql_cv_gethostname_style=glibc2, mysql_cv_gethostname_style=other))
|
|
AC_LANG_RESTORE
|
|
CXXFLAGS="$ac_save_CXXFLAGS"
|
|
if test "$mysql_cv_gethostname_style" = "glibc2"
|
|
then
|
|
AC_DEFINE(HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE)
|
|
fi
|
|
|
|
# Check 3rd argument of getthostbyname_r
|
|
ac_save_CXXFLAGS="$CXXFLAGS"
|
|
AC_CACHE_CHECK([3 argument to gethostname_r routines], mysql_cv_gethostname_arg,
|
|
AC_LANG_SAVE
|
|
AC_LANG_CPLUSPLUS
|
|
if test "$ac_cv_prog_gxx" = "yes" -a "$with_other_libc" = "no"
|
|
then
|
|
CXXFLAGS=`echo "$CXXFLAGS -Werror" | sed 's/-fbranch-probabilities//'`
|
|
fi
|
|
AC_TRY_COMPILE(
|
|
[#undef inline
|
|
#if !defined(SCO) && !defined(__osf__) && !defined(_REENTRANT)
|
|
#define _REENTRANT
|
|
#endif
|
|
#include <pthread.h>
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <netinet/in.h>
|
|
#include <arpa/inet.h>
|
|
#include <netdb.h>],
|
|
[int skr;
|
|
|
|
skr = gethostbyname_r((const char *) 0, (struct hostent*) 0, (struct hostent_data*) 0);],
|
|
mysql_cv_gethostname_arg=hostent_data, mysql_cv_gethostname_arg=char))
|
|
AC_LANG_RESTORE
|
|
CXXFLAGS="$ac_save_CXXFLAGS"
|
|
if test "$mysql_cv_gethostname_arg" = "hostent_data"
|
|
then
|
|
AC_DEFINE(HAVE_GETHOSTBYNAME_R_RETURN_INT)
|
|
fi
|
|
|
|
|
|
if test "$with_mit_threads" = "no"
|
|
then
|
|
# Check definition of pthread_getspecific
|
|
AC_CACHE_CHECK("args to pthread_getspecific", mysql_cv_getspecific_args,
|
|
AC_TRY_COMPILE(
|
|
[#if !defined(SCO) && !defined(__osf__) && !defined(_REENTRANT)
|
|
#define _REENTRANT
|
|
#endif
|
|
#define _POSIX_PTHREAD_SEMANTICS
|
|
#include <pthread.h> ],
|
|
[ void *pthread_getspecific(pthread_key_t key);
|
|
pthread_getspecific((pthread_key_t) NULL); ],
|
|
mysql_cv_getspecific_args=POSIX, mysql_cv_getspecific_args=other))
|
|
if test "$mysql_cv_getspecific_args" = "other"
|
|
then
|
|
AC_DEFINE(HAVE_NONPOSIX_PTHREAD_GETSPECIFIC)
|
|
fi
|
|
|
|
# Check definition of pthread_mutex_init
|
|
AC_CACHE_CHECK("args to pthread_mutex_init", mysql_cv_mutex_init_args,
|
|
AC_TRY_COMPILE(
|
|
[#if !defined(SCO) && !defined(__osf__)
|
|
#define _REENTRANT
|
|
#endif
|
|
#define _POSIX_PTHREAD_SEMANTICS
|
|
#include <pthread.h> ],
|
|
[
|
|
pthread_mutexattr_t attr;
|
|
pthread_mutex_t mp;
|
|
pthread_mutex_init(&mp,&attr); ],
|
|
mysql_cv_mutex_init_args=POSIX, mysql_cv_mutex_init_args=other))
|
|
if test "$mysql_cv_mutex_init_args" = "other"
|
|
then
|
|
AC_DEFINE(HAVE_NONPOSIX_PTHREAD_MUTEX_INIT)
|
|
fi
|
|
fi
|
|
#---END:
|
|
|
|
#---START: Used in for client configure
|
|
# Check definition of readdir_r
|
|
AC_CACHE_CHECK("args to readdir_r", mysql_cv_readdir_r,
|
|
AC_TRY_LINK(
|
|
[#if !defined(SCO) && !defined(__osf__)
|
|
#define _REENTRANT
|
|
#endif
|
|
#define _POSIX_PTHREAD_SEMANTICS
|
|
#include <pthread.h>
|
|
#include <dirent.h>],
|
|
[ int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);
|
|
readdir_r((DIR *) NULL, (struct dirent *) NULL, (struct dirent **) NULL); ],
|
|
mysql_cv_readdir_r=POSIX, mysql_cv_readdir_r=other))
|
|
if test "$mysql_cv_readdir_r" = "POSIX"
|
|
then
|
|
AC_DEFINE(HAVE_READDIR_R)
|
|
fi
|
|
|
|
# Check definition of posix sigwait()
|
|
AC_CACHE_CHECK("style of sigwait", mysql_cv_sigwait,
|
|
AC_TRY_LINK(
|
|
[#if !defined(SCO) && !defined(__osf__)
|
|
#define _REENTRANT
|
|
#endif
|
|
#define _POSIX_PTHREAD_SEMANTICS
|
|
#include <pthread.h>
|
|
#include <signal.h>],
|
|
[#ifndef _AIX
|
|
sigset_t set;
|
|
int sig;
|
|
sigwait(&set,&sig);
|
|
#endif],
|
|
mysql_cv_sigwait=POSIX, mysql_cv_sigwait=other))
|
|
if test "$mysql_cv_sigwait" = "POSIX"
|
|
then
|
|
AC_DEFINE(HAVE_SIGWAIT)
|
|
fi
|
|
|
|
if test "$mysql_cv_sigwait" != "POSIX"
|
|
then
|
|
unset mysql_cv_sigwait
|
|
# Check definition of posix sigwait()
|
|
AC_CACHE_CHECK("style of sigwait", mysql_cv_sigwait,
|
|
AC_TRY_LINK(
|
|
[#if !defined(SCO) && !defined(__osf__)
|
|
#define _REENTRANT
|
|
#endif
|
|
#define _POSIX_PTHREAD_SEMANTICS
|
|
#include <pthread.h>
|
|
#include <signal.h>],
|
|
[sigset_t set;
|
|
int sig;
|
|
sigwait(&set);],
|
|
mysql_cv_sigwait=NONPOSIX, mysql_cv_sigwait=other))
|
|
if test "$mysql_cv_sigwait" = "NONPOSIX"
|
|
then
|
|
AC_DEFINE(HAVE_NONPOSIX_SIGWAIT)
|
|
fi
|
|
fi
|
|
#---END:
|
|
|
|
# Check if pthread_attr_setscope() exists
|
|
AC_CACHE_CHECK("for pthread_attr_setscope", mysql_cv_pthread_attr_setscope,
|
|
AC_TRY_LINK(
|
|
[#if !defined(SCO) && !defined(__osf__)
|
|
#define _REENTRANT
|
|
#endif
|
|
#define _POSIX_PTHREAD_SEMANTICS
|
|
#include <pthread.h>],
|
|
[pthread_attr_t thr_attr;
|
|
pthread_attr_setscope(&thr_attr,0);],
|
|
mysql_cv_pthread_attr_setscope=yes, mysql_cv_pthread_attr_setscope=no))
|
|
if test "$mysql_cv_pthread_attr_setscope" = "yes"
|
|
then
|
|
AC_DEFINE(HAVE_PTHREAD_ATTR_SETSCOPE)
|
|
fi
|
|
|
|
# Check for bad includes
|
|
AC_MSG_CHECKING("can netinet files be included")
|
|
AC_TRY_COMPILE(
|
|
[#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <netinet/in_systm.h>
|
|
#include <netinet/in.h>
|
|
#include <netinet/ip.h>
|
|
#include <netinet/tcp.h>],
|
|
[ printf("1\n"); ],
|
|
netinet_inc=yes, netinet_inc=no)
|
|
if test "$netinet_inc" = "no"
|
|
then
|
|
AC_DEFINE(HAVE_BROKEN_NETINET_INCLUDES)
|
|
fi
|
|
AC_MSG_RESULT("$netinet_inc")
|
|
|
|
# Only build client code?
|
|
AC_ARG_WITH(server,
|
|
[ --without-server Only build the client.],
|
|
[with_server=$withval],
|
|
[with_server=yes]
|
|
)
|
|
|
|
AC_ARG_WITH(embedded-server,
|
|
[ --with-embedded-server Build the embedded server (libmysqld).],
|
|
[with_embedded_server=$withval],
|
|
[with_embedded_server=no]
|
|
)
|
|
|
|
AC_ARG_WITH(query_cache,
|
|
[ --without-query-cache Do not build query cache.],
|
|
[with_query_cache=$withval],
|
|
[with_query_cache=yes]
|
|
)
|
|
|
|
if test "$with_query_cache" = "yes"
|
|
then
|
|
AC_DEFINE(HAVE_QUERY_CACHE)
|
|
fi
|
|
|
|
AC_ARG_WITH(extra-tools,
|
|
[ --without-extra-tools Skip building utilites in the tools directory.],
|
|
[with_tools=$withval],
|
|
[with_tools=yes]
|
|
)
|
|
|
|
tools_dirs=""
|
|
if test "$with_tools" = "yes"
|
|
then
|
|
if test "$THREAD_SAFE_CLIENT" = "no"
|
|
then
|
|
echo "Warning: extra-tools disabled because --enable-thread-safe-client wasn't used"
|
|
else
|
|
tools_dirs="tools"
|
|
fi
|
|
fi
|
|
AC_SUBST(tools_dirs)
|
|
|
|
#MYSQL_CHECK_CPU
|
|
MYSQL_CHECK_MYSQLFS
|
|
MYSQL_CHECK_VIO
|
|
MYSQL_CHECK_OPENSSL
|
|
|
|
libmysqld_dirs=
|
|
if test "$with_embedded_server" = "yes"
|
|
then
|
|
libmysqld_dirs=libmysqld
|
|
# We can't build embedded library without building the server, because
|
|
# we depend on libmysys, libmystrings, libmyisam, etc.
|
|
with_server=yes
|
|
fi
|
|
# XXX: We need to add @libmysqld_extra_libs@ (or whatever) so that
|
|
# mysql_config --libmysqld-libs will print out something like
|
|
# -L/path/to/lib/mysql -lmysqld -lmyisam -lmysys -lmystrings -ldbug ...
|
|
AC_SUBST([libmysqld_dirs])
|
|
|
|
# Shall we build the docs?
|
|
AC_ARG_WITH(docs,
|
|
[ --without-docs Skip building of the documentation.],
|
|
[with_docs=$withval],
|
|
[with_docs=yes]
|
|
)
|
|
|
|
if test "$with_docs" = "yes"
|
|
then
|
|
docs_dirs="Docs"
|
|
else
|
|
docs_dirs=""
|
|
fi
|
|
AC_SUBST(docs_dirs)
|
|
|
|
# Shall we build the bench code?
|
|
AC_ARG_WITH(bench,
|
|
[ --without-bench Skip building of the benchmark suite.],
|
|
[with_bench=$withval],
|
|
[with_bench=yes]
|
|
)
|
|
|
|
if test "$with_bench" = "yes"
|
|
then
|
|
bench_dirs="sql-bench"
|
|
else
|
|
bench_dirs=""
|
|
fi
|
|
bench_dirs="$bench_dirs mysql-test"
|
|
AC_SUBST(bench_dirs)
|
|
|
|
# Don't build readline, i have it already
|
|
AC_ARG_WITH(readline,
|
|
[ --without-readline Use system readline instead of bundled copy.],
|
|
[ with_readline=$withval ],
|
|
[ with_readline=undefined ]
|
|
)
|
|
|
|
AC_ARG_WITH(libedit,
|
|
[ --without-libedit Use system libedit instead of bundled copy.],
|
|
[ with_libedit=$withval ],
|
|
[ with_libedit=undefined ]
|
|
)
|
|
|
|
compile_readline="no"
|
|
compile_libedit="no"
|
|
|
|
if [test "$with_libedit" = "yes"] && [test "$with_readline" = "yes"]
|
|
then
|
|
AC_MSG_ERROR([You can not use --with-readline and --with-libedit at the same time, please choose one of it])
|
|
fi
|
|
|
|
readline_topdir=""
|
|
readline_basedir=""
|
|
readline_dir=""
|
|
readline_h_ln_cmd=""
|
|
readline_link=""
|
|
|
|
if expr "$SYSTEM_TYPE" : ".*netware.*" > /dev/null; then
|
|
# For NetWare, do not need readline
|
|
echo "Skipping readline"
|
|
else
|
|
|
|
if [test "$with_libedit" = "yes"] || [test "$with_libedit" = "undefined"] && [test "$with_readline" = "undefined"]
|
|
then
|
|
readline_topdir="cmd-line-utils"
|
|
readline_basedir="libedit"
|
|
readline_dir="$readline_topdir/$readline_basedir"
|
|
readline_link="\$(top_builddir)/cmd-line-utils/libedit/liblibedit.a"
|
|
readline_h_ln_cmd="\$(LN) -s \$(top_builddir)/cmd-line-utils/libedit/readline readline"
|
|
compile_libedit=yes
|
|
AC_DEFINE_UNQUOTED(USE_LIBEDIT_INTERFACE)
|
|
elif test "$with_readline" = "yes"
|
|
then
|
|
readline_topdir="cmd-line-utils"
|
|
readline_basedir="readline"
|
|
readline_dir="$readline_topdir/$readline_basedir"
|
|
readline_link="\$(top_builddir)/cmd-line-utils/readline/libreadline.a"
|
|
readline_h_ln_cmd="\$(LN) -s \$(top_builddir)/cmd-line-utils/readline readline"
|
|
compile_readline=yes
|
|
AC_DEFINE_UNQUOTED(USE_NEW_READLINE_INTERFACE)
|
|
else
|
|
MYSQL_CHECK_LIBEDIT_INTERFACE
|
|
MYSQL_CHECK_NEW_RL_INTERFACE
|
|
if [test "$mysql_cv_new_rl_interface" = "yes"] || [test "$mysql_cv_libedit_interface" = "no"]
|
|
then
|
|
readline_link="-lreadline"
|
|
else
|
|
readline_link="-ledit"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
AC_SUBST(readline_dir)
|
|
AC_SUBST(readline_topdir)
|
|
AC_SUBST(readline_basedir)
|
|
AC_SUBST(readline_link)
|
|
AC_SUBST(readline_h_ln_cmd)
|
|
|
|
|
|
dnl In order to add new charset, you must add charset name to
|
|
dnl this CHARSETS_AVAILABLE list and sql/share/charsets/Index.xml.
|
|
dnl If the character set uses strcoll or other special handling,
|
|
dnl you must also create strings/ctype-$charset_name.c
|
|
|
|
AC_DIVERT_PUSH(0)
|
|
|
|
define(CHARSETS_AVAILABLE1,ascii armscii8 ascii big5 cp1250 cp1251 cp1256 cp1257)
|
|
define(CHARSETS_AVAILABLE2,cp850 cp852 cp866 dec8 euckr gb2312 gbk)
|
|
define(CHARSETS_AVAILABLE3,greek hebrew hp8 keybcs2 koi8r koi8u)
|
|
define(CHARSETS_AVAILABLE4,latin1 latin2 latin5 latin7 macce macroman)
|
|
define(CHARSETS_AVAILABLE5,sjis swe7 tis620 ucs2 ujis utf8)
|
|
|
|
DEFAULT_CHARSET=latin1
|
|
CHARSETS_AVAILABLE="CHARSETS_AVAILABLE1 CHARSETS_AVAILABLE2 CHARSETS_AVAILABLE3 CHARSETS_AVAILABLE4 CHARSETS_AVAILABLE5"
|
|
CHARSETS_COMPLEX="big5 cp1250 euckr gb2312 gbk latin1 latin2 sjis tis620 ucs2 ujis utf8"
|
|
|
|
AC_DIVERT_POP
|
|
|
|
AC_ARG_WITH(charset,
|
|
[ --with-charset=CHARSET
|
|
Default character set, use one of:
|
|
CHARSETS_AVAILABLE1
|
|
CHARSETS_AVAILABLE2
|
|
CHARSETS_AVAILABLE3
|
|
CHARSETS_AVAILABLE4
|
|
CHARSETS_AVAILABLE5],
|
|
[default_charset="$withval"],
|
|
[default_charset="$DEFAULT_CHARSET"])
|
|
|
|
AC_ARG_WITH(collation,
|
|
[ --with-collation=COLLATION
|
|
Default collation],
|
|
[default_collation="$withval"],
|
|
[default_collation="default"])
|
|
|
|
|
|
AC_ARG_WITH(extra-charsets,
|
|
[ --with-extra-charsets=CHARSET[,CHARSET,...]
|
|
Use charsets in addition to default (none, complex,
|
|
all, or a list selected from the above sets)],
|
|
[extra_charsets="$withval"],
|
|
[extra_charsets="none"])
|
|
|
|
|
|
AC_MSG_CHECKING("character sets")
|
|
|
|
CHARSETS="$default_charset latin1 utf8"
|
|
|
|
if test "$extra_charsets" = no; then
|
|
CHARSETS="$CHARSETS"
|
|
elif test "$extra_charsets" = none; then
|
|
CHARSETS="$CHARSETS"
|
|
elif test "$extra_charsets" = complex; then
|
|
CHARSETS="$CHARSETS $CHARSETS_COMPLEX"
|
|
elif test "$extra_charsets" = all; then
|
|
CHARSETS="$CHARSETS $CHARSETS_AVAILABLE"
|
|
else
|
|
EXTRA_CHARSETS=`echo $extra_charsets | sed -e 's/,/ /g'`
|
|
CHARSETS="$CHARSETS $EXTRA_CHARSETS"
|
|
fi
|
|
|
|
for cs in $CHARSETS
|
|
do
|
|
case $cs in
|
|
armscii8)
|
|
AC_DEFINE(HAVE_CHARSET_armscii8)
|
|
;;
|
|
ascii)
|
|
AC_DEFINE(HAVE_CHARSET_ascii)
|
|
;;
|
|
big5)
|
|
AC_DEFINE(HAVE_CHARSET_big5)
|
|
AC_DEFINE(USE_MB)
|
|
AC_DEFINE(USE_MB_IDENT)
|
|
;;
|
|
cp1250)
|
|
AC_DEFINE(HAVE_CHARSET_cp1250)
|
|
;;
|
|
cp1251)
|
|
AC_DEFINE(HAVE_CHARSET_cp1251)
|
|
;;
|
|
cp1256)
|
|
AC_DEFINE(HAVE_CHARSET_cp1256)
|
|
;;
|
|
cp1257)
|
|
AC_DEFINE(HAVE_CHARSET_cp1257)
|
|
;;
|
|
cp850)
|
|
AC_DEFINE(HAVE_CHARSET_cp850)
|
|
;;
|
|
cp852)
|
|
AC_DEFINE(HAVE_CHARSET_cp852)
|
|
;;
|
|
cp866)
|
|
AC_DEFINE(HAVE_CHARSET_cp866)
|
|
;;
|
|
dec8)
|
|
AC_DEFINE(HAVE_CHARSET_dec8)
|
|
;;
|
|
euckr)
|
|
AC_DEFINE(HAVE_CHARSET_euckr)
|
|
AC_DEFINE(USE_MB)
|
|
AC_DEFINE(USE_MB_IDENT)
|
|
;;
|
|
gb2312)
|
|
AC_DEFINE(HAVE_CHARSET_gb2312)
|
|
AC_DEFINE(USE_MB)
|
|
AC_DEFINE(USE_MB_IDENT)
|
|
;;
|
|
gbk)
|
|
AC_DEFINE(HAVE_CHARSET_gbk)
|
|
AC_DEFINE(USE_MB)
|
|
AC_DEFINE(USE_MB_IDENT)
|
|
;;
|
|
greek)
|
|
AC_DEFINE(HAVE_CHARSET_greek)
|
|
;;
|
|
hebrew)
|
|
AC_DEFINE(HAVE_CHARSET_hebrew)
|
|
;;
|
|
hp8)
|
|
AC_DEFINE(HAVE_CHARSET_hp8)
|
|
;;
|
|
keybcs2)
|
|
AC_DEFINE(HAVE_CHARSET_keybcs2)
|
|
;;
|
|
koi8r)
|
|
AC_DEFINE(HAVE_CHARSET_koi8r)
|
|
;;
|
|
koi8u)
|
|
AC_DEFINE(HAVE_CHARSET_koi8u)
|
|
;;
|
|
latin1)
|
|
AC_DEFINE(HAVE_CHARSET_latin1)
|
|
;;
|
|
latin2)
|
|
AC_DEFINE(HAVE_CHARSET_latin2)
|
|
;;
|
|
latin5)
|
|
AC_DEFINE(HAVE_CHARSET_latin5)
|
|
;;
|
|
latin7)
|
|
AC_DEFINE(HAVE_CHARSET_latin7)
|
|
;;
|
|
macce)
|
|
AC_DEFINE(HAVE_CHARSET_macce)
|
|
;;
|
|
macroman)
|
|
AC_DEFINE(HAVE_CHARSET_macroman)
|
|
;;
|
|
sjis)
|
|
AC_DEFINE(HAVE_CHARSET_sjis)
|
|
AC_DEFINE(USE_MB)
|
|
AC_DEFINE(USE_MB_IDENT)
|
|
;;
|
|
swe7)
|
|
AC_DEFINE(HAVE_CHARSET_swe7)
|
|
;;
|
|
tis620)
|
|
AC_DEFINE(HAVE_CHARSET_tis620)
|
|
;;
|
|
ucs2)
|
|
AC_DEFINE(HAVE_CHARSET_ucs2)
|
|
AC_DEFINE(USE_MB)
|
|
AC_DEFINE(USE_MB_IDENT)
|
|
;;
|
|
ujis)
|
|
AC_DEFINE(HAVE_CHARSET_ujis)
|
|
AC_DEFINE(USE_MB)
|
|
AC_DEFINE(USE_MB_IDENT)
|
|
;;
|
|
utf8)
|
|
AC_DEFINE(HAVE_CHARSET_utf8)
|
|
AC_DEFINE(USE_MB)
|
|
AC_DEFINE(USE_MB_IDENT)
|
|
;;
|
|
*)
|
|
AC_MSG_ERROR([Charset '$cs' not available. (Available are: $CHARSETS_AVAILABLE).
|
|
See the Installation chapter in the Reference Manual.]);
|
|
esac
|
|
done
|
|
|
|
|
|
default_charset_collations=""
|
|
|
|
case $default_charset in
|
|
armscii8)
|
|
default_charset_default_collation="armscii8_general_ci"
|
|
default_charset_collations="armscii8_general_ci armscii_bin"
|
|
;;
|
|
ascii)
|
|
default_charset_default_collation="ascii_general_ci"
|
|
default_charset_collations="ascii_general_ci ascii_bin"
|
|
;;
|
|
big5)
|
|
default_charset_default_collation="big5_chinese_ci"
|
|
default_charset_collations="big5_chinese_ci big5_bin"
|
|
;;
|
|
cp1250)
|
|
default_charset_default_collation="cp1250_general_ci"
|
|
default_charset_collations="cp1250_general_ci cp1250_czech_ci cp1250_bin"
|
|
;;
|
|
cp1251)
|
|
default_charset_default_collation="cp1251_general_ci"
|
|
default_charset_collations="cp1251_general_ci cp1251_general_cs cp1251_bin cp1251_bulgarian_ci cp1251_ukrainian_ci"
|
|
;;
|
|
cp1256)
|
|
default_charset_default_collation="cp1256_general_ci"
|
|
default_charset_collations="cp1256_general_ci cp1256_bin"
|
|
;;
|
|
cp1257)
|
|
default_charset_default_collation="cp1257_general_ci"
|
|
default_charset_collations="cp1257_general_ci cp1257_lithuanian_ci cp1257_bin"
|
|
;;
|
|
cp850)
|
|
default_charset_default_collation="cp850_general_ci"
|
|
default_charset_collations="cp850_general_ci cp850_bin"
|
|
;;
|
|
cp852)
|
|
default_charset_default_collation="cp852_general_ci"
|
|
default_charset_collations="cp852_general_ci cp852_bin"
|
|
;;
|
|
cp866)
|
|
default_charset_default_collation="cp866_general_ci"
|
|
default_charset_collations="cp866_general_ci cp866_bin"
|
|
;;
|
|
dec8)
|
|
default_charset_default_collation="dec8_swedish_ci"
|
|
default_charset_collations="dec8_swedish_ci dec8_bin"
|
|
;;
|
|
euckr)
|
|
default_charset_default_collation="euckr_korean_ci"
|
|
default_charset_collations="euckr_korean_ci euckr_bin"
|
|
;;
|
|
gb2312)
|
|
default_charset_default_collation="gb2312_chinese_ci"
|
|
default_charset_collations="gb2312_chinese_ci gb2312_bin"
|
|
;;
|
|
gbk)
|
|
default_charset_default_collation="gbk_chinese_ci"
|
|
default_charset_collations="gbk_chinese_ci gbk_bin"
|
|
;;
|
|
greek)
|
|
default_charset_default_collation="greek_general_ci"
|
|
default_charset_collations="greek_general_ci greek_bin"
|
|
;;
|
|
hebrew)
|
|
default_charset_default_collation="hebrew_general_ci"
|
|
default_charset_collations="hebrew_general_ci hebrew_bin"
|
|
;;
|
|
hp8)
|
|
default_charset_default_collation="hp8_english_ci"
|
|
default_charset_collations="hp8_english_ci hp8_bin"
|
|
;;
|
|
keybcs2)
|
|
default_charset_default_collation="keybcs2_general_ci"
|
|
default_charset_collations="keybcs2_general_ci keybcs2_bin"
|
|
;;
|
|
koi8r)
|
|
default_charset_default_collation="koi8r_general_ci"
|
|
default_charset_collations="koi8r_general_ci koi8r_bin"
|
|
;;
|
|
koi8u)
|
|
default_charset_default_collation="koi8u_general_ci"
|
|
default_charset_collations="koi8u_general_ci koi8u_bin"
|
|
;;
|
|
latin1)
|
|
default_charset_default_collation="latin1_swedish_ci"
|
|
default_charset_collations="latin1_general_ci latin1_general_cs latin1_bin latin1_german1_ci latin1_german2_ci latin1_danish_ci latin1_swedish_ci"
|
|
;;
|
|
latin2)
|
|
default_charset_default_collation="latin2_general_ci"
|
|
default_charset_collations="latin2_general_ci latin2_bin latin2_czech_ci latin2_hungarian_ci latin2_croatian_ci"
|
|
;;
|
|
latin5)
|
|
default_charset_default_collation="latin5_turkish_ci"
|
|
default_charset_collations="latin5_turkish_ci latin5_bin"
|
|
;;
|
|
latin7)
|
|
default_charset_default_collation="latin7_general_ci"
|
|
default_charset_collations="latin7_general_ci latin7_general_cs latin7_bin latin7_estonian_cs"
|
|
;;
|
|
macce)
|
|
default_charset_default_collation="macce_general_ci"
|
|
default_charset_collations="macce_general_ci macce_bin"
|
|
;;
|
|
macroman)
|
|
default_charset_default_collation="macroman_general_ci"
|
|
default_charset_collations="macroman_general_ci macroman_bin"
|
|
;;
|
|
sjis)
|
|
default_charset_default_collation="sjis_japanese_ci"
|
|
default_charset_collations="sjis_japanese_ci sjis_bin"
|
|
;;
|
|
swe7)
|
|
default_charset_default_collation="swe7_swedish_ci"
|
|
default_charset_collations="swe7_swedish_ci swe7_bin"
|
|
;;
|
|
tis620)
|
|
default_charset_default_collation="tis620_thai_ci"
|
|
default_charset_collations="tis620_thai_ci tis620_bin"
|
|
;;
|
|
ucs2)
|
|
default_charset_default_collation="ucs2_general_ci"
|
|
default_charset_collations="ucs2_general_ci ucs2_bin"
|
|
;;
|
|
ujis)
|
|
default_charset_default_collation="ujis_japanese_ci"
|
|
default_charset_collations="ujis_japanese_ci ujis_bin"
|
|
;;
|
|
utf8)
|
|
default_charset_default_collation="utf8_general_ci"
|
|
default_charset_collations="utf8_general_ci utf8_bin"
|
|
;;
|
|
*)
|
|
AC_MSG_ERROR([Charset $cs not available. (Available are: $CHARSETS_AVAILABLE).
|
|
See the Installation chapter in the Reference Manual.]);
|
|
esac
|
|
|
|
if test "$default_collation" = default; then
|
|
default_collation=$default_charset_default_collation
|
|
fi
|
|
|
|
valid_default_collation=no
|
|
for cl in $default_charset_collations
|
|
do
|
|
if test x"$cl" = x"$default_collation"
|
|
then
|
|
valid_default_collation=yes
|
|
break
|
|
fi
|
|
done
|
|
|
|
if test x$valid_default_collation = xyes
|
|
then
|
|
AC_MSG_RESULT([default: $default_charset, collation: $default_collation; compiled in: $CHARSETS])
|
|
else
|
|
AC_MSG_ERROR([
|
|
Collation $default_collation is not valid for character set $default_charset.
|
|
Valid collations are: $default_charset_collations.
|
|
See the Installation chapter in the Reference Manual.
|
|
]);
|
|
fi
|
|
|
|
AC_DEFINE_UNQUOTED(MYSQL_DEFAULT_CHARSET_NAME,"$default_charset")
|
|
AC_DEFINE_UNQUOTED(MYSQL_DEFAULT_COLLATION_NAME,"$default_collation")
|
|
|
|
MYSQL_CHECK_ISAM
|
|
MYSQL_CHECK_BDB
|
|
MYSQL_CHECK_INNODB
|
|
MYSQL_CHECK_EXAMPLEDB
|
|
MYSQL_CHECK_NDBCLUSTER
|
|
|
|
# If we have threads generate some library functions and test programs
|
|
sql_server_dirs=
|
|
server_scripts=
|
|
thread_dirs=
|
|
|
|
dnl This probably should be cleaned up more - for now the threaded
|
|
dnl client is just using plain-old libs.
|
|
sql_client_dirs="libmysql client"
|
|
linked_client_targets="linked_libmysql_sources"
|
|
CLIENT_LIBS=$NON_THREADED_CLIENT_LIBS
|
|
if test "$THREAD_SAFE_CLIENT" != "no"
|
|
then
|
|
sql_client_dirs="libmysql_r $sql_client_dirs"
|
|
linked_client_targets="$linked_client_targets linked_libmysql_r_sources"
|
|
AC_DEFINE(THREAD_SAFE_CLIENT)
|
|
fi
|
|
|
|
CLIENT_LIBS="$CLIENT_LIBS $STATIC_NSS_FLAGS"
|
|
|
|
AC_SUBST(CLIENT_LIBS)
|
|
AC_SUBST(sql_client_dirs)
|
|
AC_SUBST(linked_client_targets)
|
|
|
|
# If configuring for NetWare, set up to link sources from and build the netware directory
|
|
netware_dir=
|
|
linked_netware_sources=
|
|
if expr "$SYSTEM_TYPE" : ".*netware.*" > /dev/null; then
|
|
netware_dir="netware"
|
|
linked_netware_sources="linked_netware_sources"
|
|
fi
|
|
AC_SUBST(netware_dir)
|
|
AC_SUBST(linked_netware_sources)
|
|
|
|
if test "$with_server" = "yes" -o "$THREAD_SAFE_CLIENT" != "no"
|
|
then
|
|
AC_DEFINE(THREAD)
|
|
# Avoid _PROGRAMS names
|
|
THREAD_LPROGRAMS="test_thr_alarm\$(EXEEXT) test_thr_lock\$(EXEEXT)"
|
|
AC_SUBST(THREAD_LPROGRAMS)
|
|
THREAD_LOBJECTS="thr_alarm.o thr_lock.o thr_mutex.o thr_rwlock.o my_pthread.o my_thr_init.o"
|
|
AC_SUBST(THREAD_LOBJECTS)
|
|
server_scripts="mysqld_safe mysql_install_db"
|
|
sql_server_dirs="strings dbug mysys extra regex"
|
|
|
|
|
|
#
|
|
# Configuration for optional table handlers
|
|
#
|
|
|
|
if test X"$have_isam" != Xno
|
|
then
|
|
sql_server_dirs="$sql_server_dirs isam merge"
|
|
fi
|
|
|
|
if test X"$have_berkeley_db" != Xno; then
|
|
if test X"$have_berkeley_db" != Xyes; then
|
|
# we must build berkeley db from source
|
|
sql_server_dirs="$sql_server_dirs $have_berkeley_db"
|
|
|
|
echo "CONFIGURING FOR BERKELEY DB"
|
|
bdb_conf_flags=
|
|
if test $with_debug = "yes"
|
|
then
|
|
bdb_conf_flags="$bdb_conf_flags --enable-debug --enable-diagnostic"
|
|
fi
|
|
# NOTICE: if you're compiling BDB, it needs to be a SUBDIR
|
|
# of $srcdir (i.e., you can 'cd $srcdir/$bdb'). It won't
|
|
# work otherwise.
|
|
if test -d "$bdb"; then :
|
|
else
|
|
# This should only happen when doing a VPATH build
|
|
echo "NOTICE: I have to make the BDB directory: `pwd`:$bdb"
|
|
mkdir "$bdb" || exit 1
|
|
fi
|
|
if test -d "$bdb"/build_unix; then :
|
|
else
|
|
# This should only happen when doing a VPATH build
|
|
echo "NOTICE: I have to make the build_unix directory: `pwd`:$bdb/build_unix"
|
|
mkdir "$bdb/build_unix" || exit 1
|
|
fi
|
|
rel_srcdir=
|
|
case "$srcdir" in
|
|
/* ) rel_srcdir="$srcdir" ;;
|
|
* ) rel_srcdir="../../$srcdir" ;;
|
|
esac
|
|
(cd $bdb/build_unix && \
|
|
sh $rel_srcdir/$bdb/dist/configure $bdb_conf_flags) || \
|
|
AC_MSG_ERROR([could not configure Berkeley DB])
|
|
|
|
dnl echo "bdb = '$bdb'; inc = '$bdb_includes', lib = '$bdb_libs'"
|
|
echo "END OF BERKELEY DB CONFIGURATION"
|
|
fi
|
|
|
|
AC_DEFINE(HAVE_BERKELEY_DB)
|
|
else
|
|
if test -d bdb; then :
|
|
else
|
|
mkdir bdb && mkdir bdb/build_unix
|
|
fi
|
|
|
|
if test -r bdb/build_unix/db.h; then :
|
|
else
|
|
cat <<EOF > bdb/build_unix/db.h
|
|
|
|
This file is a placeholder to fool make. The way that automake
|
|
and GNU make work together causes some files to depend on this
|
|
header, even if we're not building with Berkeley DB.
|
|
|
|
Obviously, if this file *is* used, it'll break and hopefully we can find
|
|
out why this file was generated by ${top_srcdir}/configure instead of
|
|
the real db.h.
|
|
|
|
If you run into some problems because of this file, please use mysql_bug
|
|
to generate a bug report, and give the exact output of make and any
|
|
details you can think of. Send the message to bugs@lists.mysql.com.
|
|
|
|
Thank you!
|
|
|
|
EOF
|
|
fi
|
|
fi
|
|
|
|
if test X"$have_innodb" = Xyes
|
|
then
|
|
innodb_conf_flags=""
|
|
sql_server_dirs="$sql_server_dirs innobase"
|
|
AC_CONFIG_SUBDIRS(innobase)
|
|
fi
|
|
|
|
if test X"$have_ndbcluster" = Xyes
|
|
then
|
|
sql_server_dirs="$sql_server_dirs ndb"
|
|
echo "CONFIGURING FOR NDB CLUSTER"
|
|
case $with_debug in
|
|
no) flag="-R" ;;
|
|
*) flag="-D" ;;
|
|
esac
|
|
flag="$flag --VERSION=$VERSION --PACKAGE=$PACKAGE"
|
|
(cd ndb && ./configure $flag) \
|
|
|| AC_MSG_ERROR([could not configure NDB Cluster])
|
|
echo "END OF NDB CLUSTER CONFIGURATION"
|
|
fi
|
|
#
|
|
# END of configuration for optional table handlers
|
|
#
|
|
sql_server_dirs="$sql_server_dirs myisam myisammrg heap vio sql"
|
|
|
|
if test "$with_posix_threads" = "no" -o "$with_mit_threads" = "yes"
|
|
then
|
|
# MIT user level threads
|
|
thread_dirs="mit-pthreads"
|
|
AC_DEFINE(HAVE_mit_thread)
|
|
MT_INCLUDES="-I\$(top_srcdir)/mit-pthreads/include"
|
|
AC_SUBST(MT_INCLUDES)
|
|
if test -n "$OVERRIDE_MT_LD_ADD"
|
|
then
|
|
MT_LD_ADD="$OVERRIDE_MT_LD_ADD"
|
|
else
|
|
MT_LD_ADD="-L \$(top_srcdir)/mit-pthreads/obj/ -lpthread"
|
|
fi
|
|
AC_SUBST(MT_LD_ADD)
|
|
echo ""
|
|
echo "Configuring MIT Pthreads"
|
|
# We will never install so installation paths are not needed.
|
|
(cd mit-pthreads && sh ./configure) || exit 1
|
|
echo "End of MIT Pthreads configuration"
|
|
echo ""
|
|
LIBS="$MT_LD_ADD $LIBS"
|
|
fi
|
|
fi
|
|
|
|
# IMPORTANT - do not modify LIBS past this line - this hack is the only way
|
|
# I know to add the static NSS magic if we have static NSS libraries with
|
|
# glibc - Sasha
|
|
|
|
LDFLAGS="$LDFLAGS $OTHER_LIBC_LIB"
|
|
LIBS="$LIBS $STATIC_NSS_FLAGS"
|
|
|
|
AC_SUBST(sql_server_dirs)
|
|
AC_SUBST(thread_dirs)
|
|
AC_SUBST(server_scripts)
|
|
|
|
#if test "$with_posix_threads" = "no" -o "$with_mit_threads" = "yes"
|
|
#then
|
|
# MIT pthreads does now support connecting with unix sockets
|
|
# AC_DEFINE(HAVE_THREADS_WITHOUT_SOCKETS)
|
|
#fi
|
|
|
|
# Some usefull subst
|
|
AC_SUBST(CC)
|
|
AC_SUBST(GXX)
|
|
#Remove TOOLS_LIBS, because this is included in LIBRARIES
|
|
#AC_SUBST(TOOLS_LIBS)
|
|
|
|
# Set configuration options for make_binary_distribution
|
|
case $SYSTEM_TYPE in
|
|
*netware*)
|
|
MAKE_BINARY_DISTRIBUTION_OPTIONS=--no-strip
|
|
;;
|
|
*)
|
|
MAKE_BINARY_DISTRIBUTION_OPTIONS=
|
|
;;
|
|
esac
|
|
if test X"$have_ndbcluster" = Xyes
|
|
then
|
|
MAKE_BINARY_DISTRIBUTION_OPTIONS="$MAKE_BINARY_DISTRIBUTION_OPTIONS --with-ndbcluster"
|
|
fi
|
|
AC_SUBST(MAKE_BINARY_DISTRIBUTION_OPTIONS)
|
|
|
|
# Output results
|
|
AC_OUTPUT(Makefile extra/Makefile mysys/Makefile isam/Makefile dnl
|
|
strings/Makefile regex/Makefile heap/Makefile dnl
|
|
bdb/Makefile dnl
|
|
myisam/Makefile myisammrg/Makefile dnl
|
|
os2/Makefile os2/include/Makefile os2/include/sys/Makefile dnl
|
|
man/Makefile BUILD/Makefile vio/Makefile dnl
|
|
libmysql_r/Makefile libmysqld/Makefile libmysqld/examples/Makefile dnl
|
|
libmysql/Makefile client/Makefile dnl
|
|
pstack/Makefile pstack/aout/Makefile sql/Makefile sql/share/Makefile dnl
|
|
sql-common/Makefile SSL/Makefile dnl
|
|
merge/Makefile dbug/Makefile scripts/Makefile dnl
|
|
include/Makefile sql-bench/Makefile tools/Makefile dnl
|
|
tests/Makefile Docs/Makefile support-files/Makefile dnl
|
|
support-files/MacOSX/Makefile mysql-test/Makefile dnl
|
|
include/mysql_version.h dnl
|
|
cmd-line-utils/Makefile dnl
|
|
cmd-line-utils/libedit/Makefile dnl
|
|
cmd-line-utils/readline/Makefile dnl
|
|
, , [
|
|
test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h
|
|
])
|
|
|
|
rm -f $AVAILABLE_LANGUAGES_ERRORS_RULES
|
|
echo
|
|
echo "MySQL has a Web site at http://www.mysql.com/ which carries details on the"
|
|
echo "latest release, upcoming features, and other information to make your"
|
|
echo "work or play with MySQL more productive. There you can also find"
|
|
echo "information about mailing lists for MySQL discussion."
|
|
echo
|
|
echo "Remember to check the platform specific part of the reference manual for"
|
|
echo "hints about installing MySQL on your platform. Also have a look at the"
|
|
echo "files in the Docs directory."
|
|
echo
|
|
# The following text is checked in ./Do-compile to verify that configure
|
|
# ended sucessfully - don't remove it.
|
|
echo "Thank you for choosing MySQL!"
|
|
echo
|