mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			2929 lines
		
	
	
		
			92 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			2929 lines
		
	
	
		
			92 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
dnl -*- ksh -*-
 | 
						|
dnl Process this file with autoconf to produce a configure script.
 | 
						|
 | 
						|
# 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.1.46], [], [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/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/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)
 | 
						|
 | 
						|
 | 
						|
# 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)
 | 
						|
case $SYSTEM_TYPE in
 | 
						|
  *netware*)
 | 
						|
CC_VERSION=`$CC -version | grep -i version`
 | 
						|
    ;;
 | 
						|
  *)
 | 
						|
CC_VERSION=`$CC --version | sed 1q`
 | 
						|
    ;;
 | 
						|
esac
 | 
						|
if test $? -eq "0"
 | 
						|
then
 | 
						|
  AC_MSG_CHECKING("C Compiler version")
 | 
						|
  AC_MSG_RESULT("$CC $CC_VERSION")
 | 
						|
else
 | 
						|
CC_VERSION=""
 | 
						|
fi
 | 
						|
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)
 | 
						|
 | 
						|
#check the return type of sprintf
 | 
						|
AC_MSG_CHECKING("return type of sprintf")
 | 
						|
AC_TRY_RUN([
 | 
						|
  int main()
 | 
						|
    {
 | 
						|
      char* s = "hello";
 | 
						|
      char buf[6];
 | 
						|
      if((int)sprintf(buf, s) == strlen(s))
 | 
						|
	return 0;
 | 
						|
      
 | 
						|
      return -1;
 | 
						|
     }
 | 
						|
   ],
 | 
						|
   [AC_DEFINE(SPRINTF_RETURNS_INT, [1], [POSIX sprintf])
 | 
						|
   AC_MSG_RESULT("int")],
 | 
						|
   [AC_TRY_RUN([
 | 
						|
 int main()
 | 
						|
   {
 | 
						|
     char* s = "hello";
 | 
						|
     char buf[6];
 | 
						|
     if((char*)sprintf(buf,s) == buf + strlen(s))
 | 
						|
       return 0;
 | 
						|
     return -1;
 | 
						|
   }           ],
 | 
						|
               [AC_DEFINE(SPRINTF_RETURNS_PTR, [1], [Broken sprintf])
 | 
						|
                AC_MSG_RESULT("ptr")],
 | 
						|
               [AC_DEFINE(SPRINTF_RETURNS_GARBAGE, [1], [Broken sprintf])
 | 
						|
                AC_MSG_RESULT("garbage")]
 | 
						|
   )],
 | 
						|
   # Cross compile, assume POSIX
 | 
						|
   [AC_DEFINE(SPRINTF_RETURNS_INT, [1], [POSIX sprintf])
 | 
						|
    AC_MSG_RESULT("int (we assume)")]
 | 
						|
)
 | 
						|
 | 
						|
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
 | 
						|
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)
 | 
						|
case $SYSTEM_TYPE in
 | 
						|
  *netware*) ;;
 | 
						|
  *)
 | 
						|
    # 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
 | 
						|
    ;;
 | 
						|
esac
 | 
						|
 | 
						|
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"
 | 
						|
      ;;
 | 
						|
    *netware*)
 | 
						|
      FIND_PROC=
 | 
						|
      ;;
 | 
						|
    *)
 | 
						|
      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_MSG_CHECKING(whether features provided by the user community should be included.)
 | 
						|
AC_ARG_ENABLE(community-features,
 | 
						|
    AC_HELP_STRING(
 | 
						|
        [--disable-community-features], 
 | 
						|
        [Disable additional features provided by the user community.]),
 | 
						|
    [ ENABLE_COMMUNITY_FEATURES=$enableval ],
 | 
						|
    [ ENABLE_COMMUNITY_FEATURES=yes ]
 | 
						|
    )
 | 
						|
 | 
						|
if test "$ENABLE_COMMUNITY_FEATURES" = "yes"
 | 
						|
