mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 05:22:25 +01:00
40ee088f68
Quoting from the bug report: The pstack library has been included in MySQL since version 4.0.0. It's useless and should be removed. Details: According to its own documentation, pstack only works on Linux on x86 in 32 bit mode and requires LinuxThreads and a statically linked binary. It doesn't really support any Linux from 2003 or later and doesn't work on any other OS.
3005 lines
95 KiB
Text
3005 lines
95 KiB
Text
dnl -*- ksh -*-
|
|
dnl Process this file with autoconf to produce a configure script.
|
|
|
|
# Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; version 2 of the License.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, write to the Free Software
|
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
# Minimum Autoconf version required.
|
|
AC_PREREQ(2.59)
|
|
|
|
dnl Various people throughout the community may parse configure.in to
|
|
dnl get the MySQL version from the source branch. If the formatting
|
|
dnl of this line is going to be changed, please announce the change to
|
|
dnl internals@lists.mysql.com in advance of pushing the change.
|
|
dnl
|
|
dnl When changing the major version number please also check the switch
|
|
dnl statement in mysqlbinlog::check_master_version(). You may also need
|
|
dnl to update version.c in ndb.
|
|
AC_INIT([MySQL Server], [5.5.7-rc], [], [mysql])
|
|
|
|
AC_CONFIG_SRCDIR([sql/mysqld.cc])
|
|
AC_CANONICAL_SYSTEM
|
|
# USTAR format gives us the possibility to store longer path names in
|
|
# TAR files, the path name is split into two parts, a 155 chacater
|
|
# first part and a 100 character second part.
|
|
AM_INIT_AUTOMAKE([1.9 tar-ustar])
|
|
AC_PROG_LIBTOOL
|
|
|
|
AM_CONFIG_HEADER([include/config.h])
|
|
|
|
# Request support for automake silent-rules if available.
|
|
# Default to verbose output. One can use the configure-time
|
|
# option --enable-silent-rules or make V=0 to activate
|
|
# silent rules.
|
|
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([no])])
|
|
|
|
PROTOCOL_VERSION=10
|
|
DOT_FRM_VERSION=6
|
|
# See the libtool docs for information on how to do shared lib versions.
|
|
SHARED_LIB_MAJOR_VERSION=16
|
|
SHARED_LIB_VERSION=$SHARED_LIB_MAJOR_VERSION:0:0
|
|
NDB_SHARED_LIB_MAJOR_VERSION=3
|
|
NDB_SHARED_LIB_VERSION=$NDB_SHARED_LIB_MAJOR_VERSION: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
|
|
# We take some made up examples
|
|
#
|
|
# VERSION 5.1.40sp1-alpha 5.0.34a 5.5.1-m2
|
|
# MYSQL_U_SCORE_VERSION 5.1.40sp1_alpha 5.0.34a 5.5.1_m2
|
|
# MYSQL_NO_DASH_VERSION 5.1.40sp1 5.0.34a 5.5.1
|
|
# MYSQL_NUMERIC_VERSION 5.1.40 5.0.34 5.5.1
|
|
# MYSQL_BASE_VERSION 5.1 5.0 5.5
|
|
# MYSQL_VERSION_ID 50140 50034 50501
|
|
#
|
|
MYSQL_U_SCORE_VERSION=`echo $VERSION | sed -e "s|-|_|"`
|
|
MYSQL_NO_DASH_VERSION=`echo $VERSION | sed -e "s|-.*$||"`
|
|
MYSQL_NUMERIC_VERSION=`echo $MYSQL_NO_DASH_VERSION | sed -e "s|[[a-z]][[a-z0-9]]*$||"`
|
|
MYSQL_BASE_VERSION=`echo $MYSQL_NUMERIC_VERSION | sed -e "s|\.[[^.]]*$||"`
|
|
MYSQL_VERSION_ID=`echo $MYSQL_NUMERIC_VERSION | \
|
|
awk -F. '{printf "%d%0.2d%0.2d", $1, $2, $3}'`
|
|
MYSQL_COPYRIGHT_YEAR=`date '+%Y'`
|
|
|
|
# Add previous major version for debian package upgrade path
|
|
MYSQL_PREVIOUS_BASE_VERSION=5.0
|
|
|
|
# The port should be constant for a LONG time
|
|
MYSQL_TCP_PORT_DEFAULT=3306
|
|
MYSQL_UNIX_ADDR_DEFAULT="/tmp/mysql.sock"
|
|
|
|
dnl Include m4
|
|
sinclude(config/ac-macros/maintainer.m4)
|
|
sinclude(config/ac-macros/alloca.m4)
|
|
sinclude(config/ac-macros/check_cpu.m4)
|
|
sinclude(config/ac-macros/character_sets.m4)
|
|
sinclude(config/ac-macros/compiler_flag.m4)
|
|
sinclude(config/ac-macros/plugins.m4)
|
|
sinclude(config/ac-macros/dtrace.m4)
|
|
sinclude(config/ac-macros/ha_ndbcluster.m4)
|
|
sinclude(config/ac-macros/large_file.m4)
|
|
sinclude(config/ac-macros/misc.m4)
|
|
sinclude(config/ac-macros/readline.m4)
|
|
sinclude(config/ac-macros/ssl.m4)
|
|
sinclude(config/ac-macros/zlib.m4)
|
|
|
|
# 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 serbian slovak spanish swedish ukrainian"
|
|
|
|
#####
|
|
#####
|
|
|
|
AC_SUBST(MYSQL_U_SCORE_VERSION)
|
|
AC_SUBST(MYSQL_NO_DASH_VERSION)
|
|
AC_SUBST(MYSQL_BASE_VERSION)
|
|
AC_SUBST(MYSQL_VERSION_ID)
|
|
AC_SUBST(MYSQL_PREVIOUS_BASE_VERSION)
|
|
AC_SUBST(MYSQL_COPYRIGHT_YEAR)
|
|
AC_SUBST(PROTOCOL_VERSION)
|
|
AC_DEFINE_UNQUOTED([PROTOCOL_VERSION], [$PROTOCOL_VERSION],
|
|
[mysql client protocol version])
|
|
AC_SUBST(DOT_FRM_VERSION)
|
|
AC_DEFINE_UNQUOTED([DOT_FRM_VERSION], [$DOT_FRM_VERSION],
|
|
[Version of .frm files])
|
|
AC_SUBST(SHARED_LIB_MAJOR_VERSION)
|
|
AC_SUBST(SHARED_LIB_VERSION)
|
|
AC_SUBST(AVAILABLE_LANGUAGES)
|
|
|
|
# Whether the maintainer mode should be enabled.
|
|
MY_MAINTAINER_MODE
|
|
|
|
# Canonicalize the configuration name.
|
|
|
|
# Check whether --with-system-type or --without-system-type was given.
|
|
AC_ARG_WITH(system-type,
|
|
[ --with-system-type Set the system type, like "sun-solaris10"],
|
|
[SYSTEM_TYPE="$withval"],
|
|
[SYSTEM_TYPE="$host_vendor-$host_os"])
|
|
AC_ARG_WITH(machine-type,
|
|
[ --with-machine-type Set the machine type, like "powerpc"],
|
|
[MACHINE_TYPE="$withval"],
|
|
[MACHINE_TYPE="$host_cpu"])
|
|
AC_SUBST(SYSTEM_TYPE)
|
|
AC_DEFINE_UNQUOTED([SYSTEM_TYPE], ["$SYSTEM_TYPE"],
|
|
[Name of system, eg sun-solaris])
|
|
AC_SUBST(MACHINE_TYPE)
|
|
AC_DEFINE_UNQUOTED([MACHINE_TYPE], ["$MACHINE_TYPE"],
|
|
[Machine type name, eg sparc])
|
|
|
|
# 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_CC="$CC"
|
|
SAVE_CXX="$CXX"
|
|
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_CC)
|
|
AC_SUBST(SAVE_CXX)
|
|
AC_SUBST(SAVE_ASFLAGS)
|
|
AC_SUBST(SAVE_CFLAGS)
|
|
AC_SUBST(SAVE_CXXFLAGS)
|
|
AC_SUBST(SAVE_LDFLAGS)
|
|
AC_SUBST(SAVE_CXXLDFLAGS)
|
|
AC_SUBST(CXXLDFLAGS)
|
|
|
|
#AC_ARG_PROGRAM # Automaticly invoked by AM_INIT_AUTOMAKE
|
|
|
|
AM_SANITY_CHECK
|
|
# This is needed is SUBDIRS is set
|
|
AC_PROG_MAKE_SET
|
|
|
|
##############################################################################
|
|
# The below section needs to be done before AC_PROG_CC
|
|
##############################################################################
|
|
|
|
# Hack for OS X/Darwin and Metrowerks CodeWarrior
|
|
AC_ARG_WITH(darwin-mwcc,
|
|
[ --with-darwin-mwcc Use Metrowerks CodeWarrior wrappers on OS X/Darwin],[
|
|
if [ "with_darwin_mwcc" = yes ] ; then
|
|
builddir=`pwd`
|
|
ccwrapper="$builddir/support-files/MacOSX/mwcc-wrapper"
|
|
arwrapper="$builddir/support-files/MacOSX/mwar-wrapper"
|
|
CC="$ccwrapper"
|
|
CXX="$ccwrapper"
|
|
LD="$ccwrapper"
|
|
AR="$arwrapper"
|
|
RANLIB=:
|
|
export CC CXX LD AR RANLIB
|
|
AC_SUBST(AR)
|
|
AC_SUBST(RANLIB)
|
|
fi
|
|
])
|
|
|
|
AM_CONDITIONAL(DARWIN_MWCC, test x$with_darwin_mwcc = xyes)
|
|
|
|
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
|
|
|
|
################ End of section to be done before AC_PROG_CC #################
|
|
|
|
# The following hack should ensure that configure doesn't add optimizing
|
|
# or debugging flags to CFLAGS or CXXFLAGS
|
|
# C_EXTRA_FLAGS are flags that are automaticly added to both
|
|
# CFLAGS and CXXFLAGS
|
|
CFLAGS="$CFLAGS $C_EXTRA_FLAGS "
|
|
CXXFLAGS="$CXXFLAGS $C_EXTRA_FLAGS "
|
|
|
|
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)
|
|
CC_VERSION=`$CC --version | sed 1q`
|
|
if test $? -eq "0"
|
|
then
|
|
AC_MSG_CHECKING("C Compiler version")
|
|
AC_MSG_RESULT("$CC $CC_VERSION")
|
|
else
|
|
CC_VERSION=""
|
|
fi
|
|
AC_SUBST(CC_VERSION)
|
|
MYSQL_CHECK_CXX_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_SUBST(NM)dnl
|
|
|
|
# NM= "$NM -X64"
|
|
#archive_expsym_cmds= `echo "$archive_expsym_cmds" | sed -e '/"$(CC)"//'`
|
|
#archive_expsym_cmds= "$CC -q64 $archive_expsym_cmds"
|
|
# CXXFLAGS=`echo "$CXXFLAGS -Werror" | sed -e 's/-fbranch-probabilities//; s/-Wall//; s/-ansi//; s/-pedantic//; s/-Wcheck//'`
|
|
|
|
#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_CHECK_PROGS(YACC, ['bison -y -p MYSQL'])
|
|
AC_CHECK_PROG(PDFMANUAL, pdftex, manual.pdf)
|
|
AC_CHECK_PROG(DVIS, tex, manual.dvi)
|
|
|
|
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*) ;;
|
|
*) AC_MSG_WARN([Adding -belf option to ldflags.])
|
|
LDFLAGS="$LDFLAGS -belf"
|
|
;;
|
|
esac
|
|
])
|
|
;;
|
|
*)
|
|
AC_SYS_COMPILER_FLAG(-belf,sco_belf_option,CFLAGS,[],[
|
|
case "$LDFLAGS" in
|
|
*-belf*) ;;
|
|
*)
|
|
AC_MSG_WARN([Adding -belf option to ldflags.])
|
|
LDFLAGS="$LDFLAGS -belf"
|
|
;;
|
|
esac
|
|
])
|
|
;;
|
|
esac
|
|
;;
|
|
sysv5UnixWare* | sysv5OpenUNIX8*)
|
|
if test "$GCC" != "yes"; then
|
|
# Use the built-in alloca()
|
|
CFLAGS="$CFLAGS -Kalloca"
|
|
fi
|
|
CXXFLAGS="$CXXFLAGS -DNO_CPLUSPLUS_ALLOCA"
|
|
;;
|
|
sysv5SCO_SV6.0.0*)
|
|
if test "$GCC" != "yes"; then
|
|
# Use the built-in alloca()
|
|
CFLAGS="$CFLAGS -Kalloca"
|
|
CXXFLAGS="$CFLAGS -Kalloca"
|
|
# Use no_implicit for templates
|
|
CXXFLAGS="$CXXFLAGS -Tno_implicit"
|
|
AC_DEFINE([HAVE_EXPLICIT_TEMPLATE_INSTANTIATION],
|
|
[1], [Defined by configure. Use explicit template instantiation.])
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
# The following is required for portable results of floating point calculations
|
|
# on PowerPC. The same must also be done for IA-64, but this options is missing
|
|
# in the IA-64 gcc backend.
|
|
|
|
if test "$GCC" = "yes"
|
|
then
|
|
case "$host_cpu" in
|
|
*ppc* | *powerpc*)
|
|
CFLAGS="$CFLAGS -mno-fused-madd"
|
|
CXXFLAGS="$CXXFLAGS -mno-fused-madd"
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
AC_SUBST(CC)
|
|
AC_SUBST(CFLAGS)
|
|
AC_SUBST(CXX)
|
|
AC_SUBST(CXXFLAGS)
|
|
AC_SUBST(ASFLAGS)
|
|
AC_SUBST(LD)
|
|
AC_SUBST(INSTALL_SCRIPT)
|
|
|
|
export CC CXX CFLAGS LD LDFLAGS AR ARFLAGS
|
|
|
|
if test "$GCC" = "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.
|
|
# We should use -Wno-invalid-offsetof flag to disable some warnings from gcc
|
|
# regarding offset() usage in C++ which are done in a safe manner in the
|
|
# server
|
|
CXXFLAGS="$CXXFLAGS -fno-implicit-templates -fno-exceptions -fno-rtti"
|
|
AC_DEFINE([HAVE_EXPLICIT_TEMPLATE_INSTANTIATION],
|
|
[1], [Defined by configure. Use explicit template instantiation.])
|
|
fi
|
|
|
|
MYSQL_PROG_AR
|
|
|
|
# libmysqlclient versioning when linked with GNU ld.
|
|
if $LD --version 2>/dev/null| grep GNU >/dev/null 2>&1; then
|
|
LD_VERSION_SCRIPT="-Wl,--version-script=\$(top_builddir)/libmysql/libmysql.ver"
|
|
AC_CONFIG_FILES(libmysql/libmysql.ver)
|
|
fi
|
|
AC_SUBST(LD_VERSION_SCRIPT)
|
|
|
|
|
|
# Avoid bug in fcntl on some versions of linux
|
|
AC_MSG_CHECKING([if we should use 'skip-external-locking' as default for $target_os])
|
|
# Any variation of Linux
|
|
if expr "$target_os" : "[[Ll]]inux.*" > /dev/null
|
|
then
|
|
MYSQLD_DEFAULT_SWITCHES="--skip-external-locking"
|
|
TARGET_LINUX="true"
|
|
AC_MSG_RESULT([yes])
|
|
AC_DEFINE([TARGET_OS_LINUX], [1], [Whether we build for Linux])
|
|
else
|
|
MYSQLD_DEFAULT_SWITCHES=""
|
|
TARGET_LINUX="false"
|
|
AC_MSG_RESULT([no])
|
|
fi
|
|
AC_SUBST(MYSQLD_DEFAULT_SWITCHES)
|
|
AC_SUBST(TARGET_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 ln -f does not exists use -s (AFS systems)
|
|
if test -n "$LN_CP_F"; then
|
|
LN_CP_F="$LN_CP_F -s"
|
|
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)
|
|
AC_PATH_PROG(DIFF, diff, diff)
|
|
# 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)
|
|
|
|
# Enable the abi_check rule only if gcc is available
|
|
|
|
if test "$GCC" != "yes" || expr "$CC" : ".*icc.*"
|
|
then
|
|
ABI_CHECK=""
|
|
else
|
|
ABI_CHECK="abi_check"
|
|
fi
|
|
|
|
AC_SUBST(ABI_CHECK)
|
|
|
|
# Look for PS usage. We use double dollar-signs in FIND_PROC because this
|
|
# value is written to a makefile, which interprets away one level of
|
|
# dollar-signs. So, interpretation stages are m4 and then shell in autoconf,
|
|
# then Make, then shell. The autoconf substitution uses single quotes, so
|
|
# no unprotected single quotes should appear in the expression.
|
|
AC_PATH_PROG(PS, ps, ps)
|
|
AC_MSG_CHECKING("how to check if pid exists")
|
|
PS=$ac_cv_path_PS
|
|
# Linux style
|
|
if $PS wwwp $$ 2> /dev/null | grep -- "$0" > /dev/null
|
|
then
|
|
FIND_PROC="$PS wwwp \$\$PID | grep -v \" grep\" | grep -v mysqld_safe | grep -- \"\$\$MYSQLD\" > /dev/null"
|
|
# Solaris
|
|
elif $PS -fp $$ 2> /dev/null | grep -- $0 > /dev/null
|
|
then
|
|
FIND_PROC="$PS -p \$\$PID | grep -v \" grep\" | grep -v mysqld_safe | grep -- \"\$\$MYSQLD\" > /dev/null"
|
|
# BSD style
|
|
elif $PS -uaxww 2> /dev/null | grep -- $0 > /dev/null
|
|
then
|
|
FIND_PROC="$PS -uaxww | grep -v \" grep\" | grep -v mysqld_safe | grep -- \"\$\$MYSQLD\" | grep \" \$\$PID \" > /dev/null"
|
|
# SysV style
|
|
elif $PS -ef 2> /dev/null | grep -- $0 > /dev/null
|
|
then
|
|
FIND_PROC="$PS -ef | grep -v \" grep\" | grep -v mysqld_safe | 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 -v \" grep\" | grep -v mysqld_safe | grep -- \"\$\$MYSQLD\" > /dev/null"
|
|
else
|
|
case $SYSTEM_TYPE in
|
|
*freebsd*|*dragonfly*)
|
|
FIND_PROC="$PS p \$\$PID | grep -v \" grep\" | grep -v mysqld_safe | grep -- \"\$\$MYSQLD\" > /dev/null"
|
|
;;
|
|
*darwin*)
|
|
FIND_PROC="$PS -uaxww | grep -v \" grep\" | grep -v mysqld_safe | grep -- \"\$\$MYSQLD\" | grep \" \$\$PID \" > /dev/null"
|
|
;;
|
|
*cygwin*)
|
|
FIND_PROC="$PS -e | grep -v \" grep\" | grep -v mysqld_safe | grep -- \"\$\$MYSQLD\" | grep \" \$\$PID \" > /dev/null"
|
|
;;
|
|
*)
|
|
AC_MSG_ERROR([Could not find the right ps and/or grep 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 an ANSI C compiler
|
|
AM_PROG_CC_STDC
|
|
|
|
# We need an assembler, too
|
|
AM_PROG_AS
|
|
CCASFLAGS="$CCASFLAGS $ASFLAGS"
|
|
|
|
# Check if we need noexec stack for assembler
|
|
AC_CHECK_NOEXECSTACK
|
|
|
|
if test "$am_cv_prog_cc_stdc" = "no"
|
|
then
|
|
AC_MSG_ERROR([MySQL requires an ANSI C compiler (and a C++ compiler). Try gcc. See the Installation chapter in the Reference Manual.])
|
|
fi
|
|
|
|
NOINST_LDFLAGS="-static"
|
|
|
|
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)
|
|
#
|
|
AC_CHECK_TOOL([NM], [nm])
|
|
|
|
if test "$TARGET_LINUX" = "true" -a "$static_nss" = ""
|
|
then
|
|
tmp=`$NM ${other_libc_lib:-/usr/lib*}/libc.a | grep _nss_files_getaliasent_r1`
|
|
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 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 ]
|
|
)
|
|
|
|
# Make thread safe client
|
|
AC_ARG_ENABLE(thread-safe-client,
|
|
[ --disable-thread-safe-client
|
|
Compile the client without threads.],
|
|
[ THREAD_SAFE_CLIENT=$enableval ],
|
|
[ THREAD_SAFE_CLIENT=yes ]
|
|
)
|
|
|
|
# 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" && $AS strings/strings-x86.s -o checkassembler >/dev/null 2>&1 && test -f checkassembler && (rm -f checkassembler; exit 0;))
|
|
AM_CONDITIONAL(ASSEMBLER_sparc64, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "sparcv9")
|
|
AM_CONDITIONAL(ASSEMBLER, test "$ASSEMBLER_x86_TRUE" = "")
|
|
|
|
if test "$ASSEMBLER_TRUE" = ""
|
|
then
|
|
AC_MSG_RESULT([yes])
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
fi
|
|
|
|
# Add query profiler
|
|
AC_MSG_CHECKING(if SHOW PROFILE should be enabled.)
|
|
AC_ARG_ENABLE(profiling,
|
|
AS_HELP_STRING([--enable-profiling], [Enable profiling of query lifetime.]),
|
|
[ ENABLED_PROFILING=$enableval ],
|
|
[ ENABLED_PROFILING=no ])
|
|
|
|
AC_DEFINE([ENABLED_PROFILING], [1], [If SHOW PROFILE should be enabled])
|
|
if test "$ENABLED_PROFILING" = "yes"
|
|
then
|
|
AC_MSG_RESULT([yes])
|
|
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
|
|
# if we actually defaulted (as opposed to the pathological case of
|
|
# --with-tcp-port=<MYSQL_TCP_PORT_DEFAULT> which might in theory
|
|
# happen if whole batch of servers was built from a script), set
|
|
# the default to zero to indicate that; we don't lose information
|
|
# that way, because 0 obviously indicates that we can get the
|
|
# default value from MYSQL_TCP_PORT. this seems really evil, but
|
|
# testing for MYSQL_TCP_PORT==MYSQL_TCP_PORT_DEFAULT would make a
|
|
# a port of MYSQL_TCP_PORT_DEFAULT magic even if the builder did not
|
|
# intend it to mean "use the default, in fact, look up a good default
|
|
# from /etc/services if you can", but really, really meant 3306 when
|
|
# they passed in 3306. When they pass in a specific value, let them
|
|
# have it; don't second guess user and think we know better, this will
|
|
# just make people cross. this makes the the logic work like this
|
|
# (which is complicated enough):
|
|
#
|
|
# - if a port was set during build, use that as a default.
|
|
#
|
|
# - otherwise, try to look up a port in /etc/services; if that fails,
|
|
# use MYSQL_TCP_PORT_DEFAULT (at the time of this writing 3306)
|
|
#
|
|
# - allow the MYSQL_TCP_PORT environment variable to override that.
|
|
#
|
|
# - allow command-line parameters to override all of the above.
|
|
#
|
|
# the top-most MYSQL_TCP_PORT_DEFAULT is read from win/configure.js,
|
|
# so don't mess with that.
|
|
MYSQL_TCP_PORT_DEFAULT=0 ]
|
|
)
|
|
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], [1],
|
|
[If LOAD DATA LOCAL INFILE should be enabled by default])
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
fi
|
|
|
|
# If we should allow init-file, skip-grant-table and bootstrap options
|
|
AC_MSG_CHECKING(If we should should enable init-file, skip-grant-table options and bootstrap)
|
|
AC_ARG_ENABLE(grant-options,
|
|
[ --disable-grant-options Disables the use of --init-file, --skip-grant-tables and --bootstrap options],
|
|
[ mysql_grant_options_enabled=$enableval ],
|
|
[ mysql_grant_options_enabled=yes ]
|
|
)
|
|
if test "$mysql_grant_options_enabled" = "yes"
|
|
then
|
|
AC_MSG_RESULT([yes])
|
|
else
|
|
AC_DEFINE([DISABLE_GRANT_OPTIONS], [1],
|
|
[Disables the use of --init-file, --skip-grant-tables and --bootstrap options])
|
|
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 fenv.h float.h floatingpoint.h fpu_control.h \
|
|
ieeefp.h limits.h memory.h pwd.h select.h poll.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 sys/ipc.h sys/shm.h linux/config.h \
|
|
sys/prctl.h sys/resource.h sys/param.h port.h ieeefp.h \
|
|
execinfo.h)
|
|
|
|
AC_CHECK_HEADERS([xfs/xfs.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_SEARCH_LIBS(setsockopt, socket)
|
|
# This may get things to compile even if bind-8 is installed
|
|
AC_SEARCH_LIBS(bind, bind)
|
|
# Check if crypt() exists in libc or libcrypt, sets LIBS if needed
|
|
AC_SEARCH_LIBS(crypt, crypt, AC_DEFINE(HAVE_CRYPT, 1, [crypt]))
|
|
# See if we need a library for address lookup.
|
|
AC_SEARCH_LIBS(inet_aton, [socket nsl resolv])
|
|
|
|
# For the sched_yield() function on Solaris
|
|
AC_SEARCH_LIBS(sched_yield, posix4,
|
|
AC_DEFINE(HAVE_SCHED_YIELD, 1, [sched_yield]))
|
|
|
|
MYSQL_CHECK_ZLIB_WITH_COMPRESS
|
|
|
|
# For large pages support
|
|
if test "$TARGET_LINUX" = "true"
|
|
then
|
|
# For SHM_HUGETLB on Linux
|
|
AC_CHECK_DECLS(SHM_HUGETLB,
|
|
AC_DEFINE([HAVE_LARGE_PAGES], [1],
|
|
[Define if you have large pages support])
|
|
AC_DEFINE([HAVE_LARGE_PAGE_OPTION], [1],
|
|
[Define if you have large page option])
|
|
AC_DEFINE([HUGETLB_USE_PROC_MEMINFO], [1],
|
|
[Define if /proc/meminfo shows the huge page size (Linux only)])
|
|
, ,
|
|
[
|
|
#include <sys/shm.h>
|
|
]
|
|
)
|
|
else
|
|
# For large pages support on Solaris
|
|
AC_CHECK_DECLS(MHA_MAPSIZE_VA,
|
|
AC_DEFINE([HAVE_SOLARIS_LARGE_PAGES], [1],
|
|
[Define to 1 if you have large pages support])
|
|
AC_DEFINE([HAVE_LARGE_PAGE_OPTION], [1],
|
|
[Define if you have large page option])
|
|
, ,
|
|
[
|
|
#include <sys/mman.h>
|
|
]
|
|
)
|
|
fi
|
|
|
|
dnl Use of ALARMs to wakeup on timeout on sockets
|
|
dnl
|
|
dnl This feature makes use of a mutex and is a scalability hog we
|
|
dnl try to avoid using. However we need support for SO_SNDTIMEO and
|
|
dnl SO_RCVTIMEO socket options for this to work. So we will check
|
|
dnl if this feature is supported by a simple AC_RUN_IFELSE macro. However
|
|
dnl on some OS's there is support for setting those variables but
|
|
dnl they are silently ignored. For those OS's we will not attempt
|
|
dnl o use SO_SNDTIMEO and SO_RCVTIMEO even if it is said to work.
|
|
dnl See Bug#29093 for the problem with SO_SND/RCVTIMEO on HP/UX.
|
|
dnl To use alarm is simple, simply avoid setting anything.
|
|
|
|
|
|
AC_CACHE_CHECK([whether SO_SNDTIMEO and SO_RCVTIMEO work],
|
|
[mysql_cv_socket_timeout],
|
|
[AC_RUN_IFELSE(
|
|
[AC_LANG_PROGRAM([[
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <sys/time.h>
|
|
]],[[
|
|
int fd = socket(AF_INET, SOCK_STREAM, 0);
|
|
struct timeval tv;
|
|
int ret= 0;
|
|
tv.tv_sec= 2;
|
|
tv.tv_usec= 0;
|
|
ret|= setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, &tv, sizeof(tv));
|
|
ret|= setsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv));
|
|
return !!ret;
|
|
]])],
|
|
[mysql_cv_socket_timeout=yes],
|
|
[mysql_cv_socket_timeout=no],
|
|
[mysql_cv_socket_timeout=no
|
|
AC_MSG_WARN([Socket timeout options disabled due to cross-compiling])])
|
|
])
|
|
|
|
use_alarm=yes
|
|
|
|
if test "$mysql_cv_socket_timeout" = yes; then
|
|
case $SYSTEM_TYPE in
|
|
dnl We trust the result from the following systems
|
|
*solaris*) use_alarm=no ;;
|
|
*freebsd*) use_alarm=no ;;
|
|
*darwin*) use_alarm=no ;;
|
|
*)
|
|
dnl We trust the result from Linux also
|
|
if test "$TARGET_LINUX" = "true"; then
|
|
use_alarm=no
|
|
fi
|
|
dnl We trust no one else for the moment
|
|
dnl (Windows is hardcoded to not use alarms)
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
AC_ARG_WITH(alarm,
|
|
AS_HELP_STRING([--with-alarm], [Use alarm to implement socket timeout.]),
|
|
[use_alarm=$withval], [])
|
|
|
|
AC_MSG_CHECKING(whether to use alarms to implement socket timeout)
|
|
if test "$use_alarm" = no ; then
|
|
AC_DEFINE([NO_ALARM], [1], [No need to use alarm for socket timeout])
|
|
AC_DEFINE([SIGNAL_WITH_VIO_CLOSE], [1], [Need to use vio close for kill connection])
|
|
fi
|
|
AC_MSG_RESULT($use_alarm)
|
|
|
|
#--------------------------------------------------------------------
|
|
# Check for IPv6 support
|
|
#--------------------------------------------------------------------
|
|
|
|
AC_CHECK_HEADERS(netinet/in6.h)
|
|
|
|
AC_CHECK_TYPES([struct sockaddr_in6, struct in6_addr],
|
|
[have_in6_types=yes],
|
|
[have_in6_types=no],
|
|
[[
|
|
#ifdef WIN32
|
|
#include <winsock2.h>
|
|
#else
|
|
#include <sys/types.h>
|
|
#include <netinet/in.h>
|
|
#include <sys/socket.h>
|
|
#endif
|
|
|
|
#ifdef HAVE_NETINET_IN6_H
|
|
#include <netinet/in6.h>
|
|
#endif
|
|
]])
|
|
|
|
AC_MSG_CHECKING([for IPv6 support])
|
|
|
|
AC_ARG_ENABLE(ipv6,
|
|
AS_HELP_STRING([--disable-ipv6], [Disable support for IPv6 networking]),
|
|
[disable_ipv6=yes], [disable_ipv6=no])
|
|
|
|
if test x"$disable_ipv6" = xyes -o x"$have_in6_types" = xno; then
|
|
AC_MSG_RESULT([no])
|
|
else
|
|
AC_DEFINE([HAVE_IPV6], [1], [Define if IPv6 networking support is present])
|
|
AC_MSG_RESULT([yes])
|
|
fi
|
|
|
|
#--------------------------------------------------------------------------
|
|
# Check if struct sockaddr_in::sin_len is available
|
|
#--------------------------------------------------------------------------
|
|
|
|
AC_CACHE_CHECK(
|
|
[if sockaddr_in::sin_len is available],
|
|
mysql_cv_have_sockaddr_in_sin_len,
|
|
AC_TRY_COMPILE(
|
|
[
|
|
#ifdef WIN32
|
|
#include <winsock2.h>
|
|
#else
|
|
#include <sys/types.h>
|
|
#include <netinet/in.h>
|
|
#include <sys/socket.h>
|
|
#endif
|
|
],
|
|
[unsigned int i = sizeof(((struct sockaddr_in *) 0)->sin_len)],
|
|
mysql_cv_have_sockaddr_in_sin_len=yes,
|
|
mysql_cv_have_sockaddr_in_sin_len=no))
|
|
|
|
if test "$mysql_cv_have_sockaddr_in_sin_len" = "yes"; then
|
|
AC_DEFINE(
|
|
[HAVE_SOCKADDR_IN_SIN_LEN],
|
|
[1],
|
|
[If sockaddr_in::sin_len is available])
|
|
fi
|
|
|
|
#--------------------------------------------------------------------------
|
|
# Check if struct sockaddr_in6::sin6_len is available
|
|
#--------------------------------------------------------------------------
|
|
|
|
AC_CACHE_CHECK(
|
|
[if sockaddr_in6::sin6_len is available],
|
|
mysql_cv_have_sockaddr_in6_sin6_len,
|
|
AC_TRY_COMPILE(
|
|
[
|
|
#ifdef WIN32
|
|
#include <winsock2.h>
|
|
#else
|
|
#include <sys/types.h>
|
|
#include <netinet/in.h>
|
|
#include <sys/socket.h>
|
|
#endif
|
|
|
|
#ifdef HAVE_NETINET_IN6_H
|
|
#include <netinet/in6.h>
|
|
#endif
|
|
],
|
|
[unsigned int i = sizeof(((struct sockaddr_in6 *) 0)->sin6_len)],
|
|
mysql_cv_have_sockaddr_in6_sin6_len=yes,
|
|
mysql_cv_have_sockaddr_in6_sin6_len=no))
|
|
|
|
if test "$mysql_cv_have_sockaddr_in_sin6_len" = "yes"; then
|
|
AC_DEFINE(
|
|
[HAVE_SOCKADDR_IN6_SIN6_LEN],
|
|
[1],
|
|
[If sockaddr_in6::sin6_len is available])
|
|
fi
|
|
|
|
#--------------------------------------------------------------------
|
|
# 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], [1], [Define if you have -lwrap])
|
|
AC_DEFINE([HAVE_LIBWRAP], [1], [Define if have -lwrap])
|
|
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)
|
|
|
|
# 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_SEARCH_LIBS(gtty, compat)
|
|
fi
|
|
|
|
# We make a special variable for non-threaded version of LIBS to avoid
|
|
# including thread libs into non-threaded version of MySQL client library.
|
|
# Later in this script LIBS will be augmented with a threads library.
|
|
NON_THREADED_LIBS="$LIBS"
|
|
|
|
AC_CHECK_TYPES([int8, uint8, int16, uint16, int32, uint32, int64, uint64,
|
|
uchar, uint, ulong],[],[], [
|
|
#include <sys/types.h>
|
|
])
|
|
AC_CHECK_TYPES([fp_except], [], [], [
|
|
#include <sys/types.h>
|
|
#include <ieeefp.h>
|
|
])
|
|
|
|
#
|
|
# 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
|
|
AC_MSG_WARN([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
|
|
AC_MSG_WARN([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*)
|
|
AC_MSG_WARN([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*)
|
|
AC_MSG_WARN([Enabling getpass() workaround for SunOS])
|
|
CFLAGS="$CFLAGS -DHAVE_BROKEN_GETPASS -DSOLARIS";
|
|
;;
|
|
*hpux10.20*)
|
|
AC_MSG_WARN([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
|
|
AC_MSG_WARN([Using --with-named-thread=-lpthread])
|
|
with_named_thread="-lcma"
|
|
fi
|
|
;;
|
|
*hpux11.*)
|
|
AC_MSG_WARN([Enabling workarounds for hpux 11])
|
|
CFLAGS="$CFLAGS -DHPUX11 -DSNPRINTF_RETURN_TRUNC -DHAVE_BROKEN_PREAD -DHAVE_BROKEN_GETPASS -DNO_FCNTL_NONBLOCK -DDO_NOT_REMOVE_THREAD_WRAPPERS -DHAVE_BROKEN_PTHREAD_COND_TIMEDWAIT"
|
|
CXXFLAGS="$CXXFLAGS -DHPUX11 -DSNPRINTF_RETURN_TRUNC -DHAVE_BROKEN_PREAD -D_INCLUDE_LONGLONG -DNO_FCNTL_NONBLOCK -DDO_NOT_REMOVE_THREAD_WRAPPERS -DHAVE_BROKEN_PTHREAD_COND_TIMEDWAIT"
|
|
if test "$with_named_thread" = "no"
|
|
then
|
|
AC_MSG_WARN([Using --with-named-thread=-lpthread])
|
|
with_named_thread="-lpthread"
|
|
fi
|
|
# Fixes for HPUX 11.0 compiler
|
|
if test "$ac_cv_prog_gcc" = "no"
|
|
then
|
|
# set working flags first in line, letting override it (i. e. for debug):
|
|
CXXFLAGS="+O2 $CXXFLAGS"
|
|
MAX_C_OPTIMIZE=""
|
|
MAX_CXX_OPTIMIZE=""
|
|
ndb_cxxflags_fix="$ndb_cxxflags_fix -Aa"
|
|
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_DARWIN5_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="-D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSE -DSIGNALS_DONT_BREAK_READ -DHAVE_BROKEN_REALPATH -DDONT_DECLARE_CXA_PURE_VIRTUAL "
|
|
CFLAGS="$CFLAGS $FLAGS"
|
|
CXXFLAGS="$CXXFLAGS $FLAGS"
|
|
MAX_C_OPTIMIZE="-O"
|
|
fi
|
|
;;
|
|
*darwin*)
|
|
if test "$ac_cv_prog_gcc" = "yes"
|
|
then
|
|
FLAGS="-D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSE -DSIGNALS_DONT_BREAK_READ -DIGNORE_SIGHUP_SIGQUIT -DDONT_DECLARE_CXA_PURE_VIRTUAL"
|
|
CFLAGS="$CFLAGS $FLAGS"
|
|
CXXFLAGS="$CXXFLAGS $FLAGS"
|
|
MAX_C_OPTIMIZE="-O"
|
|
fi
|
|
;;
|
|
*freebsd*|*dragonfly*)
|
|
dnl These dependencies have not really been checked for some time
|
|
OSVERSION=`sysctl -a | grep osreldate | awk '{ print $2 }'`
|
|
if test "$OSVERSION" -gt "600000"
|
|
then
|
|
# Post user-level threads, MYSQLD_NET_RETRY_COUNT is not needed any more
|
|
:
|
|
elif test "$OSVERSION" -gt "480100" && \
|
|
test "$OSVERSION" -lt "500000" || \
|
|
test "$OSVERSION" -gt "500109"
|
|
then
|
|
AC_MSG_WARN([Adding fix for interrupted reads])
|
|
CXXFLAGS="$CXXFLAGS -DMYSQLD_NET_RETRY_COUNT=1000000"
|
|
else
|
|
AC_MSG_WARN([Adding fix for interrupted reads and broken realpath])
|
|
CFLAGS="$CFLAGS -DHAVE_BROKEN_REALPATH"
|
|
CXXFLAGS="$CXXFLAGS -DMYSQLD_NET_RETRY_COUNT=1000000 -DHAVE_BROKEN_REALPATH"
|
|
fi
|
|
;;
|
|
*netbsd*)
|
|
AC_MSG_WARN([Adding flag -Dunix])
|
|
CFLAGS="$CFLAGS -Dunix"
|
|
CXXFLAGS="$CXXFLAGS -Dunix"
|
|
OVERRIDE_MT_LD_ADD="\$(top_srcdir)/mit-pthreads/obj/libpthread.a"
|
|
;;
|
|
*bsdi*)
|
|
AC_MSG_WARN([Adding fix for BSDI])
|
|
CFLAGS="$CFLAGS -D__BSD__ -DHAVE_BROKEN_REALPATH"
|
|
AC_DEFINE_UNQUOTED([SOCKOPT_OPTLEN_TYPE], [size_t],
|
|
[Last argument to get/setsockopt])
|
|
;;
|
|
*sgi-irix6*)
|
|
if test "$with_named_thread" = "no"
|
|
then
|
|
AC_MSG_WARN([Using --with-named-thread=-lpthread])
|
|
with_named_thread="-lpthread"
|
|
fi
|
|
CXXFLAGS="$CXXFLAGS -D_BOOL"
|
|
;;
|
|
*aix4.3*)
|
|
AC_MSG_WARN([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
|
|
AC_MSG_WARN([Adding defines for DEC OSF on alpha])
|
|
CFLAGS="$CFLAGS -mieee"
|
|
CXXFLAGS="$CXXFLAGS -mieee"
|
|
fi
|
|
AC_MSG_WARN([Adding defines for OSF1])
|
|
# gethostbyname_r is deprecated and doesn't work ok on OSF1
|
|
CFLAGS="$CFLAGS -DUNDEF_HAVE_GETHOSTBYNAME_R -DSNPRINTF_RETURN_TRUNC"
|
|
CXXFLAGS="$CXXFLAGS -DUNDEF_HAVE_GETHOSTBYNAME_R -DSNPRINTF_RETURN_TRUNC"
|
|
# fix to handle include of <stdint.h> correctly on OSF1 with cxx compiler
|
|
CXXFLAGS="$CXXFLAGS -I/usr/include/cxx -I/usr/include/cxx_cname -I/usr/include -I/usr/include.dtk"
|
|
;;
|
|
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"
|
|
# Search thread lib on Linux
|
|
if test "$with_named_thread" = "no"
|
|
then
|
|
AC_MSG_CHECKING("Linux threads")
|
|
if test "$TARGET_LINUX" = "true"
|
|
then
|
|
AC_MSG_RESULT("starting")
|
|
# use getconf to check glibc contents
|
|
AC_MSG_CHECKING("getconf GNU_LIBPTHREAD_VERSION")
|
|
case `getconf GNU_LIBPTHREAD_VERSION | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ` in
|
|
NPTL* )
|
|
AC_MSG_RESULT("NPTL")
|
|
AC_DEFINE([HAVE_NPTL], [1], [NPTL threads implementation])
|
|
with_named_thread="-lpthread"
|
|
;;
|
|
LINUXTHREADS* )
|
|
AC_MSG_RESULT("Linuxthreads")
|
|
AC_DEFINE([HAVE_LINUXTHREADS], [1],
|
|
[Whether we are using Xavier Leroy's LinuxThreads])
|
|
with_named_thread="-lpthread"
|
|
;;
|
|
* )
|
|
AC_MSG_RESULT("unknown")
|
|
;;
|
|
esac
|
|
if test "$with_named_thread" = "no"
|
|
then
|
|
# old method, check headers
|
|
# Look for LinuxThreads.
|
|
AC_MSG_CHECKING("LinuxThreads in header file comment")
|
|
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], [1],
|
|
[Whether we are using Xavier Leroy's 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
|
|
AC_MSG_ERROR([This is a Linux system without a working getconf,
|
|
and Linuxthreads was not found. Please install it (or a new glibc) and try again.
|
|
See the Installation chapter in the Reference Manual for more information.])
|
|
fi
|
|
else
|
|
AC_MSG_RESULT("no need to check headers")
|
|
fi
|
|
|
|
AC_MSG_CHECKING("for pthread_create in -lpthread")
|
|
ac_save_LIBS="$LIBS"
|
|
LIBS="$LIBS -lpthread"
|
|
AC_TRY_LINK( [#include <pthread.h>],
|
|
[ (void) pthread_create((pthread_t*) 0,(pthread_attr_t*) 0, 0, 0); ],
|
|
AC_MSG_RESULT("yes"),
|
|
[ AC_MSG_RESULT("no")
|
|
AC_MSG_ERROR([
|
|
This is a Linux system claiming to support threads, either Linuxthreads or NPTL, but linking a test program failed.
|
|
Please install one of these (or a new glibc) and try again.
|
|
See the Installation chapter in the Reference Manual for more information.]) ]
|
|
)
|
|
LIBS="$ac_save_LIBS"
|
|
else
|
|
AC_MSG_RESULT("no")
|
|
fi # "$TARGET_LINUX"
|
|
fi # "$with_named_thread" = "no" -a "$with_mit_threads" = "no"
|
|
|
|
|
|
# Hack for DEC-UNIX (OSF1 -> Tru64)
|
|
if test "$with_named_thread" = "no" -a "$with_mit_threads" = "no"
|
|
then
|
|
AC_MSG_CHECKING("DEC threads post OSF/1 3.2")
|
|
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, [1], [Whether we are using DEC threads])
|
|
AC_MSG_RESULT("yes")
|
|
else
|
|
AC_MSG_RESULT("no")
|
|
fi # DEC threads
|
|
fi # "$with_named_thread" = "no" -a "$with_mit_threads" = "no"
|
|
|
|
|
|
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
|
|
touch ./include/semaphore.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, [1])
|
|
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
|
|
AC_MSG_ERROR([configure: error: Can't find thread libs on SCO UnixWare7. See the Installation chapter in the Reference Manual.])
|
|
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
|
|
|
|
#
|
|
# Check for SCO threading libraries
|
|
#
|
|
if test "$with_named_thread" = "no"
|
|
then
|
|
AC_MSG_CHECKING([SCO OpenServer 6, UnixWare 7 or OpenUNIX 8 native threads])
|
|
if expr "$SYSTEM_TYPE" : ".*UnixWare.*" > /dev/null || \
|
|
expr "$SYSTEM_TYPE" : ".*SCO_SV6.*" > /dev/null || \
|
|
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.*" > /dev/null
|
|
then
|
|
with_named_thread="-pthread -lsocket -lnsl"
|
|
CC="$CC -pthread -DUNIXWARE_7 -DHAVE_BROKEN_RWLOCK";
|
|
CXX="$CXX -pthread -DUNIXWARE_7 -DHAVE_BROKEN_RWLOCK";
|
|
else
|
|
with_named_thread="-Kthread -lsocket -lnsl"
|
|
CC="$CC -Kthread -DUNIXWARE_7 -DHAVE_BROKEN_RWLOCK";
|
|
CXX="$CXX -Kthread -DUNIXWARE_7 -DHAVE_BROKEN_RWLOCK";
|
|
fi
|
|
if expr "$SYSTEM_TYPE" : ".*unixware7.0.0" > /dev/null
|
|
then
|
|
AC_DEFINE(HAVE_UNIXWARE7_THREADS, [1], [Have UnixWare 7 (or similar) almost-POSIX threading library])
|
|
fi
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_ERROR([configure: error: Can't find thread library on SCO/Caldera system. See the Installation chapter in the Reference Manual.])
|
|
fi
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
fi
|
|
|
|
# Hack for Siemens UNIX
|
|
if test "$with_named_thread" = "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_LIBS="-lxnet $NON_THREADED_LIBS"
|
|
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"
|
|
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
|
|
|
|
# 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"
|
|
CLIENT_THREAD_LIBS="$with_named_thread"
|
|
with_posix_threads="yes"
|
|
AC_MSG_RESULT("$with_named_thread")
|
|
else
|
|
AC_MSG_RESULT("no")
|
|
# 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"
|
|
LIBS="$LIBS -lpthread"
|
|
CLIENT_THREAD_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"
|
|
CLIENT_THREAD_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"
|
|
CLIENT_THREAD_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")
|
|
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:
|
|
|
|
# dlopen, dlerror
|
|
case "$with_mysqld_ldflags " in
|
|
|
|
*"-all-static "*)
|
|
# No need to check for dlopen when mysqld is linked with
|
|
# -all-static as it won't be able to load any functions.
|
|
# NOTE! It would be better if it was possible to test if dlopen
|
|
# can be used, but a good way to test it couldn't be found
|
|
|
|
;;
|
|
|
|
*)
|
|
# 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)
|
|
|
|
my_save_LIBS="$LIBS"
|
|
LIBS="$LIBS $LIBDL"
|
|
AC_CHECK_FUNCS(dlopen dlerror)
|
|
LIBS="$my_save_LIBS"
|
|
|
|
;;
|
|
esac
|
|
|
|
|
|
# System characteristics
|
|
AC_SYS_RESTARTABLE_SYSCALLS
|
|
|
|
# Build optimized or debug version ?
|
|
# First check for gcc and g++
|
|
if test "$GCC" = "yes"
|
|
then
|
|
DEBUG_CFLAGS="-g"
|
|
DEBUG_OPTIMIZE_CC="-O"
|
|
OPTIMIZE_CFLAGS="$MAX_C_OPTIMIZE"
|
|
else
|
|
DEBUG_CFLAGS="-g"
|
|
DEBUG_OPTIMIZE_CC=""
|
|
case $SYSTEM_TYPE in
|
|
*solaris*)
|
|
OPTIMIZE_CFLAGS="-O1"
|
|
;;
|
|
*)
|
|
OPTIMIZE_CFLAGS="-O"
|
|
;;
|
|
esac
|
|
fi
|
|
if test "$GXX" = "yes"
|
|
then
|
|
DEBUG_CXXFLAGS="-g"
|
|
DEBUG_OPTIMIZE_CXX="-O"
|
|
OPTIMIZE_CXXFLAGS="$MAX_CXX_OPTIMIZE"
|
|
else
|
|
DEBUG_OPTIMIZE_CXX=""
|
|
case $SYSTEM_TYPE in
|
|
*solaris*)
|
|
DEBUG_CXXFLAGS="-g0"
|
|
OPTIMIZE_CXXFLAGS="-O1"
|
|
;;
|
|
*)
|
|
DEBUG_CXXFLAGS="-g"
|
|
OPTIMIZE_CXXFLAGS="-O"
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
# If the user specified CFLAGS, we won't add any optimizations
|
|
if test -n "$SAVE_CFLAGS"
|
|
then
|
|
OPTIMIZE_CFLAGS=""
|
|
DEBUG_OPTIMIZE_CC=""
|
|
fi
|
|
# Ditto for CXXFLAGS
|
|
if test -n "$SAVE_CXXFLAGS"
|
|
then
|
|
OPTIMIZE_CXXFLAGS=""
|
|
DEBUG_OPTIMIZE_CXX=""
|
|
fi
|
|
|
|
AC_ARG_WITH(debug,
|
|
[AS_HELP_STRING([--with-debug], [Add debug code @<:@default=no@:>@])],
|
|
[with_debug=$withval],
|
|
[with_debug=no])
|
|
if test "$with_debug" = "yes"
|
|
then
|
|
AC_DEFINE([DBUG_ON], [1], [Use libdbug])
|
|
CFLAGS="$DEBUG_CFLAGS $DEBUG_OPTIMIZE_CC -DSAFE_MUTEX $CFLAGS"
|
|
CXXFLAGS="$DEBUG_CXXFLAGS $DEBUG_OPTIMIZE_CXX -DSAFE_MUTEX $CXXFLAGS"
|
|
else
|
|
# Optimized version. No debug
|
|
AC_DEFINE([DBUG_OFF], [1], [Don't use libdbug])
|
|
CFLAGS="$OPTIMIZE_CFLAGS $CFLAGS"
|
|
CXXFLAGS="$OPTIMIZE_CXXFLAGS $CXXFLAGS"
|
|
fi
|
|
|
|
AC_ARG_WITH([valgrind],
|
|
[AS_HELP_STRING([--with-valgrind],
|
|
[Valgrind instrumentation @<:@default=no@:>@])],
|
|
[], [with_valgrind=no])
|
|
|
|
if test "$with_valgrind" != "no"
|
|
then
|
|
AC_CHECK_HEADERS([valgrind/valgrind.h valgrind/memcheck.h],
|
|
[AC_DEFINE([HAVE_VALGRIND], [1], [Define for Valgrind support])])
|
|
fi
|
|
|
|
# Debug Sync Facility. NOTE: depends on 'with_debug'. Must be behind it.
|
|
AC_MSG_CHECKING(if Debug Sync Facility should be enabled.)
|
|
AC_ARG_ENABLE(debug_sync,
|
|
AS_HELP_STRING([--enable-debug-sync],
|
|
[Build a version with Debug Sync Facility]),
|
|
[ enable_debug_sync=$enableval ],
|
|
[ enable_debug_sync=$with_debug ])
|
|
|
|
if test "$enable_debug_sync" != "no"
|
|
then
|
|
AC_DEFINE([ENABLED_DEBUG_SYNC], [1],
|
|
[If Debug Sync Facility should be enabled])
|
|
AC_MSG_RESULT([yes])
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
fi
|
|
|
|
AC_ARG_WITH([fast-mutexes],
|
|
AC_HELP_STRING([--with-fast-mutexes],
|
|
[Compile with fast mutexes (default is disabled)]),
|
|
[with_fast_mutexes=$withval], [with_fast_mutexes=no])
|
|
|
|
if test "$with_fast_mutexes" != "no"
|
|
then
|
|
if test "$with_debug" != "no"
|
|
then
|
|
AC_MSG_WARN(['--with-fast-mutexes' ignored when '--with-debug' is given])
|
|
else
|
|
AC_DEFINE([MY_PTHREAD_FASTMUTEX], [1],
|
|
[Define to 1 if you want to use fast mutexes])
|
|
fi
|
|
fi
|
|
|
|
AC_ARG_WITH([atomic-ops],
|
|
AS_HELP_STRING([--with-atomic-ops=rwlocks|smp|up],
|
|
[Implement atomic operations using pthread rwlocks or atomic CPU
|
|
instructions for multi-processor or uniprocessor
|
|
configuration. By default gcc built-in sync functions are used,
|
|
if available and 'smp' configuration otherwise.]))
|
|
case "$with_atomic_ops" in
|
|
"up") AC_DEFINE([MY_ATOMIC_MODE_DUMMY], [1],
|
|
[Assume single-CPU mode, no concurrency]) ;;
|
|
"rwlocks") AC_DEFINE([MY_ATOMIC_MODE_RWLOCKS], [1],
|
|
[Use pthread rwlocks for atomic ops]) ;;
|
|
"smp") ;;
|
|
"")
|
|
;;
|
|
*) AC_MSG_ERROR(["$with_atomic_ops" is not a valid value for --with-atomic-ops]) ;;
|
|
esac
|
|
|
|
AC_CACHE_CHECK([whether the compiler provides atomic builtins],
|
|
[mysql_cv_gcc_atomic_builtins],
|
|
[AC_RUN_IFELSE(
|
|
[AC_LANG_PROGRAM(
|
|
[
|
|
],
|
|
[[
|
|
int foo= -10; int bar= 10;
|
|
long long int foo64= -10; long long int bar64= 10;
|
|
if (!__sync_fetch_and_add(&foo, bar) || foo)
|
|
return -1;
|
|
bar= __sync_lock_test_and_set(&foo, bar);
|
|
if (bar || foo != 10)
|
|
return -1;
|
|
bar= __sync_val_compare_and_swap(&bar, foo, 15);
|
|
if (bar)
|
|
return -1;
|
|
if (!__sync_fetch_and_add(&foo64, bar64) || foo64)
|
|
return -1;
|
|
bar64= __sync_lock_test_and_set(&foo64, bar64);
|
|
if (bar64 || foo64 != 10)
|
|
return -1;
|
|
bar64= __sync_val_compare_and_swap(&bar64, foo, 15);
|
|
if (bar64)
|
|
return -1;
|
|
return 0;
|
|
]]
|
|
)],
|
|
[mysql_cv_gcc_atomic_builtins=yes],
|
|
[mysql_cv_gcc_atomic_builtins=no],
|
|
[mysql_cv_gcc_atomic_builtins=no]
|
|
)])
|
|
if test "x$mysql_cv_gcc_atomic_builtins" = xyes; then
|
|
AC_DEFINE(HAVE_GCC_ATOMIC_BUILTINS, 1,
|
|
[Define to 1 if compiler provides atomic builtins.])
|
|
fi
|
|
|
|
AC_CACHE_CHECK([whether the OS provides atomic_* functions like Solaris],
|
|
[mysql_cv_solaris_atomic],
|
|
[AC_RUN_IFELSE(
|
|
[AC_LANG_PROGRAM(
|
|
[[
|
|
#include <atomic.h>
|
|
]],
|
|
[[
|
|
int foo = -10; int bar = 10;
|
|
int64_t foo64 = -10; int64_t bar64 = 10;
|
|
if (atomic_add_int_nv((uint_t *)&foo, bar) || foo)
|
|
return -1;
|
|
bar = atomic_swap_uint((uint_t *)&foo, (uint_t)bar);
|
|
if (bar || foo != 10)
|
|
return -1;
|
|
bar = atomic_cas_uint((uint_t *)&bar, (uint_t)foo, 15);
|
|
if (bar)
|
|
return -1;
|
|
if (atomic_add_64_nv((volatile uint64_t *)&foo64, bar64) || foo64)
|
|
return -1;
|
|
bar64 = atomic_swap_64((volatile uint64_t *)&foo64, (uint64_t)bar64);
|
|
if (bar64 || foo64 != 10)
|
|
return -1;
|
|
bar64 = atomic_cas_64((volatile uint64_t *)&bar64, (uint_t)foo64, 15);
|
|
if (bar64)
|
|
return -1;
|
|
atomic_or_64((volatile uint64_t *)&bar64, 0);
|
|
return 0;
|
|
]]
|
|
)],
|
|
[mysql_cv_solaris_atomic=yes],
|
|
[mysql_cv_solaris_atomic=no],
|
|
[mysql_cv_solaris_atomic=no]
|
|
)])
|
|
if test "x$mysql_cv_solaris_atomic" = xyes; then
|
|
AC_DEFINE(HAVE_SOLARIS_ATOMIC, 1,
|
|
[Define to 1 if OS provides atomic_* functions like Solaris.])
|
|
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(mysqld-libs,
|
|
[ --with-mysqld-libs Extra libraries to link with for mysqld],
|
|
[MYSQLD_EXTRA_LIBS=$withval],
|
|
[MYSQLD_EXTRA_LIBS=])
|
|
AC_SUBST(MYSQLD_EXTRA_LIBS)
|
|
|
|
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 "$TARGET_LINUX" = "true" -a "$ac_cv_prog_gcc" = "yes" -a "$all_is_static" != "yes"
|
|
then
|
|
LDFLAGS="$LDFLAGS -rdynamic"
|
|
AC_MSG_RESULT("-rdynamic")
|
|
else
|
|
case "$SYSTEM_TYPE$with_mysqld_ldflags " in
|
|
*freebsd*"-all-static "*|*dragonfly*"-all-static "*)
|
|
AC_MSG_RESULT("none")
|
|
;;
|
|
*freebsd*|*dragonfly*)
|
|
MYSQLD_EXTRA_LDFLAGS="$MYSQLD_EXTRA_LDFLAGS -export-dynamic"
|
|
AC_MSG_RESULT("-export-dynamic")
|
|
;;
|
|
*)
|
|
AC_MSG_RESULT("none")
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
dnl Checks for typedefs, structures, and compiler characteristics.
|
|
AC_C_CONST
|
|
AC_C_INLINE
|
|
AS_IF([test "x$ac_cv_c_inline" = "xno"],
|
|
[AC_MSG_WARN([The C compiler does not support inline. Beware that unused
|
|
functions might not be eliminated the object files.])])
|
|
AC_TYPE_OFF_T
|
|
AC_STRUCT_ST_RDEV
|
|
AC_HEADER_TIME
|
|
AC_STRUCT_TM
|
|
MYSQL_NEEDS_MYSYS_NEW
|
|
# 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(short, 2)
|
|
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
|
|
AC_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
|
|
|
|
dnl
|
|
dnl check if time_t is unsigned
|
|
dnl
|
|
|
|
MYSQL_CHECK_TIME_T
|
|
|
|
|
|
# do we need #pragma interface/#pragma implementation ?
|
|
# yes if it's gcc 2.x, and not icc pretending to be gcc, and not cygwin
|
|
AC_MSG_CHECKING(the need for @%:@pragma interface/implementation)
|
|
# instead of trying to match SYSTEM_TYPE and CC_VERSION (that doesn't
|
|
# follow any standard), we'll use well-defined preprocessor macros:
|
|
AC_TRY_CPP([
|
|
#if !defined(__CYGWIN__) && !defined(__INTEL_COMPILER) && defined(__GNUC__) && (__GNUC__ < 3)
|
|
#error USE_PRAGMA_IMPLEMENTATION
|
|
#endif
|
|
],AC_MSG_RESULT(no) ,AC_MSG_RESULT(yes) ; CXXFLAGS="$CXXFLAGS -DUSE_PRAGMA_IMPLEMENTATION")
|
|
|
|
# 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:
|
|
# Figure out what type of struct rlimit to use with setrlimit
|
|
MYSQL_TYPE_STRUCT_RLIMIT
|
|
# 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 c++ compiler have a bool type
|
|
MYSQL_CXX_BOOL
|
|
# Check some common bugs with gcc 2.8.# on sparc
|
|
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
|
|
AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
|
|
AC_CHECK_TYPES([size_t], [], [], [#include <stdio.h>])
|
|
AC_CHECK_TYPES([u_int32_t])
|
|
|
|
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)
|
|
|
|
dnl Sun compilers have their own vis.h that is about something
|
|
dnl totally different. So, not to change the libedit source, we
|
|
dnl do some additional checks before we define HAVE_VIS_H.
|
|
AC_CHECK_HEADER(vis.h,
|
|
[AC_CHECK_FUNC(strvis,
|
|
[AC_DEFINE([HAVE_VIS_H], [1],[Found vis.h and the strvis() function])])])
|
|
|
|
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 langinfo.h)
|
|
|
|
# Already-done: strcasecmp
|
|
AC_CHECK_FUNCS(lstat putenv select setenv setlocale strcoll tcgetattr)
|
|
AC_CHECK_FUNCS(nl_langinfo)
|
|
|
|
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_STRUCT_DIRENT_D_NAMLEN
|
|
MYSQL_TYPE_SIGHANDLER
|
|
MYSQL_CHECK_MULTIBYTE
|
|
if test "$with_named_curses" = "no"
|
|
then
|
|
MYSQL_CHECK_LIB_TERMCAP
|
|
else
|
|
TERMCAP_LIB="$with_named_curses"
|
|
fi
|
|
AC_SUBST(TERMCAP_LIB)
|
|
|
|
# Check if the termcap function 'tgoto' is already declared in
|
|
# system header files or if it need to be declared locally
|
|
AC_CHECK_DECLS(tgoto,,,[
|
|
#ifdef HAVE_CURSES_H
|
|
# include <curses.h>
|
|
#elif HAVE_NCURSES_H
|
|
# include <ncurses.h>
|
|
#endif
|
|
#ifdef HAVE_TERM_H
|
|
# include <term.h>
|
|
#endif
|
|
])
|
|
|
|
LIBEDIT_LOBJECTS=""
|
|
AC_CHECK_FUNC(strunvis, ,[LIBEDIT_LOBJECTS="$LIBEDIT_LOBJECTS unvis.o"])
|
|
AC_CHECK_FUNC(strvis, ,[LIBEDIT_LOBJECTS="$LIBEDIT_LOBJECTS vis.o"])
|
|
AC_CHECK_FUNC(strlcpy, ,[LIBEDIT_LOBJECTS="$LIBEDIT_LOBJECTS strlcpy.o"])
|
|
AC_CHECK_FUNC(strlcat, ,[LIBEDIT_LOBJECTS="$LIBEDIT_LOBJECTS strlcat.o"])
|
|
AC_CHECK_FUNC(fgetln, ,[LIBEDIT_LOBJECTS="$LIBEDIT_LOBJECTS fgetln.o"])
|
|
AC_SUBST(LIBEDIT_LOBJECTS)
|
|
enable_readline="yes"
|
|
|
|
# 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 bfill bmove bsearch bzero \
|
|
chsize cuserid fchmod fcntl \
|
|
fdatasync fesetround finite fpresetsticky fpsetmask fsync ftruncate \
|
|
getcwd gethostbyaddr_r gethostbyname_r getpass getpassphrase getpwnam \
|
|
getpwuid getrlimit getrusage getwd index initgroups isnan \
|
|
localtime_r gethrtime gmtime_r \
|
|
locking longjmp lrand48 madvise mallinfo memcpy memmove \
|
|
mkstemp mlockall perror poll pread pthread_attr_create mmap mmap64 getpagesize \
|
|
pthread_attr_getstacksize pthread_attr_setstacksize pthread_condattr_create \
|
|
pthread_getsequence_np pthread_key_delete pthread_rwlock_rdlock \
|
|
pthread_sigmask \
|
|
readlink realpath rename rint rwlock_init setupterm \
|
|
shmget shmat shmdt shmctl sigaction sigemptyset sigaddset \
|
|
sighold sigset sigthreadmask port_create sleep thr_yield \
|
|
snprintf socket stpcpy strcasecmp strerror strsignal strnlen strpbrk strstr \
|
|
strtol strtoll strtoul strtoull tell tempnam thr_setconcurrency vidattr \
|
|
posix_fallocate backtrace backtrace_symbols backtrace_symbols_fd printstack)
|
|
|
|
#
|
|
#
|
|
#
|
|
case "$target" in
|
|
*-*-aix4* | *-*-sco*)
|
|
# (grr) aix 4.3 has a stub for clock_gettime, (returning ENOSYS)
|
|
# and using AC_TRY_RUN is hard when cross-compiling
|
|
# We also disable for SCO for the time being, the headers for the
|
|
# thread library we use conflicts with other headers.
|
|
;;
|
|
*) AC_CHECK_FUNCS(clock_gettime)
|
|
;;
|
|
esac
|
|
|
|
case "$mysql_cv_sys_os" in
|
|
OS400) # i5/OS (OS/400) emits a SIGILL (Function not implemented) when
|
|
# unsupported priority values are passed to pthread_setschedprio.
|
|
# Since the only supported value is 1, treat it as inexistent.
|
|
;;
|
|
SunOS) # Bug#42599 error: `pthread_setschedprio' was not declared in this scope
|
|
# In some installations, the pthread.h header used by GCC does not
|
|
# declare the pthread_setscheprio prototype, but the function is
|
|
# implemented. Since the function is used in C++ code, ensure that
|
|
# the function prototype is present.
|
|
AC_MSG_CHECKING([whether pthread_setschedprio is declared])
|
|
AC_LANG_PUSH([C++])
|
|
AC_COMPILE_IFELSE([
|
|
AC_LANG_PROGRAM([#include <pthread.h>],
|
|
[(void)(pthread_setschedprio);])],
|
|
[ac_cv_func_pthread_setschedprio=yes],
|
|
[ac_cv_func_pthread_setschedprio=no])
|
|
AC_LANG_POP([C++])
|
|
AC_MSG_RESULT([$ac_cv_func_pthread_setschedprio])
|
|
if test "$ac_cv_func_pthread_setschedprio" = yes; then
|
|
AC_DEFINE(HAVE_PTHREAD_SETSCHEDPRIO, 1,
|
|
[Define to 1 if you have the `pthread_setschedprio' function.])
|
|
fi
|
|
;;
|
|
*) AC_CHECK_FUNCS(pthread_setschedprio)
|
|
;;
|
|
esac
|
|
|
|
# Check that isinf() is available in math.h and can be used in both C and C++
|
|
# code
|
|
AC_MSG_CHECKING(for isinf in <math.h>)
|
|
AC_TRY_LINK([#include <math.h>], [float f = 0.0; int r = isinf(f); return r],
|
|
AC_MSG_RESULT(yes)
|
|
AC_MSG_CHECKING(whether isinf() is safe to use in C code)
|
|
AC_TRY_RUN([
|
|
#include <math.h>
|
|
int main()
|
|
{
|
|
double a= 10.0;
|
|
double b= 1e308;
|
|
|
|
return !isinf(a * b);
|
|
}
|
|
],
|
|
[AC_MSG_RESULT(yes)],
|
|
[AC_MSG_RESULT(no)
|
|
AC_DEFINE([HAVE_BROKEN_ISINF], [1],
|
|
[Define to 1 if isinf() uses 80-bit register for intermediate values])
|
|
],
|
|
[
|
|
# Let's be optimistic when cross-compiling, since the only compiler known
|
|
# to be affected by this isinf() bug is GCC 4.3 on 32-bit x86.
|
|
AC_MSG_RESULT([[cross-compiling, assuming 'yes']])
|
|
])
|
|
AC_MSG_CHECKING(whether isinf() can be used in C++ code)
|
|
AC_LANG_SAVE
|
|
AC_LANG_CPLUSPLUS
|
|
AC_TRY_LINK([#include <math.h>], [float f = 0.0; int r = isinf(f); return r],
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(HAVE_ISINF, [1], [isinf() macro or function]),
|
|
AC_MSG_RESULT(no))
|
|
AC_LANG_RESTORE,
|
|
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 "$TARGET_LINUX" = "true";
|
|
then
|
|
AC_MSG_ERROR("Found fseeko symbol but large_file_support is not enabled!")
|
|
fi]
|
|
)
|
|
|
|
# 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
|
|
|
|
# Test whether madvise() is declared in C++ code -- it is not on some
|
|
# systems, such as Solaris
|
|
AC_CHECK_DECLS(madvise, [], [], [#if HAVE_SYS_MMAN_H
|
|
#include <sys/types.h>
|
|
#include <sys/mman.h>
|
|
#endif])
|
|
|
|
# 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
|
|
# We also must remove -W and -Wcheck which on icc produces warnings that
|
|
# we don't want to catch with -Werror
|
|
|
|
if test "$ac_cv_prog_gxx" = "yes" -a "$with_other_libc" = "no"
|
|
then
|
|
CXXFLAGS=`echo "$CXXFLAGS -Werror" | sed -e 's/-fbranch-probabilities//; s/-Wall//; s/-ansi//; s/-pedantic//; s/-Wcheck//'`
|
|
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], [1],
|
|
[Solaris define gethostbyaddr_r with 7 arguments. glibc2 defines this with 8 arguments])
|
|
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 gethostbyname_r routines], mysql_cv_gethostbyname_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 -e 's/-fbranch-probabilities//; s/-Wall//; s/-ansi//; s/-pedantic//; s/-Wcheck//'`
|
|
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_gethostbyname_style=glibc2, mysql_cv_gethostbyname_style=other))
|
|
AC_LANG_RESTORE
|
|
CXXFLAGS="$ac_save_CXXFLAGS"
|
|
if test "$mysql_cv_gethostbyname_style" = "glibc2"
|
|
then
|
|
AC_DEFINE([HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE], [1],
|
|
[Solaris define gethostbyname_r with 5 arguments. glibc2 defines this with 6 arguments])
|
|
fi
|
|
|
|
# Check 3rd argument of getthostbyname_r
|
|
ac_save_CXXFLAGS="$CXXFLAGS"
|
|
AC_CACHE_CHECK([3 argument to gethostbyname_r routines], mysql_cv_gethostbyname_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 -e 's/-fbranch-probabilities//; s/-Wall//; s/-ansi//; s/-pedantic//; s/-Wcheck//'`
|
|
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_gethostbyname_arg=hostent_data, mysql_cv_gethostbyname_arg=char))
|
|
AC_LANG_RESTORE
|
|
CXXFLAGS="$ac_save_CXXFLAGS"
|
|
if test "$mysql_cv_gethostbyname_arg" = "hostent_data"
|
|
then
|
|
AC_DEFINE([HAVE_GETHOSTBYNAME_R_RETURN_INT], [1],
|
|
[In OSF 4.0f the 3'd argument to gethostbyname_r is hostent_data *])
|
|
fi
|
|
|
|
|
|
# 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], [1],
|
|
[For some non posix threads])
|
|
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], [1],
|
|
[For some non posix threads])
|
|
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], [1], [POSIX 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], [1], [POSIX 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], [1], [sigwait with one argument])
|
|
fi
|
|
fi
|
|
#---END:
|
|
|
|
#Check for x86 PAUSE instruction
|
|
AC_MSG_CHECKING("for x86 PAUSE instruction")
|
|
# We have to actually try running the test program, because of a bug
|
|
# in Solaris on x86_64, where it wrongly reports that PAUSE is not
|
|
# supported when trying to run an application. See
|
|
# http://bugs.opensolaris.org/bugdatabase/printableBug.do?bug_id=6478684
|
|
AC_TRY_RUN([
|
|
int main() {
|
|
__asm__ __volatile__ ("pause");
|
|
return 0;
|
|
}
|
|
],
|
|
[x86_pause_exists=yes],
|
|
[x86_pause_exists=no],
|
|
[x86_pause_exists=no] # Cross-compile, assume no PAUSE instruction
|
|
)
|
|
AC_TRY_RUN([
|
|
int main() {
|
|
__asm__ __volatile__ ("rep; nop");
|
|
return 0;
|
|
}
|
|
],
|
|
[x86_fake_pause_exists=yes],
|
|
[x86_fake_pause_exists=no],
|
|
[x86_fake_pause_exists=no] # Cross-compile, assume no x86 NOP instruction
|
|
)
|
|
if test "$x86_pause_exists" = "yes"
|
|
then
|
|
AC_DEFINE([HAVE_PAUSE_INSTRUCTION], [1], [Does x86 PAUSE instruction exist])
|
|
else
|
|
if test "$x86_fake_pause_exists" = "yes"
|
|
then
|
|
AC_DEFINE([HAVE_FAKE_PAUSE_INSTRUCTION], [1], [Does x86 NOP instruction exist])
|
|
fi
|
|
fi
|
|
|
|
# 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], [1], [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], [1], [Can netinet be included])
|
|
fi
|
|
AC_MSG_RESULT("$netinet_inc")
|
|
|
|
AC_CACHE_CHECK([support for weak symbols], mysql_cv_weak_symbol,
|
|
[AC_TRY_LINK([],[
|
|
extern void __attribute__((weak)) foo(void);
|
|
], [mysql_cv_weak_symbol=yes], [mysql_cv_weak_symbol=no])])
|
|
|
|
if test "x$mysql_cv_weak_symbol" = xyes; then
|
|
AC_DEFINE(HAVE_WEAK_SYMBOL, 1,
|
|
[Define to 1 if compiler supports weak symbol attribute.])
|
|
fi
|
|
|
|
AC_CACHE_CHECK([whether __bss_start is defined], mysql_cv_bss_start,
|
|
[AC_TRY_LINK([],[
|
|
extern char *__bss_start;
|
|
return __bss_start ? 1 : 0;
|
|
], [mysql_cv_bss_start=yes], [mysql_cv_bss_start=no])])
|
|
|
|
if test "x$mysql_cv_bss_start" = xyes; then
|
|
AC_DEFINE(HAVE_BSS_START, 1,
|
|
[Define to 1 if compiler defines __bss_start.])
|
|
fi
|
|
|
|
AC_LANG_SAVE
|
|
AC_LANG_CPLUSPLUS
|
|
AC_CHECK_HEADERS(cxxabi.h)
|
|
AC_CACHE_CHECK([for abi::__cxa_demangle], mysql_cv_cxa_demangle,
|
|
[AC_TRY_LINK([#include <cxxabi.h>], [
|
|
char *foo= 0; int bar= 0;
|
|
foo= abi::__cxa_demangle(foo, foo, 0, &bar);
|
|
], [mysql_cv_cxa_demangle=yes], [mysql_cv_cxa_demangle=no])])
|
|
AC_LANG_RESTORE
|
|
|
|
if test "x$mysql_cv_cxa_demangle" = xyes; then
|
|
AC_DEFINE(HAVE_ABI_CXA_DEMANGLE, 1,
|
|
[Define to 1 if you have the `abi::__cxa_demangle' function.])
|
|
fi
|
|
|
|
#--------------------------------------------------------------------
|
|
# Check for requested features
|
|
#--------------------------------------------------------------------
|
|
|
|
MYSQL_CHECK_BIG_TABLES
|
|
MYSQL_CHECK_MAX_INDEXES
|
|
MYSQL_CHECK_VIO
|
|
MYSQL_CHECK_SSL
|
|
|
|
#--------------------------------------------------------------------
|
|
# Declare our plugin modules
|
|
# Has to be done late, as the plugin may need to check for existence of
|
|
# functions tested above
|
|
#--------------------------------------------------------------------
|
|
|
|
MYSQL_STORAGE_ENGINE(partition, partition, [Partition Support],
|
|
[MySQL Partitioning Support], [max,max-no-ndb])
|
|
|
|
dnl -- ndbcluster requires partition to be enabled
|
|
|
|
MYSQL_CONFIGURE_PLUGINS([default])
|
|
|
|
# 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], [1], [If we want to have query cache])
|
|
fi
|
|
|
|
AC_ARG_WITH(geometry,
|
|
[ --without-geometry Do not build geometry-related parts.],
|
|
[with_geometry=$withval],
|
|
[with_geometry=yes]
|
|
)
|
|
|
|
if test "$with_geometry" = "yes"
|
|
then
|
|
AC_DEFINE([HAVE_SPATIAL], [1], [Spatial extentions])
|
|
AC_DEFINE([HAVE_RTREE_KEYS], [1], [RTree keys])
|
|
fi
|
|
|
|
AC_ARG_WITH(embedded_privilege_control,
|
|
[ --with-embedded-privilege-control
|
|
Build parts to check user's privileges.
|
|
Only affects embedded library.],
|
|
[with_embedded_privilege_control=$withval],
|
|
[with_embedded_privilege_control=no]
|
|
)
|
|
|
|
if test "$with_embedded_privilege_control" = "yes"
|
|
then
|
|
AC_DEFINE([HAVE_EMBEDDED_PRIVILEGE_CONTROL], [1],
|
|
[Access checks in embedded library])
|
|
fi
|
|
|
|
#MYSQL_CHECK_CPU
|
|
|
|
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"
|
|
if test -f "$srcdir/Docs/manual.chm" ; then
|
|
extra_docs="manual.chm"
|
|
fi
|
|
else
|
|
docs_dirs=""
|
|
extra_docs=""
|
|
fi
|
|
AC_SUBST(docs_dirs)
|
|
AC_SUBST(extra_docs)
|
|
|
|
# Shall we build the man pages?
|
|
AC_ARG_WITH(man,
|
|
[ --without-man Skip building of the man pages.],
|
|
[with_man=$withval],
|
|
[with_man=yes]
|
|
)
|
|
|
|
# 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 ]
|
|
)
|
|
|
|
if test "$with_readline/$with_libedit" = "undefined/undefined" -a ! -e "$srcdir/cmd-line-utils"
|
|
then
|
|
with_readline=no
|
|
with_libedit=no
|
|
fi
|
|
|
|
#
|
|
# We support next variants of compilation:
|
|
# --with-readline
|
|
# | yes | no | undefined
|
|
# --with-libedit | | |
|
|
# ---------------+----------------+------+----------------------------------
|
|
# yes | ERROR! | use libedit from mysql sources
|
|
# ---------------+----------------+------+----------------------------------
|
|
# no | use readline | use system readline or external libedit
|
|
# | from mysql | according to results of m4 tests
|
|
# ---------------+ sources (if it + +----------------------------------
|
|
# undefined | is presented) | | use libedit from mysql sources
|
|
|
|
|
|
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=""
|
|
want_to_use_readline="no"
|
|
|
|
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/libedit.a"
|
|
readline_h_ln_cmd="\$(LN) -s \$(top_srcdir)/cmd-line-utils/libedit/readline readline"
|
|
compile_libedit=yes
|
|
AC_DEFINE_UNQUOTED(HAVE_HIST_ENTRY, 1)
|
|
AC_DEFINE_UNQUOTED(USE_LIBEDIT_INTERFACE, 1)
|
|
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_srcdir)/cmd-line-utils/readline readline"
|
|
compile_readline=yes
|
|
want_to_use_readline="yes"
|
|
AC_DEFINE_UNQUOTED(USE_NEW_READLINE_INTERFACE, 1)
|
|
else
|
|
# Use system readline library
|
|
AC_LANG_SAVE
|
|
AC_LANG_CPLUSPLUS
|
|
MYSQL_CHECK_LIBEDIT_INTERFACE
|
|
MYSQL_CHECK_NEW_RL_INTERFACE
|
|
MYSQL_CHECK_READLINE_DECLARES_HIST_ENTRY
|
|
AC_LANG_RESTORE
|
|
if [test "$mysql_cv_new_rl_interface" = "yes"] && [test -d "$srcdir/cmd-line-utils/readline"]
|
|
then
|
|
# Use the new readline interface, but only if the package includes a bundled libreadline
|
|
# this way we avoid linking commercial source with GPL readline
|
|
readline_link="-lreadline"
|
|
want_to_use_readline="yes"
|
|
elif [test "$mysql_cv_libedit_interface" = "yes"]
|
|
then
|
|
# Use libedit
|
|
readline_link="-ledit"
|
|
else
|
|
AC_MSG_ERROR([Could not find system readline or libedit libraries
|
|
Use --with-readline or --with-libedit to use the bundled
|
|
versions of libedit or readline])
|
|
fi
|
|
fi
|
|
|
|
# if there is no readline, but we want to build with readline, we fail
|
|
if [test "$want_to_use_readline" = "yes"] && [test ! -d "$srcdir/cmd-line-utils/readline"]
|
|
then
|
|
AC_MSG_ERROR([This commercially licensed MySQL source package can't
|
|
be built with libreadline. Please use --with-libedit to use
|
|
the bundled version of libedit instead.])
|
|
fi
|
|
|
|
AC_SUBST(readline_dir)
|
|
AC_SUBST(readline_topdir)
|
|
AC_SUBST(readline_basedir)
|
|
AC_SUBST(readline_link)
|
|
AC_SUBST(readline_h_ln_cmd)
|
|
|
|
|
|
|
|
# Include man pages, if desired, adapted to the configured parts.
|
|
if test X"$with_man" = Xyes
|
|
then
|
|
# First, create the list of all man pages present.
|
|
MANLISTFIL=manlist.$$
|
|
TMPLISTFIL=`echo $MANLISTFIL | sed -e 's/manlist/tmplist/'`
|
|
if test -f $MANLISTFIL -o -f $TMPLISTFIL
|
|
then
|
|
echo "Temp file '$MANLISTFIL' or '$TMPLISTFIL' already exists in '`pwd`' - aborting"
|
|
exit 1
|
|
fi
|
|
touch $MANLISTFIL $TMPLISTFIL
|
|
|
|
ls $srcdir/man/*.[[18]] > $MANLISTFIL
|
|
|
|
# Then, remove all those pages from the list which are specific to parts
|
|
# (table handlers, features, ...) which are not configured in this run.
|
|
AC_MSG_CHECKING("for man pages to remove")
|
|
MAN_DROP="dropping"
|
|
if test X"$with_plugin_ndbcluster" != Xyes
|
|
then
|
|
MAN_DROP="$MAN_DROP ndbcluster"
|
|
grep -v '/ndb' $MANLISTFIL > $TMPLISTFIL ; mv -f $TMPLISTFIL $MANLISTFIL
|
|
fi
|
|
if test X"$with_embedded_server" != Xyes
|
|
then
|
|
MAN_DROP="$MAN_DROP embedded"
|
|
grep -v 'embedded' $MANLISTFIL > $TMPLISTFIL ; mv -f $TMPLISTFIL $MANLISTFIL
|
|
fi
|
|
if test X"$with_plugin_innobase" != Xyes
|
|
then
|
|
MAN_DROP="$MAN_DROP innodb"
|
|
grep -v 'inno' $MANLISTFIL > $TMPLISTFIL ; mv -f $TMPLISTFIL $MANLISTFIL
|
|
fi
|
|
AC_MSG_RESULT([$MAN_DROP])
|
|
|
|
# Finally, split the man pages into sections 1 and 8.
|
|
# Get rid of line breaks.
|
|
man1_files=`sed -n -e '/\.1$/s/^.*man\///p' <$MANLISTFIL`
|
|
man8_files=`sed -n -e '/\.8$/s/^.*man\///p' <$MANLISTFIL`
|
|
|
|
man_dirs="man"
|
|
man1_files=`echo $man1_files`
|
|
man8_files=`echo $man8_files`
|
|
rm -f $MANLISTFIL $TMPLISTFIL
|
|
else
|
|
man_dirs=""
|
|
man1_files=""
|
|
man8_files=""
|
|
fi
|
|
AC_SUBST(man_dirs)
|
|
AC_SUBST(man1_files)
|
|
AC_SUBST(man8_files)
|
|
|
|
# If we have threads generate some library functions and test programs
|
|
sql_server_dirs=
|
|
sql_server=
|
|
server_scripts=
|
|
|
|
dnl This probably should be cleaned up more - for now the threaded
|
|
dnl client is just using plain-old libs.
|
|
sql_client_dirs="strings mysys dbug extra regex libmysql"
|
|
|
|
AM_CONDITIONAL(THREAD_SAFE_CLIENT, test "$THREAD_SAFE_CLIENT" != "no")
|
|
|
|
if test "$THREAD_SAFE_CLIENT" != "no"
|
|
then
|
|
sql_client_dirs="$sql_client_dirs libmysql_r"
|
|
AC_DEFINE([THREAD_SAFE_CLIENT], [1], [Should the client be thread safe])
|
|
fi
|
|
sql_client_dirs="$sql_client_dirs client"
|
|
|
|
CLIENT_LIBS="$NON_THREADED_LIBS $openssl_libs $ZLIB_LIBS $STATIC_NSS_FLAGS"
|
|
|
|
AC_SUBST(CLIENT_LIBS)
|
|
AC_SUBST(CLIENT_THREAD_LIBS)
|
|
AC_SUBST(NON_THREADED_LIBS)
|
|
AC_SUBST(STATIC_NSS_FLAGS)
|
|
AC_SUBST(sql_client_dirs)
|
|
|
|
if test "$with_server" != "no" -o "$THREAD_SAFE_CLIENT" != "no"
|
|
then
|
|
AC_DEFINE([THREAD], [1],
|
|
[Define if you want to have threaded code. This may be undef on client code])
|
|
# Avoid _PROGRAMS names
|
|
THREAD_LOBJECTS="thr_alarm.o thr_lock.o thr_mutex.o thr_rwlock.o my_pthread.o my_thr_init.o mf_keycache.o"
|
|
AC_SUBST(THREAD_LOBJECTS)
|
|
fi
|
|
AM_CONDITIONAL(NEED_THREAD, test "$with_server" != "no" -o "$THREAD_SAFE_CLIENT" != "no")
|
|
|
|
if test "$with_server" != "no"
|
|
then
|
|
server_scripts="mysqld_safe mysql_install_db"
|
|
sql_server_dirs="strings mysys dbug extra regex storage plugin"
|
|
|
|
sql_server="vio sql"
|
|
fi
|
|
|
|
# "innochecksum" is not in the "innobase/" subdirectory, but should be switched
|
|
AM_CONDITIONAL([BUILD_INNODB_TOOLS], [test X"$with_plugin_innobase" = Xyes])
|
|
|
|
# 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(sql_server)
|
|
AC_SUBST(server_scripts)
|
|
|
|
AC_SUBST(mysql_plugin_dirs)
|
|
AC_SUBST(mysql_plugin_libs)
|
|
AC_SUBST(mysql_optional_plugins)
|
|
AC_SUBST(mysql_mandatory_plugins)
|
|
|
|
# Now that sql_client_dirs and sql_server_dirs are stable, determine the union.
|
|
# We support client-only builds by "--without-server", but not vice versa,
|
|
# so we start with the client list, then add each server item not yet present.
|
|
sql_union_dirs=" $sql_client_dirs "
|
|
for DIR in $sql_server_dirs
|
|
do
|
|
if echo " $sql_union_dirs " | grep " $DIR " >/dev/null
|
|
then
|
|
: # already present, skip
|
|
else
|
|
sql_union_dirs="$sql_union_dirs $DIR "
|
|
fi
|
|
done
|
|
AC_SUBST(sql_union_dirs)
|
|
|
|
#
|
|
# Setup maintainer mode options by the end to not disturb
|
|
# system and other checks.
|
|
#
|
|
MY_MAINTAINER_MODE_SETUP
|
|
|
|
# Some usefull subst
|
|
AC_SUBST(CC)
|
|
AC_SUBST(GXX)
|
|
|
|
# Set configuration options for make_binary_distribution
|
|
AC_SUBST(MAKE_BINARY_DISTRIBUTION_OPTIONS)
|
|
|
|
#--------------------------------------------------------------------
|
|
# Support for WL#2373 (Use cycle counter for timing)
|
|
#--------------------------------------------------------------------
|
|
|
|
AC_CHECK_HEADERS(time.h)
|
|
AC_CHECK_HEADERS(sys/time.h)
|
|
AC_CHECK_HEADERS(sys/times.h)
|
|
AC_CHECK_HEADERS(asm/msr.h)
|
|
#msr.h has rdtscll()
|
|
|
|
AC_CHECK_HEADERS(ia64intrin.h)
|
|
|
|
AC_CHECK_FUNCS(times)
|
|
AC_CHECK_FUNCS(gettimeofday)
|
|
AC_CHECK_FUNCS(read_real_time)
|
|
# This should work on AIX.
|
|
|
|
AC_CHECK_FUNCS(ftime)
|
|
# This is still a normal call for milliseconds.
|
|
|
|
AC_CHECK_FUNCS(time)
|
|
# We can use time() on Macintosh if there is no ftime().
|
|
|
|
AC_CHECK_FUNCS(rdtscll)
|
|
# I doubt that we'll ever reach the check for this.
|
|
|
|
# When compiling with Sun Studio C / C++ we need to include
|
|
# my_timer_cycles.il, an "inline templates" separate file,
|
|
# on the command line. It has assembly code, "rd %tick" for
|
|
# SPARC or "rdtsc" for x86.
|
|
RDTSC_SPARC_ASSEMBLY=""
|
|
case $CC_VERSION in
|
|
*Sun*C*)
|
|
RDTSC_SPARC_ASSEMBLY="my_timer_cycles.il"
|
|
;;
|
|
esac
|
|
case $CXX_VERSION in
|
|
*Sun*C++*)
|
|
RDTSC_SPARC_ASSEMBLY="my_timer_cycles.il"
|
|
;;
|
|
esac
|
|
|
|
AC_SUBST([RDTSC_SPARC_ASSEMBLY])
|
|
|
|
|
|
#--------------------------------------------------------------------
|
|
# Output results
|
|
#--------------------------------------------------------------------
|
|
|
|
if test -d "$srcdir/cmd-line-utils/readline" ; then
|
|
AC_CONFIG_FILES(cmd-line-utils/readline/Makefile)
|
|
fi
|
|
|
|
AC_CONFIG_FILES(Makefile extra/Makefile mysys/Makefile dnl
|
|
unittest/Makefile unittest/mytap/Makefile unittest/mytap/t/Makefile dnl
|
|
unittest/mysys/Makefile unittest/strings/Makefile dnl
|
|
unittest/examples/Makefile dnl
|
|
strings/Makefile regex/Makefile storage/Makefile dnl
|
|
man/Makefile BUILD/Makefile vio/Makefile dnl
|
|
libmysql/Makefile libmysql_r/Makefile client/Makefile dnl
|
|
sql/Makefile sql/share/Makefile dnl
|
|
sql/sql_builtin.cc sql-common/Makefile libservices/Makefile dnl
|
|
dbug/Makefile scripts/Makefile include/Makefile dnl
|
|
tests/Makefile Docs/Makefile support-files/Makefile dnl
|
|
support-files/MacOSX/Makefile support-files/RHEL4-SElinux/Makefile dnl
|
|
cmd-line-utils/Makefile cmd-line-utils/libedit/Makefile dnl
|
|
libmysqld/Makefile libmysqld/examples/Makefile dnl
|
|
mysql-test/Makefile mysql-test/lib/My/SafeProcess/Makefile dnl
|
|
sql-bench/Makefile include/mysql_version.h plugin/Makefile win/Makefile dnl
|
|
cmake/Makefile packaging/Makefile
|
|
)
|
|
|
|
AC_CONFIG_COMMANDS([default], , test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h)
|
|
|
|
# Ensure that table handlers gets all modifications to CFLAGS/CXXFLAGS
|
|
AC_CONFIG_COMMANDS_POST(ac_configure_args="$ac_configure_args CFLAGS='$CFLAGS' CXXFLAGS='$CXXFLAGS'")
|
|
|
|
AC_OUTPUT
|
|
|
|
# The first line "Thank you ..." is checked in ./Do-compile to verify that configure
|
|
# ended sucessfully - don't remove it.
|
|
echo
|
|
echo "Thank you for choosing MySQL!"
|
|
echo
|
|
echo "Remember to check the platform specific part of the reference manual"
|
|
echo "for hints about installing MySQL on your platform."
|
|
echo "Also have a look at the files in the Docs directory."
|
|
echo
|