then
 | 
						|
  AC_DEFINE([COMMUNITY_SERVER], [1],
 | 
						|
            [Whether features provided by the user community should be included])
 | 
						|
  AC_MSG_RESULT([yes])
 | 
						|
else
 | 
						|
  AC_MSG_RESULT([no])
 | 
						|
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_sparc32, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "sparc")
 | 
						|
AM_CONDITIONAL(ASSEMBLER_sparc64, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "sparcv9")
 | 
						|
AM_CONDITIONAL(ASSEMBLER, test "$ASSEMBLER_x86_TRUE" = "" -o "$ASSEMBLER_sparc32_TRUE" = "")
 | 
						|
 | 
						|
if test "$ASSEMBLER_TRUE" = ""
 | 
						|
then
 | 
						|
  AC_MSG_RESULT([yes])
 | 
						|
else
 | 
						|
  AC_MSG_RESULT([no])
 | 
						|
fi
 | 
						|
 | 
						|
# Add query profiler
 | 
						|
AC_MSG_CHECKING(if SHOW PROFILE should be enabled.)
 | 
						|
AC_ARG_ENABLE(profiling,
 | 
						|
    AS_HELP_STRING([--enable-profiling], [Build a version with query profiling code (req. community-features)]),
 | 
						|
    [ ENABLED_PROFILING=$enableval ],
 | 
						|
    [ ENABLED_PROFILING=$ENABLE_COMMUNITY_FEATURES ])
 | 
						|
 | 
						|
if test "$ENABLED_PROFILING" = "yes"
 | 
						|
then
 | 
						|
  if test "$ENABLE_COMMUNITY_FEATURES" = "yes";
 | 
						|
  then
 | 
						|
    AC_DEFINE([ENABLED_PROFILING], [1],
 | 
						|
              [If SHOW PROFILE should be enabled])
 | 
						|
    AC_MSG_RESULT([yes]) 
 | 
						|
  else
 | 
						|
    ENABLED_PROFILING="no"
 | 
						|
    AC_MSG_RESULT([no, overridden by community-features disabled])
 | 
						|
  fi
 | 
						|
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 ieeefp.h limits.h \
 | 
						|
 memory.h pwd.h select.h \
 | 
						|
 stdlib.h stddef.h \
 | 
						|
 strings.h string.h synch.h sys/mman.h sys/socket.h netinet/in.h arpa/inet.h \
 | 
						|
 sys/timeb.h sys/types.h sys/un.h sys/vadvise.h sys/wait.h term.h \
 | 
						|
 unistd.h utime.h sys/utime.h termio.h termios.h sched.h crypt.h alloca.h \
 | 
						|
 sys/ioctl.h malloc.h sys/malloc.h 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([HUGETLB_USE_PROC_MEMINFO], [1],
 | 
						|
                [Define if /proc/meminfo shows the huge page size (Linux only)])
 | 
						|
      , ,
 | 
						|
      [
 | 
						|
#include <sys/shm.h>
 | 
						|
      ]
 | 
						|
  )
 | 
						|
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)
 | 
						|
 | 
						|
if test "$TARGET_LINUX" = "true"; then
 | 
						|
  AC_ARG_WITH(pstack,
 | 
						|
    [  --with-pstack           Use the pstack backtrace library],
 | 
						|
    [ USE_PSTACK=$withval ],
 | 
						|
    [ USE_PSTACK=no ])
 | 
						|
  pstack_libs=
 | 
						|
  pstack_dir=
 | 
						|
  if test "$USE_PSTACK" = yes -a "$TARGET_LINUX" = "true" -a "$BASE_MACHINE_TYPE" = "i386"
 | 
						|
  then
 | 
						|
    have_libiberty= have_libbfd=
 | 
						|
    my_save_LIBS="$LIBS"
 | 
						|
dnl I have no idea if this is a good test - can not find docs for libiberty  
 | 
						|
    AC_CHECK_LIB([iberty], [fdmatch],
 | 
						|
      [have_libiberty=yes
 | 
						|
       AC_CHECK_LIB([bfd], [bfd_openr], [have_libbfd=yes], , [-liberty])])
 | 
						|
    LIBS="$my_save_LIBS"
 | 
						|
 | 
						|
    if test x"$have_libiberty" = xyes -a x"$have_libbfd" = xyes
 | 
						|
    then
 | 
						|
      pstack_dir="pstack"
 | 
						|
      pstack_libs="../pstack/libpstack.a -lbfd -liberty"
 | 
						|
      # We must link staticly when using pstack
 | 
						|
      with_mysqld_ldflags="-all-static"
 | 
						|
      AC_SUBST([pstack_dir])
 | 
						|
      AC_SUBST([pstack_libs])
 | 
						|
      AC_DEFINE([USE_PSTACK], [1], [the pstack backtrace library])
 | 
						|
dnl This check isn't needed, but might be nice to give some feedback....
 | 
						|
dnl    AC_CHECK_HEADER(libiberty.h,
 | 
						|
dnl      have_libiberty_h=yes,
 | 
						|
dnl      have_libiberty_h=no)
 | 
						|
    else
 | 
						|
      USE_PSTACK="no"
 | 
						|
    fi
 | 
						|
  else
 | 
						|
    USE_PSTACK="no"
 | 
						|
  fi
 | 
						|
fi
 | 
						|
AC_MSG_CHECKING([if we should use pstack])
 | 
						|
AC_MSG_RESULT([$USE_PSTACK])
 | 
						|
 | 
						|
# Check for gtty if termio.h doesn't exists
 | 
						|
if test "$ac_cv_header_termio_h" = "no" -a "$ac_cv_header_termios_h" = "no"
 | 
						|
then
 | 
						|
  AC_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([in_addr_t], [], [], [
 | 
						|
#include <sys/types.h>
 | 
						|
#include <sys/socket.h>
 | 
						|
#include <netinet/in.h>
 | 
						|
#include <arpa/inet.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
 | 
						|
      CFLAGS="$CFLAGS -DHAVE_BROKEN_INLINE"
 | 
						|
# 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*)
 | 
						|
    AC_MSG_WARN([Adding fix for interrupted reads])
 | 
						|
    OSVERSION=`sysctl -a | grep osreldate | awk '{ print $2 }'`
 | 
						|
    if test "$OSVERSION" -gt "480100" && \
 | 
						|
       test "$OSVERSION" -lt "500000" || \
 | 
						|
       test "$OSVERSION" -gt "500109"
 | 
						|
    then
 | 
						|
       CXXFLAGS="$CXXFLAGS -DMYSQLD_NET_RETRY_COUNT=1000000"
 | 
						|
    else
 | 
						|
       CFLAGS="$CFLAGS -DHAVE_BROKEN_REALPATH"
 | 
						|
       CXXFLAGS="$CXXFLAGS -DMYSQLD_NET_RETRY_COUNT=1000000 -DHAVE_BROKEN_REALPATH"
 | 
						|
    fi
 | 
						|
    ;;
 | 
						|
  *netbsd*)
 | 
						|
    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"
 | 
						|
    ;;
 | 
						|
  *netware*)
 | 
						|
    # No need for curses library so set it to null
 | 
						|
    with_named_curses=""
 | 
						|
 | 
						|
    # No thread library - in LibC
 | 
						|
    with_named_thread=""
 | 
						|
    
 | 
						|
    #
 | 
						|
    # Edit Makefile.in files.
 | 
						|
    #
 | 
						|
    echo -n "configuring Makefile.in files for NetWare... "
 | 
						|
    for file in sql/Makefile.in extra/Makefile.in client/Makefile.in
 | 
						|
    do
 | 
						|
    # echo "#### $file ####"
 | 
						|
      filedir="`dirname $file`"
 | 
						|
      filebase="`basename $file`"
 | 
						|
      filesed=$filedir/$filebase.sed
 | 
						|
      #
 | 
						|
      # Backup and always use original file
 | 
						|
      #
 | 
						|
      if test -f $file.bk
 | 
						|
      then
 | 
						|
        cp -fp $file.bk $file
 | 
						|
      else
 | 
						|
        cp -fp $file $file.bk
 | 
						|
      fi
 | 
						|
      case $file in
 | 
						|
        sql/Makefile.in)
 | 
						|
          # Use gen_lex_hash.linux instead of gen_lex_hash
 | 
						|
          # Add library dependencies to mysqld_DEPENDENCIES
 | 
						|
          lib_DEPENDENCIES="\$(pstack_libs) \$(openssl_libs) \$(yassl_libs)"
 | 
						|
          cat > $filesed << EOF
 | 
						|
s,\(\./gen_lex_hash\)\$(EXEEXT),\1.linux,
 | 
						|
s%\(mysqld_DEPENDENCIES = \)%\1$lib_DEPENDENCIES %
 | 
						|
EOF
 | 
						|
          ;;
 | 
						|
        extra/Makefile.in)
 | 
						|
          cat > $filesed << EOF
 | 
						|
s,\(extra/comp_err\)\$(EXEEXT),\1.linux,
 | 
						|
EOF
 | 
						|
          ;;
 | 
						|
        libmysql/Makefile.in)
 | 
						|
          cat > $filesed << EOF
 | 
						|
s,libyassl.la,.libs/libyassl.a,
 | 
						|
s,libtaocrypt.la,.libs/libtaocrypt.a,
 | 
						|
EOF
 | 
						|
          ;;
 | 
						|
        libmysql_r/Makefile.in)
 | 
						|
          cat > $filesed << EOF
 | 
						|
s,libyassl.la,.libs/libyassl.a,
 | 
						|
s,libtaocrypt.la,.libs/libtaocrypt.a,
 | 
						|
EOF
 | 
						|
          ;;
 | 
						|
        client/Makefile.in)
 | 
						|
          #
 | 
						|
          cat > $filesed << EOF
 | 
						|
s,libmysqlclient.la,.libs/libmysqlclient.a,
 | 
						|
EOF
 | 
						|
          ;;
 | 
						|
      esac
 | 
						|
      if `sed -f $filesed $file > $file.nw`;\
 | 
						|
      then
 | 
						|
        mv -f $file.nw $file
 | 
						|
        rm -f $filesed
 | 
						|
      else
 | 
						|
        exit 1
 | 
						|
      fi
 | 
						|
      # wait for file system changes to complete
 | 
						|
      sleep 1
 | 
						|
    done
 | 
						|
    echo "done"
 | 
						|
 | 
						|
    #
 | 
						|
    # Make sure the following files are writable.
 | 
						|
    #
 | 
						|
    # When the files are retrieved from some source code control systems they are read-only.
 | 
						|
    #
 | 
						|
    echo -n "making sure specific build files are writable... "
 | 
						|
    for file in \
 | 
						|
        Docs/manual.chm \
 | 
						|
        Docs/mysql.info \
 | 
						|
        Docs/INSTALL-BINARY \
 | 
						|
        INSTALL-SOURCE \
 | 
						|
        COPYING
 | 
						|
    do
 | 
						|
      if test -e $file; then
 | 
						|
        chmod +w $file
 | 
						|
      fi
 | 
						|
    done
 | 
						|
    echo "done"
 | 
						|
 | 
						|
    ;;
 | 
						|
esac
 | 
						|
 | 
						|
 | 
						|
#---START: Used in for client configure
 | 
						|
# Check if we threads are in libc or if we should use
 | 
						|
# -lpthread, -lpthreads or mit-pthreads
 | 
						|
# We have to check libc last because else it fails on Solaris 2.6
 | 
						|
 | 
						|
with_posix_threads="no"
 | 
						|
# 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
 | 
						|
case $SYSTEM_TYPE in
 | 
						|
  *netware*) ;;
 | 
						|
  *)
 | 
						|
AC_SYS_RESTARTABLE_SYSCALLS
 | 
						|
    ;;
 | 
						|
esac
 | 
						|
 | 
						|
# 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
 | 
						|
 | 
						|
case $SYSTEM_TYPE in
 | 
						|
  *netware*)
 | 
						|
    DEBUG_CFLAGS="-g -DDEBUG -sym internal,codeview4"
 | 
						|
    DEBUG_CXXFLAGS="-g -DDEBUG -sym internal,codeview4"
 | 
						|
    DEBUG_OPTIMIZE_CC="-DDEBUG"
 | 
						|
    DEBUG_OPTIMIZE_CXX="-DDEBUG"
 | 
						|
    OPTIMIZE_CFLAGS="-O3 -DNDEBUG"
 | 
						|
    OPTIMIZE_CXXFLAGS="-O3 -DNDEBUG"
 | 
						|
    ;;
 | 
						|
esac
 | 
						|
 | 
						|
# 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,
 | 
						|
    [  --with-debug            Add debug code
 | 
						|
  --with-debug=full       Add debug code (adds memory checker, very slow)],
 | 
						|
    [with_debug=$withval],
 | 
						|
    [with_debug=no])
 | 
						|
if test "$with_debug" = "yes"
 | 
						|
then
 | 
						|
  # Medium debug.
 | 
						|
  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"
 | 
						|
elif test "$with_debug" = "full"
 | 
						|
then
 | 
						|
  # Full debug. Very slow in some cases
 | 
						|
  AC_DEFINE([DBUG_ON], [1], [Use libdbug])
 | 
						|
  CFLAGS="$DEBUG_CFLAGS -DSAFE_MUTEX -DSAFEMALLOC $CFLAGS"
 | 
						|
  CXXFLAGS="$DEBUG_CXXFLAGS -DSAFE_MUTEX -DSAFEMALLOC $CXXFLAGS"
 | 
						|
else
 | 
						|
  # Optimized version. No debug
 | 
						|
  AC_DEFINE([DBUG_OFF], [1], [Don't use libdbug])
 | 
						|
  CFLAGS="$OPTIMIZE_CFLAGS $CFLAGS"
 | 
						|
  CXXFLAGS="$OPTIMIZE_CXXFLAGS $CXXFLAGS"
 | 
						|
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
 | 
						|
 | 
						|
# If we should allow error injection tests
 | 
						|
AC_ARG_WITH(error-inject,
 | 
						|
    AC_HELP_STRING([--with-error-inject],[Enable error injection in MySQL Server]),
 | 
						|
    [ with_error_inject=$withval ],
 | 
						|
    [ with_error_inject=no ])
 | 
						|
 | 
						|
if test $with_debug != "no"
 | 
						|
then
 | 
						|
  if test "$with_error_inject" = "yes"
 | 
						|
  then
 | 
						|
    AC_DEFINE([ERROR_INJECT_SUPPORT], [1],
 | 
						|
              [Enable error injection in MySQL Server])
 | 
						|
  fi
 | 
						|
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],
 | 
						|
	    AC_HELP_STRING([--with-atomic-ops=rwlocks|smp|up],
 | 
						|
	    [Implement atomic operations using pthread rwlocks or atomic CPU
 | 
						|
             instructions for multi-processor (default) or uniprocessor
 | 
						|
             configuration]), , [with_atomic_ops=smp])
 | 
						|
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_TRY_RUN([
 | 
						|
  int main()
 | 
						|
  {
 | 
						|
    int foo= -10; int bar= 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;
 | 
						|
    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
 | 
						|
 | 
						|
# 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
 | 
						|
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
 | 
						|
case $SYSTEM_TYPE in
 | 
						|
  *netware*) ;;
 | 
						|
  *)
 | 
						|
    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
 | 
						|
    ;;
 | 
						|
esac
 | 
						|
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)
 | 
						|
 | 
						|
# Already-done: strcasecmp
 | 
						|
AC_CHECK_FUNCS(lstat putenv select setenv setlocale strcoll tcgetattr)
 | 
						|
 | 
						|
AC_STAT_MACROS_BROKEN
 | 
						|
MYSQL_SIGNAL_CHECK
 | 
						|
MYSQL_CHECK_GETPW_FUNCS
 | 
						|
MYSQL_HAVE_TIOCGWINSZ
 | 
						|
MYSQL_HAVE_FIONREAD
 | 
						|
MYSQL_HAVE_TIOCSTAT
 | 
						|
MYSQL_STRUCT_DIRENT_D_INO
 | 
						|
MYSQL_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 bcmp bfill bmove bsearch bzero \
 | 
						|
  chsize cuserid fchmod fcntl \
 | 
						|
  fconvert 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_setprio pthread_attr_setschedparam \
 | 
						|
  pthread_attr_setstacksize pthread_condattr_create pthread_getsequence_np \
 | 
						|
  pthread_key_delete pthread_rwlock_rdlock pthread_setprio \
 | 
						|
  pthread_setprio_np pthread_setschedparam pthread_sigmask readlink \
 | 
						|
  realpath rename rint rwlock_init setupterm \
 | 
						|
  shmget shmat shmdt shmctl sigaction sigemptyset sigaddset \
 | 
						|
  sighold sigset sigthreadmask port_create sleep \
 | 
						|
  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 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([none])
 | 
						|
 | 
						|
# 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
 | 
						|
 | 
						|
tools_dirs=""
 | 
						|
 | 
						|
AC_ARG_WITH([mysqlmanager],
 | 
						|
  AC_HELP_STRING([--with-mysqlmanager], [Build the mysqlmanager binary: yes/no (default: build if server is built.)]),,)
 | 
						|
 | 
						|
if test "$with_mysqlmanager" = "yes" -o \
 | 
						|
        '(' "$with_mysqlmanager:$with_server" = ":yes" -a \
 | 
						|
            -d "$srcdir/server-tools" ')' ; then
 | 
						|
  tools_dirs="server-tools"
 | 
						|
fi
 | 
						|
 | 
						|
AC_SUBST(tools_dirs)
 | 
						|
 | 
						|
#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"
 | 
						|
 | 
						|
case $SYSTEM_TYPE in
 | 
						|
  *netware*)
 | 
						|
    # For NetWare, do not need readline
 | 
						|
    echo "Skipping readline"
 | 
						|
    ;;
 | 
						|
  *)
 | 
						|
    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
 | 
						|
    ;;
 | 
						|
esac
 | 
						|
 | 
						|
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 configuring for NetWare, build the netware directory
 | 
						|
netware_dir=
 | 
						|
if expr "$SYSTEM_TYPE" : ".*netware.*" > /dev/null
 | 
						|
then
 | 
						|
  netware_dir="netware"
 | 
						|
fi
 | 
						|
AC_SUBST(netware_dir)
 | 
						|
AM_CONDITIONAL(HAVE_NETWARE, test "$netware_dir" = "netware")
 | 
						|
 | 
						|
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_plugin_defs)
 | 
						|
 | 
						|
 | 
						|
# 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)
 | 
						|
 | 
						|
# Some usefull subst
 | 
						|
AC_SUBST(CC)
 | 
						|
AC_SUBST(GXX)
 | 
						|
 | 
						|
# Set configuration options for make_binary_distribution
 | 
						|
case $SYSTEM_TYPE in
 | 
						|
  *netware*)
 | 
						|
    MAKE_BINARY_DISTRIBUTION_OPTIONS="$MAKE_BINARY_DISTRIBUTION_OPTIONS --no-strip"
 | 
						|
    ;;
 | 
						|
  *)
 | 
						|
    : # no change for other platforms yet
 | 
						|
    ;;
 | 
						|
esac
 | 
						|
AC_SUBST(MAKE_BINARY_DISTRIBUTION_OPTIONS)
 | 
						|
 | 
						|
# Output results
 | 
						|
if test -d "$srcdir/pstack" ; then
 | 
						|
  AC_CONFIG_FILES(pstack/Makefile pstack/aout/Makefile)
 | 
						|
fi
 | 
						|
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/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 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
 | 
						|
 server-tools/Makefile server-tools/instance-manager/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
 | 
						|
 netware/Makefile sql-bench/Makefile dnl
 | 
						|
 include/mysql_version.h plugin/Makefile win/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
 |