From 4b2cac56faaf48b5275fc39db9ec549ce26d7ba9 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 1 Dec 2004 17:02:22 -0800 Subject: [PATCH 1/6] First revision of changes to clean up acinclude and configure.in. Removed all AC_DEFUN out to separate m4 files, removed rule concerning building the website, and updated SANITY rule with the latest from 1.8. configure.in: Removed all defines, and added include files. --- build/ac-macros/alloca.m4 | 68 ++++ build/ac-macros/character_sets.m4 | 389 ++++++++++++++++++ build/ac-macros/check_cpu.m4 | 47 +++ build/ac-macros/compiler_flag.m4 | 40 ++ build/ac-macros/ha_archive.m4 | 29 ++ build/ac-macros/ha_berkeley.m4 | 267 ++++++++++++ build/ac-macros/ha_example.m4 | 30 ++ build/ac-macros/ha_innodb.m4 | 77 ++++ build/ac-macros/ha_isam.m4 | 15 + build/ac-macros/ha_ndbcluster.m4 | 144 +++++++ build/ac-macros/ha_tina.m4 | 29 ++ build/ac-macros/large_file.m4 | 140 +++++++ build/ac-macros/misc.m4 | 647 ++++++++++++++++++++++++++++++ build/ac-macros/mysqlfs.m4 | 51 +++ build/ac-macros/openssl.m4 | 136 +++++++ build/ac-macros/readline.m4 | 61 +++ build/ac-macros/sanity.m4 | 63 +++ build/ac-macros/zlib.m4 | 105 +++++ configure.in | 466 ++------------------- 19 files changed, 2368 insertions(+), 436 deletions(-) create mode 100644 build/ac-macros/alloca.m4 create mode 100644 build/ac-macros/character_sets.m4 create mode 100644 build/ac-macros/check_cpu.m4 create mode 100644 build/ac-macros/compiler_flag.m4 create mode 100644 build/ac-macros/ha_archive.m4 create mode 100644 build/ac-macros/ha_berkeley.m4 create mode 100644 build/ac-macros/ha_example.m4 create mode 100644 build/ac-macros/ha_innodb.m4 create mode 100644 build/ac-macros/ha_isam.m4 create mode 100644 build/ac-macros/ha_ndbcluster.m4 create mode 100644 build/ac-macros/ha_tina.m4 create mode 100644 build/ac-macros/large_file.m4 create mode 100644 build/ac-macros/misc.m4 create mode 100644 build/ac-macros/mysqlfs.m4 create mode 100644 build/ac-macros/openssl.m4 create mode 100644 build/ac-macros/readline.m4 create mode 100644 build/ac-macros/sanity.m4 create mode 100644 build/ac-macros/zlib.m4 diff --git a/build/ac-macros/alloca.m4 b/build/ac-macros/alloca.m4 new file mode 100644 index 00000000000..8c730dd671f --- /dev/null +++ b/build/ac-macros/alloca.m4 @@ -0,0 +1,68 @@ +AC_DEFUN([MYSQL_FUNC_ALLOCA], +[ +# Since we have heard that alloca fails on IRIX never define it on a +# SGI machine +if test ! "$host_vendor" = "sgi" +then + AC_REQUIRE_CPP()dnl Set CPP; we run AC_EGREP_CPP conditionally. + # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works + # for constant arguments. Useless! + AC_CACHE_CHECK([for working alloca.h], ac_cv_header_alloca_h, + [AC_TRY_LINK([#include ], [char *p = alloca(2 * sizeof(int));], + ac_cv_header_alloca_h=yes, ac_cv_header_alloca_h=no)]) + if test "$ac_cv_header_alloca_h" = "yes" + then + AC_DEFINE(HAVE_ALLOCA, 1) + fi + + AC_CACHE_CHECK([for alloca], ac_cv_func_alloca_works, + [AC_TRY_LINK([ + #ifdef __GNUC__ + # define alloca __builtin_alloca + #else + # if HAVE_ALLOCA_H + # include + # else + # ifdef _AIX + #pragma alloca + # else + # ifndef alloca /* predefined by HP cc +Olibcalls */ + char *alloca (); + # endif + # endif + # endif + #endif + ], [char *p = (char *) alloca(1);], + ac_cv_func_alloca_works=yes, ac_cv_func_alloca_works=no)]) + if test "$ac_cv_func_alloca_works" = "yes"; then + AC_DEFINE([HAVE_ALLOCA], [1], [If we have a working alloca() implementation]) + fi + + if test "$ac_cv_func_alloca_works" = "no"; then + # The SVR3 libPW and SVR4 libucb both contain incompatible functions + # that cause trouble. Some versions do not even contain alloca or + # contain a buggy version. If you still want to use their alloca, + # use ar to extract alloca.o from them instead of compiling alloca.c. + ALLOCA=alloca.o + AC_DEFINE(C_ALLOCA, 1) + + AC_CACHE_CHECK(whether alloca needs Cray hooks, ac_cv_os_cray, + [AC_EGREP_CPP(webecray, + [#if defined(CRAY) && ! defined(CRAY2) + webecray + #else + wenotbecray + #endif + ], ac_cv_os_cray=yes, ac_cv_os_cray=no)]) + if test "$ac_cv_os_cray" = "yes"; then + for ac_func in _getb67 GETB67 getb67; do + AC_CHECK_FUNC($ac_func, [AC_DEFINE_UNQUOTED(CRAY_STACKSEG_END, $ac_func) + break]) + done + fi + fi + AC_SUBST(ALLOCA)dnl +else + AC_MSG_RESULT("Skipped alloca tests") +fi +]) diff --git a/build/ac-macros/character_sets.m4 b/build/ac-macros/character_sets.m4 new file mode 100644 index 00000000000..77081639897 --- /dev/null +++ b/build/ac-macros/character_sets.m4 @@ -0,0 +1,389 @@ +dnl In order to add new charset, you must add charset name to +dnl this CHARSETS_AVAILABLE list and sql/share/charsets/Index.xml. +dnl If the character set uses strcoll or other special handling, +dnl you must also create strings/ctype-$charset_name.c + +AC_DIVERT_PUSH(0) + +define(CHARSETS_AVAILABLE0,binary) +define(CHARSETS_AVAILABLE1,armscii8 ascii big5 cp1250 cp1251 cp1256 cp1257) +define(CHARSETS_AVAILABLE2,cp850 cp852 cp866 dec8 euckr gb2312 gbk geostd8) +define(CHARSETS_AVAILABLE3,greek hebrew hp8 keybcs2 koi8r koi8u) +define(CHARSETS_AVAILABLE4,latin1 latin2 latin5 latin7 macce macroman) +define(CHARSETS_AVAILABLE5,sjis swe7 tis620 ucs2 ujis utf8) + +DEFAULT_CHARSET=latin1 +CHARSETS_AVAILABLE="CHARSETS_AVAILABLE0 CHARSETS_AVAILABLE1 CHARSETS_AVAILABLE2 CHARSETS_AVAILABLE3 CHARSETS_AVAILABLE4 CHARSETS_AVAILABLE5" +CHARSETS_COMPLEX="big5 cp1250 euckr gb2312 gbk latin1 latin2 sjis tis620 ucs2 ujis utf8" + +AC_DIVERT_POP + +AC_ARG_WITH(charset, + [ --with-charset=CHARSET + Default character set, use one of: + CHARSETS_AVAILABLE0 + CHARSETS_AVAILABLE1 + CHARSETS_AVAILABLE2 + CHARSETS_AVAILABLE3 + CHARSETS_AVAILABLE4 + CHARSETS_AVAILABLE5], + [default_charset="$withval"], + [default_charset="$DEFAULT_CHARSET"]) + +AC_ARG_WITH(collation, + [ --with-collation=COLLATION + Default collation], + [default_collation="$withval"], + [default_collation="default"]) + + +AC_ARG_WITH(extra-charsets, + [ --with-extra-charsets=CHARSET[,CHARSET,...] + Use charsets in addition to default (none, complex, + all, or a list selected from the above sets)], + [extra_charsets="$withval"], + [extra_charsets="none"]) + + +AC_MSG_CHECKING("character sets") + +CHARSETS="$default_charset latin1 utf8" + +if test "$extra_charsets" = no; then + CHARSETS="$CHARSETS" +elif test "$extra_charsets" = none; then + CHARSETS="$CHARSETS" +elif test "$extra_charsets" = complex; then + CHARSETS="$CHARSETS $CHARSETS_COMPLEX" + AC_DEFINE([DEFINE_ALL_CHARACTER_SETS],1,[all charsets are available]) +elif test "$extra_charsets" = all; then + CHARSETS="$CHARSETS $CHARSETS_AVAILABLE" + AC_DEFINE([DEFINE_ALL_CHARACTER_SETS],1,[all charsets are available]) +else + EXTRA_CHARSETS=`echo $extra_charsets | sed -e 's/,/ /g'` + CHARSETS="$CHARSETS $EXTRA_CHARSETS" +fi + +for cs in $CHARSETS +do + case $cs in + armscii8) + AC_DEFINE(HAVE_CHARSET_armscii8, 1, + [Define to enable charset armscii8]) + ;; + ascii) + AC_DEFINE(HAVE_CHARSET_ascii, 1, + [Define to enable ascii character set]) + ;; + big5) + AC_DEFINE(HAVE_CHARSET_big5, 1, [Define to enable charset big5]) + AC_DEFINE([USE_MB], [1], [Use multi-byte character routines]) + AC_DEFINE(USE_MB_IDENT, [1], [ ]) + ;; + binary) + ;; + cp1250) + AC_DEFINE(HAVE_CHARSET_cp1250, 1, [Define to enable cp1250]) + ;; + cp1251) + AC_DEFINE(HAVE_CHARSET_cp1251, 1, [Define to enable charset cp1251]) + ;; + cp1256) + AC_DEFINE(HAVE_CHARSET_cp1256, 1, [Define to enable charset cp1256]) + ;; + cp1257) + AC_DEFINE(HAVE_CHARSET_cp1257, 1, [Define to enable charset cp1257]) + ;; + cp850) + AC_DEFINE(HAVE_CHARSET_cp850, 1, [Define to enable charset cp850]) + ;; + cp852) + AC_DEFINE(HAVE_CHARSET_cp852, 1, [Define to enable charset cp852]) + ;; + cp866) + AC_DEFINE(HAVE_CHARSET_cp866, 1, [Define to enable charset cp866]) + ;; + dec8) + AC_DEFINE(HAVE_CHARSET_dec8, 1, [Define to enable charset dec8]) + ;; + euckr) + AC_DEFINE(HAVE_CHARSET_euckr, 1, [Define to enable charset euckr]) + AC_DEFINE([USE_MB], [1], [Use multi-byte character routines]) + AC_DEFINE(USE_MB_IDENT, 1) + ;; + gb2312) + AC_DEFINE(HAVE_CHARSET_gb2312, 1, [Define to enable charset gb2312]) + AC_DEFINE([USE_MB], 1, [Use multi-byte character routines]) + AC_DEFINE(USE_MB_IDENT, 1) + ;; + gbk) + AC_DEFINE(HAVE_CHARSET_gbk, 1, [Define to enable charset gbk]) + AC_DEFINE([USE_MB], [1], [Use multi-byte character routines]) + AC_DEFINE(USE_MB_IDENT, 1) + ;; + geostd8) + AC_DEFINE(HAVE_CHARSET_geostd8, 1, [Define to enable charset geostd8]) + ;; + greek) + AC_DEFINE(HAVE_CHARSET_greek, 1, [Define to enable charset greek]) + ;; + hebrew) + AC_DEFINE(HAVE_CHARSET_hebrew, 1, [Define to enable charset hebrew]) + ;; + hp8) + AC_DEFINE(HAVE_CHARSET_hp8, 1, [Define to enable charset hp8]) + ;; + keybcs2) + AC_DEFINE(HAVE_CHARSET_keybcs2, 1, [Define to enable charset keybcs2]) + ;; + koi8r) + AC_DEFINE(HAVE_CHARSET_koi8r, 1, [Define to enable charset koi8r]) + ;; + koi8u) + AC_DEFINE(HAVE_CHARSET_koi8u, 1, [Define to enable charset koi8u]) + ;; + latin1) + AC_DEFINE(HAVE_CHARSET_latin1, 1, [Define to enable charset latin1]) + ;; + latin2) + AC_DEFINE(HAVE_CHARSET_latin2, 1, [Define to enable charset latin2]) + ;; + latin5) + AC_DEFINE(HAVE_CHARSET_latin5, 1, [Define to enable charset latin5]) + ;; + latin7) + AC_DEFINE(HAVE_CHARSET_latin7, 1, [Define to enable charset latin7]) + ;; + macce) + AC_DEFINE(HAVE_CHARSET_macce, 1, [Define to enable charset macce]) + ;; + macroman) + AC_DEFINE(HAVE_CHARSET_macroman, 1, + [Define to enable charset macroman]) + ;; + sjis) + AC_DEFINE(HAVE_CHARSET_sjis, 1, [Define to enable charset sjis]) + AC_DEFINE([USE_MB], 1, [Use multi-byte character routines]) + AC_DEFINE(USE_MB_IDENT, 1) + ;; + swe7) + AC_DEFINE(HAVE_CHARSET_swe7, 1, [Define to enable charset swe7]) + ;; + tis620) + AC_DEFINE(HAVE_CHARSET_tis620, 1, [Define to enable charset tis620]) + ;; + ucs2) + AC_DEFINE(HAVE_CHARSET_ucs2, 1, [Define to enable charset ucs2]) + AC_DEFINE([USE_MB], [1], [Use multi-byte character routines]) + AC_DEFINE(USE_MB_IDENT, 1) + ;; + ujis) + AC_DEFINE(HAVE_CHARSET_ujis, 1, [Define to enable charset ujis]) + AC_DEFINE([USE_MB], [1], [Use multi-byte character routines]) + AC_DEFINE(USE_MB_IDENT, 1) + ;; + utf8) + AC_DEFINE(HAVE_CHARSET_utf8, 1, [Define to enable ut8]) + AC_DEFINE([USE_MB], 1, [Use multi-byte character routines]) + AC_DEFINE(USE_MB_IDENT, 1) + ;; + *) + AC_MSG_ERROR([Charset '$cs' not available. (Available are: $CHARSETS_AVAILABLE). + See the Installation chapter in the Reference Manual.]); + esac +done + + + default_charset_collations="" + +case $default_charset in + armscii8) + default_charset_default_collation="armscii8_general_ci" + default_charset_collations="armscii8_general_ci armscii8_bin" + ;; + ascii) + default_charset_default_collation="ascii_general_ci" + default_charset_collations="ascii_general_ci ascii_bin" + ;; + big5) + default_charset_default_collation="big5_chinese_ci" + default_charset_collations="big5_chinese_ci big5_bin" + ;; + binary) + default_charset_default_collation="binary" + default_charset_collations="binary" + ;; + cp1250) + default_charset_default_collation="cp1250_general_ci" + default_charset_collations="cp1250_general_ci cp1250_czech_cs cp1250_bin" + ;; + cp1251) + default_charset_default_collation="cp1251_general_ci" + default_charset_collations="cp1251_general_ci cp1251_general_cs cp1251_bin cp1251_bulgarian_ci cp1251_ukrainian_ci" + ;; + cp1256) + default_charset_default_collation="cp1256_general_ci" + default_charset_collations="cp1256_general_ci cp1256_bin" + ;; + cp1257) + default_charset_default_collation="cp1257_general_ci" + default_charset_collations="cp1257_general_ci cp1257_lithuanian_ci cp1257_bin" + ;; + cp850) + default_charset_default_collation="cp850_general_ci" + default_charset_collations="cp850_general_ci cp850_bin" + ;; + cp852) + default_charset_default_collation="cp852_general_ci" + default_charset_collations="cp852_general_ci cp852_bin" + ;; + cp866) + default_charset_default_collation="cp866_general_ci" + default_charset_collations="cp866_general_ci cp866_bin" + ;; + dec8) + default_charset_default_collation="dec8_swedish_ci" + default_charset_collations="dec8_swedish_ci dec8_bin" + ;; + euckr) + default_charset_default_collation="euckr_korean_ci" + default_charset_collations="euckr_korean_ci euckr_bin" + ;; + gb2312) + default_charset_default_collation="gb2312_chinese_ci" + default_charset_collations="gb2312_chinese_ci gb2312_bin" + ;; + gbk) + default_charset_default_collation="gbk_chinese_ci" + default_charset_collations="gbk_chinese_ci gbk_bin" + ;; + geostd8) + default_charset_default_collation="geostd8_general_ci" + default_charset_collations="geostd8_general_ci geostd8_bin" + ;; + greek) + default_charset_default_collation="greek_general_ci" + default_charset_collations="greek_general_ci greek_bin" + ;; + hebrew) + default_charset_default_collation="hebrew_general_ci" + default_charset_collations="hebrew_general_ci hebrew_bin" + ;; + hp8) + default_charset_default_collation="hp8_english_ci" + default_charset_collations="hp8_english_ci hp8_bin" + ;; + keybcs2) + default_charset_default_collation="keybcs2_general_ci" + default_charset_collations="keybcs2_general_ci keybcs2_bin" + ;; + koi8r) + default_charset_default_collation="koi8r_general_ci" + default_charset_collations="koi8r_general_ci koi8r_bin" + ;; + koi8u) + default_charset_default_collation="koi8u_general_ci" + default_charset_collations="koi8u_general_ci koi8u_bin" + ;; + latin1) + default_charset_default_collation="latin1_swedish_ci" + default_charset_collations="latin1_general_ci latin1_general_cs latin1_bin latin1_german1_ci latin1_german2_ci latin1_danish_ci latin1_swedish_ci" + ;; + latin2) + default_charset_default_collation="latin2_general_ci" + default_charset_collations="latin2_general_ci latin2_bin latin2_czech_cs latin2_hungarian_ci latin2_croatian_ci" + ;; + latin5) + default_charset_default_collation="latin5_turkish_ci" + default_charset_collations="latin5_turkish_ci latin5_bin" + ;; + latin7) + default_charset_default_collation="latin7_general_ci" + default_charset_collations="latin7_general_ci latin7_general_cs latin7_bin latin7_estonian_cs" + ;; + macce) + default_charset_default_collation="macce_general_ci" + default_charset_collations="macce_general_ci macce_bin" + ;; + macroman) + default_charset_default_collation="macroman_general_ci" + default_charset_collations="macroman_general_ci macroman_bin" + ;; + sjis) + default_charset_default_collation="sjis_japanese_ci" + default_charset_collations="sjis_japanese_ci sjis_bin" + ;; + swe7) + default_charset_default_collation="swe7_swedish_ci" + default_charset_collations="swe7_swedish_ci swe7_bin" + ;; + tis620) + default_charset_default_collation="tis620_thai_ci" + default_charset_collations="tis620_thai_ci tis620_bin" + ;; + ucs2) + default_charset_default_collation="ucs2_general_ci" + define(UCSC1, ucs2_general_ci ucs2_bin) + define(UCSC2, ucs2_czech_ci ucs2_danish_ci) + define(UCSC3, ucs2_estonian_ci ucs2_icelandic_ci) + define(UCSC4, ucs2_latvian_ci ucs2_lithuanian_ci) + define(UCSC5, ucs2_persian_ci ucs2_polish_ci ucs2_romanian_ci) + define(UCSC6, ucs2_slovak_ci ucs2_slovenian_ci) + define(UCSC7, ucs2_spanish2_ci ucs2_spanish_ci) + define(UCSC8, ucs2_swedish_ci ucs2_turkish_ci) + define(UCSC9, ucs2_unicode_ci) + UCSC="UCSC1 UCSC2 UCSC3 UCSC4 UCSC5 UCSC6 UCSC7 UCSC8 UCSC9" + default_charset_collations="$UCSC" + ;; + ujis) + default_charset_default_collation="ujis_japanese_ci" + default_charset_collations="ujis_japanese_ci ujis_bin" + ;; + utf8) + default_charset_default_collation="utf8_general_ci" + define(UTFC1, utf8_general_ci utf8_bin) + define(UTFC2, utf8_czech_ci utf8_danish_ci) + define(UTFC3, utf8_estonian_ci utf8_icelandic_ci) + define(UTFC4, utf8_latvian_ci utf8_lithuanian_ci) + define(UTFC5, utf8_persian_ci utf8_polish_ci utf8_romanian_ci) + define(UTFC6, utf8_slovak_ci utf8_slovenian_ci) + define(UTFC7, utf8_spanish2_ci utf8_spanish_ci) + define(UTFC8, utf8_swedish_ci utf8_turkish_ci) + define(UTFC9, utf8_unicode_ci) + UTFC="UTFC1 UTFC2 UTFC3 UTFC4 UTFC5 UTFC6 UTFC7 UTFC8 UTFC9" + default_charset_collations="$UTFC" + ;; + *) + AC_MSG_ERROR([Charset $cs not available. (Available are: $CHARSETS_AVAILABLE). + See the Installation chapter in the Reference Manual.]); +esac + +if test "$default_collation" = default; then + default_collation=$default_charset_default_collation +fi + +valid_default_collation=no +for cl in $default_charset_collations +do + if test x"$cl" = x"$default_collation" + then + valid_default_collation=yes + break + fi +done + +if test x$valid_default_collation = xyes +then + AC_MSG_RESULT([default: $default_charset, collation: $default_collation; compiled in: $CHARSETS]) +else + AC_MSG_ERROR([ + Collation $default_collation is not valid for character set $default_charset. + Valid collations are: $default_charset_collations. + See the Installation chapter in the Reference Manual. + ]); +fi + +AC_DEFINE_UNQUOTED([MYSQL_DEFAULT_CHARSET_NAME], ["$default_charset"], + [Define the default charset name]) +AC_DEFINE_UNQUOTED([MYSQL_DEFAULT_COLLATION_NAME], ["$default_collation"], + [Define the default charset name]) diff --git a/build/ac-macros/check_cpu.m4 b/build/ac-macros/check_cpu.m4 new file mode 100644 index 00000000000..3279c66f08d --- /dev/null +++ b/build/ac-macros/check_cpu.m4 @@ -0,0 +1,47 @@ +AC_DEFUN([MYSQL_CHECK_CPU], +[AC_CACHE_CHECK([if compiler supports optimizations for current cpu], +mysql_cv_cpu,[ + +ac_save_CFLAGS="$CFLAGS" +if test -r /proc/cpuinfo ; then + cpuinfo="cat /proc/cpuinfo" + cpu_family=`$cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1` + cpu_vendor=`$cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1` +fi +if test "$cpu_vendor" = "AuthenticAMD"; then + if test $cpu_family -ge 6; then + cpu_set="athlon pentiumpro k5 pentium i486 i386"; + elif test $cpu_family -eq 5; then + cpu_set="k5 pentium i486 i386"; + elif test $cpu_family -eq 4; then + cpu_set="i486 i386" + else + cpu_set="i386" + fi +elif test "$cpu_vendor" = "GenuineIntel"; then + if test $cpu_family -ge 6; then + cpu_set="pentiumpro pentium i486 i386"; + elif test $cpu_family -eq 5; then + cpu_set="pentium i486 i386"; + elif test $cpu_family -eq 4; then + cpu_set="i486 i386" + else + cpu_set="i386" + fi +fi + +for ac_arg in $cpu_set; +do + CFLAGS="$ac_save_CFLAGS -mcpu=$ac_arg -march=$ac_arg -DCPU=$ac_arg" + AC_TRY_COMPILE([],[int i],mysql_cv_cpu=$ac_arg; break;, mysql_cv_cpu="unknown") +done + +if test "$mysql_cv_cpu" = "unknown" +then + CFLAGS="$ac_save_CFLAGS" + AC_MSG_RESULT(none) +else + AC_MSG_RESULT($mysql_cv_cpu) +fi +]])) + diff --git a/build/ac-macros/compiler_flag.m4 b/build/ac-macros/compiler_flag.m4 new file mode 100644 index 00000000000..a236f61a198 --- /dev/null +++ b/build/ac-macros/compiler_flag.m4 @@ -0,0 +1,40 @@ +# option, cache_name, variable, +# code to execute if yes, code to exectute if fail +AC_DEFUN([AC_SYS_COMPILER_FLAG], +[ + AC_MSG_CHECKING($1) + OLD_CFLAGS="[$]CFLAGS" + AC_CACHE_VAL(mysql_cv_option_$2, + [ + CFLAGS="[$]OLD_CFLAGS $1" + AC_TRY_RUN([int main(){exit(0);}],mysql_cv_option_$2=yes,mysql_cv_option_$2=no,mysql_cv_option_$2=no) + ]) + + CFLAGS="[$]OLD_CFLAGS" + + if test x"[$]mysql_cv_option_$2" = "xyes" ; then + $3="[$]$3 $1" + AC_MSG_RESULT(yes) + $5 + else + AC_MSG_RESULT(no) + $4 + fi +]) + +# arch, option, cache_name, variable +AC_DEFUN([AC_SYS_CPU_COMPILER_FLAG], +[ + if test "`uname -m 2>/dev/null`" = "$1" ; then + AC_SYS_COMPILER_FLAG($2,$3,$4) + fi +]) + +# os, option, cache_name, variable +AC_DEFUN([AC_SYS_OS_COMPILER_FLAG], +[ + if test "x$mysql_cv_sys_os" = "x$1" ; then + AC_SYS_COMPILER_FLAG($2,$3,$4) + fi +]) + diff --git a/build/ac-macros/ha_archive.m4 b/build/ac-macros/ha_archive.m4 new file mode 100644 index 00000000000..2d2558ea600 --- /dev/null +++ b/build/ac-macros/ha_archive.m4 @@ -0,0 +1,29 @@ +dnl --------------------------------------------------------------------------- +dnl Macro: MYSQL_CHECK_ARCHIVEDB +dnl Sets HAVE_ARCHIVE_DB if --with-archive-storage-engine is used +dnl --------------------------------------------------------------------------- +AC_DEFUN([MYSQL_CHECK_ARCHIVEDB], [ + AC_ARG_WITH([archive-storage-engine], + [ + --with-archive-storage-engine + Enable the Archive Storage Engine], + [archivedb="$withval"], + [archivedb=no]) + AC_MSG_CHECKING([for archive storage engine]) + + case "$archivedb" in + yes ) + AC_DEFINE([HAVE_ARCHIVE_DB], [1], [Builds Archive Storage Engine]) + AC_MSG_RESULT([yes]) + [archivedb=yes] + ;; + * ) + AC_MSG_RESULT([no]) + [archivedb=no] + ;; + esac + +]) +dnl --------------------------------------------------------------------------- +dnl END OF MYSQL_CHECK_ARCHIVE SECTION +dnl --------------------------------------------------------------------------- diff --git a/build/ac-macros/ha_berkeley.m4 b/build/ac-macros/ha_berkeley.m4 new file mode 100644 index 00000000000..732c7730816 --- /dev/null +++ b/build/ac-macros/ha_berkeley.m4 @@ -0,0 +1,267 @@ +dnl --------------------------------------------------------------------------- +dnl Macro: MYSQL_CHECK_BDB +dnl Sets HAVE_BERKELEY_DB if inst library is found +dnl Makes sure db version is correct. +dnl Looks in $srcdir for Berkeley distribution if not told otherwise +dnl --------------------------------------------------------------------------- + +AC_DEFUN([MYSQL_CHECK_BDB], [ + AC_ARG_WITH([berkeley-db], + [ + --with-berkeley-db[=DIR] + Use BerkeleyDB located in DIR], + [bdb="$withval"], + [bdb=no]) + + AC_ARG_WITH([berkeley-db-includes], + [ + --with-berkeley-db-includes=DIR + Find Berkeley DB headers in DIR], + [bdb_includes="$withval"], + [bdb_includes=default]) + + AC_ARG_WITH([berkeley-db-libs], + [ + --with-berkeley-db-libs=DIR + Find Berkeley DB libraries in DIR], + [bdb_libs="$withval"], + [bdb_libs=default]) + + AC_MSG_CHECKING([for BerkeleyDB]) + +dnl SORT OUT THE SUPPLIED ARGUMENTS TO DETERMINE WHAT TO DO +dnl echo "DBG1: bdb='$bdb'; incl='$bdb_includes'; lib='$bdb_libs'" + have_berkeley_db=no + case "$bdb" in + no ) + mode=no + AC_MSG_RESULT([no]) + ;; + yes | default ) + case "$bdb_includes---$bdb_libs" in + default---default ) + mode=search-$bdb + AC_MSG_RESULT([searching...]) + ;; + default---* | *---default | yes---* | *---yes ) + AC_MSG_ERROR([if either 'includes' or 'libs' is specified, both must be specified]) + ;; + * ) + mode=supplied-two + AC_MSG_RESULT([supplied]) + ;; + esac + ;; + * ) + mode=supplied-one + AC_MSG_RESULT([supplied]) + ;; + esac + +dnl echo "DBG2: [$mode] bdb='$bdb'; incl='$bdb_includes'; lib='$bdb_libs'" + + case $mode in + no ) + bdb_includes= + bdb_libs= + bdb_libs_with_path= + ;; + supplied-two ) + MYSQL_CHECK_INSTALLED_BDB([$bdb_includes], [$bdb_libs]) + case $bdb_dir_ok in + installed ) mode=yes ;; + * ) AC_MSG_ERROR([didn't find valid BerkeleyDB: $bdb_dir_ok]) ;; + esac + ;; + supplied-one ) + MYSQL_CHECK_BDB_DIR([$bdb]) + case $bdb_dir_ok in + source ) mode=compile ;; + installed ) mode=yes ;; + * ) AC_MSG_ERROR([didn't find valid BerkeleyDB: $bdb_dir_ok]) ;; + esac + ;; + search-* ) + MYSQL_SEARCH_FOR_BDB + case $bdb_dir_ok in + source ) mode=compile ;; + installed ) mode=yes ;; + * ) + # not found + case $mode in + *-yes ) AC_MSG_ERROR([no suitable BerkeleyDB found]) ;; + * ) mode=no ;; + esac + bdb_includes= + bdb_libs= + bdb_libs_with_path= + ;; + esac + ;; + *) + AC_MSG_ERROR([impossible case condition '$mode': please report this to bugs@lists.mysql.com]) + ;; + esac + +dnl echo "DBG3: [$mode] bdb='$bdb'; incl='$bdb_includes'; lib='$bdb_libs'" + case $mode in + no ) + AC_MSG_RESULT([Not using Berkeley DB]) + ;; + yes ) + have_berkeley_db="yes" + AC_MSG_RESULT([Using Berkeley DB in '$bdb_includes']) + ;; + compile ) + have_berkeley_db="$bdb" + AC_MSG_RESULT([Compiling Berekeley DB in '$have_berkeley_db']) + ;; + * ) + AC_MSG_ERROR([impossible case condition '$mode': please report this to bugs@lists.mysql.com]) + ;; + esac + + AC_SUBST(bdb_includes) + AC_SUBST(bdb_libs) + AC_SUBST(bdb_libs_with_path) +]) + +AC_DEFUN([MYSQL_CHECK_INSTALLED_BDB], [ +dnl echo ["MYSQL_CHECK_INSTALLED_BDB ($1) ($2)"] + inc="$1" + lib="$2" + if test -f "$inc/db.h" + then + MYSQL_CHECK_BDB_VERSION([$inc/db.h], + [.*#define[ ]*], [[ ][ ]*]) + + if test X"$bdb_version_ok" = Xyes; then + save_LDFLAGS="$LDFLAGS" + LDFLAGS="-L$lib $LDFLAGS" + AC_CHECK_LIB(db,db_env_create, [ + bdb_dir_ok=installed + MYSQL_TOP_BUILDDIR([inc]) + MYSQL_TOP_BUILDDIR([lib]) + bdb_includes="-I$inc" + bdb_libs="-L$lib -ldb" + bdb_libs_with_path="$lib/libdb.a" + ]) + LDFLAGS="$save_LDFLAGS" + else + bdb_dir_ok="$bdb_version_ok" + fi + else + bdb_dir_ok="no db.h file in '$inc'" + fi +]) + +AC_DEFUN([MYSQL_CHECK_BDB_DIR], [ +dnl ([$bdb]) +dnl echo ["MYSQL_CHECK_BDB_DIR ($1)"] + dir="$1" + + MYSQL_CHECK_INSTALLED_BDB([$dir/include], [$dir/lib]) + + if test X"$bdb_dir_ok" != Xinstalled; then + # test to see if it's a source dir + rel="$dir/dist/RELEASE" + if test -f "$rel"; then + MYSQL_CHECK_BDB_VERSION([$rel], [], [=]) + if test X"$bdb_version_ok" = Xyes; then + bdb_dir_ok=source + bdb="$dir" + MYSQL_TOP_BUILDDIR([dir]) + bdb_includes="-I$dir/build_unix" + bdb_libs="-L$dir/build_unix -ldb" + bdb_libs_with_path="$dir/build_unix/libdb.a" + else + bdb_dir_ok="$bdb_version_ok" + fi + else + bdb_dir_ok="'$dir' doesn't look like a BDB directory ($bdb_dir_ok)" + fi + fi +]) + +AC_DEFUN([MYSQL_SEARCH_FOR_BDB], [ +dnl echo ["MYSQL_SEARCH_FOR_BDB"] + bdb_dir_ok="no BerkeleyDB found" + + for test_dir in $srcdir/bdb $srcdir/db-*.*.* /usr/local/BerkeleyDB*; do +dnl echo "-----------> Looking at ($test_dir; `cd $test_dir && pwd`)" + MYSQL_CHECK_BDB_DIR([$test_dir]) + if test X"$bdb_dir_ok" = Xsource || test X"$bdb_dir_ok" = Xinstalled; then +dnl echo "-----------> Found it ($bdb), ($srcdir)" +dnl This is needed so that 'make distcheck' works properly (VPATH build). +dnl VPATH build won't work if bdb is not under the source tree; but in +dnl that case, hopefully people will just make and install inside the +dnl tree, or install BDB first, and then use the installed version. + case "$bdb" in + "$srcdir/"* ) bdb=`echo "$bdb" | sed -e "s,^$srcdir/,,"` ;; + esac + break + fi + done +]) + +dnl MYSQL_CHECK_BDB_VERSION takes 3 arguments: +dnl 1) the file to look in +dnl 2) the search pattern before DB_VERSION_XXX +dnl 3) the search pattern between DB_VERSION_XXX and the number +dnl It assumes that the number is the last thing on the line +AC_DEFUN([MYSQL_CHECK_BDB_VERSION], [ + db_major=`sed -e '/^[$2]DB_VERSION_MAJOR[$3]/ !d' -e 's///' [$1]` + db_minor=`sed -e '/^[$2]DB_VERSION_MINOR[$3]/ !d' -e 's///' [$1]` + db_patch=`sed -e '/^[$2]DB_VERSION_PATCH[$3]/ !d' -e 's///' [$1]` + test -z "$db_major" && db_major=0 + test -z "$db_minor" && db_minor=0 + test -z "$db_patch" && db_patch=0 + + # This is ugly, but about as good as it can get +# mysql_bdb= +# if test $db_major -eq 3 && test $db_minor -eq 2 && test $db_patch -eq 3 +# then +# mysql_bdb=h +# elif test $db_major -eq 3 && test $db_minor -eq 2 && test $db_patch -eq 9 +# then +# want_bdb_version="3.2.9a" # hopefully this will stay up-to-date +# mysql_bdb=a +# fi + +dnl RAM: +want_bdb_version="4.1.24" +bdb_version_ok=yes + +# if test -n "$mysql_bdb" && \ +# grep "DB_VERSION_STRING.*:.*$mysql_bdb: " [$1] > /dev/null +# then +# bdb_version_ok=yes +# else +# bdb_version_ok="invalid version $db_major.$db_minor.$db_patch" +# bdb_version_ok="$bdb_version_ok (must be version 3.2.3h or $want_bdb_version)" +# fi +]) + +AC_DEFUN([MYSQL_TOP_BUILDDIR], [ + case "$[$1]" in + /* ) ;; # don't do anything with an absolute path + "$srcdir"/* ) + # If BDB is under the source directory, we need to look under the + # build directory for bdb/build_unix. + # NOTE: I'm being lazy, and assuming the user did not specify + # something like --with-berkeley-db=bdb (it would be missing "./"). + [$1]="\$(top_builddir)/"`echo "$[$1]" | sed -e "s,^$srcdir/,,"` + ;; + * ) + AC_MSG_ERROR([The BDB directory must be directly under the MySQL source directory, or be specified using the full path. ('$srcdir'; '$[$1]')]) + ;; + esac + if test X"$[$1]" != "/" + then + [$1]=`echo $[$1] | sed -e 's,/$,,'` + fi +]) + +dnl --------------------------------------------------------------------------- +dnl END OF MYSQL_CHECK_BDB SECTION +dnl --------------------------------------------------------------------------- diff --git a/build/ac-macros/ha_example.m4 b/build/ac-macros/ha_example.m4 new file mode 100644 index 00000000000..f8067931ce6 --- /dev/null +++ b/build/ac-macros/ha_example.m4 @@ -0,0 +1,30 @@ +dnl --------------------------------------------------------------------------- +dnl Macro: MYSQL_CHECK_EXAMPLEDB +dnl Sets HAVE_EXAMPLE_DB if --with-example-storage-engine is used +dnl --------------------------------------------------------------------------- +AC_DEFUN([MYSQL_CHECK_EXAMPLEDB], [ + AC_ARG_WITH([example-storage-engine], + [ + --with-example-storage-engine + Enable the Example Storage Engine], + [exampledb="$withval"], + [exampledb=no]) + AC_MSG_CHECKING([for example storage engine]) + + case "$exampledb" in + yes ) + AC_DEFINE([HAVE_EXAMPLE_DB], [1], [Builds Example DB]) + AC_MSG_RESULT([yes]) + [exampledb=yes] + ;; + * ) + AC_MSG_RESULT([no]) + [exampledb=no] + ;; + esac + +]) +dnl --------------------------------------------------------------------------- +dnl END OF MYSQL_CHECK_EXAMPLE SECTION +dnl --------------------------------------------------------------------------- + diff --git a/build/ac-macros/ha_innodb.m4 b/build/ac-macros/ha_innodb.m4 new file mode 100644 index 00000000000..17f0fab3e90 --- /dev/null +++ b/build/ac-macros/ha_innodb.m4 @@ -0,0 +1,77 @@ +dnl --------------------------------------------------------------------------- +dnl Macro: MYSQL_CHECK_INNODB +dnl Sets HAVE_INNOBASE_DB if --with-innodb is used +dnl --------------------------------------------------------------------------- + +AC_DEFUN([MYSQL_CHECK_INNODB], [ + AC_ARG_WITH([innodb], + [ + --without-innodb Do not include the InnoDB table handler], + [innodb="$withval"], + [innodb=yes]) + + AC_MSG_CHECKING([for Innodb]) + + have_innodb=no + innodb_includes= + innodb_libs= + case "$innodb" in + yes ) + AC_MSG_RESULT([Using Innodb]) + AC_DEFINE([HAVE_INNOBASE_DB], [1], [Using Innobase DB]) + have_innodb="yes" + innodb_includes="-I../innobase/include" + innodb_system_libs="" +dnl Some libs are listed several times, in order for gcc to sort out +dnl circular references. + innodb_libs="\ + \$(top_builddir)/innobase/usr/libusr.a\ + \$(top_builddir)/innobase/srv/libsrv.a\ + \$(top_builddir)/innobase/dict/libdict.a\ + \$(top_builddir)/innobase/que/libque.a\ + \$(top_builddir)/innobase/srv/libsrv.a\ + \$(top_builddir)/innobase/ibuf/libibuf.a\ + \$(top_builddir)/innobase/row/librow.a\ + \$(top_builddir)/innobase/pars/libpars.a\ + \$(top_builddir)/innobase/btr/libbtr.a\ + \$(top_builddir)/innobase/trx/libtrx.a\ + \$(top_builddir)/innobase/read/libread.a\ + \$(top_builddir)/innobase/usr/libusr.a\ + \$(top_builddir)/innobase/buf/libbuf.a\ + \$(top_builddir)/innobase/ibuf/libibuf.a\ + \$(top_builddir)/innobase/eval/libeval.a\ + \$(top_builddir)/innobase/log/liblog.a\ + \$(top_builddir)/innobase/fsp/libfsp.a\ + \$(top_builddir)/innobase/fut/libfut.a\ + \$(top_builddir)/innobase/fil/libfil.a\ + \$(top_builddir)/innobase/lock/liblock.a\ + \$(top_builddir)/innobase/mtr/libmtr.a\ + \$(top_builddir)/innobase/page/libpage.a\ + \$(top_builddir)/innobase/rem/librem.a\ + \$(top_builddir)/innobase/thr/libthr.a\ + \$(top_builddir)/innobase/sync/libsync.a\ + \$(top_builddir)/innobase/data/libdata.a\ + \$(top_builddir)/innobase/mach/libmach.a\ + \$(top_builddir)/innobase/ha/libha.a\ + \$(top_builddir)/innobase/dyn/libdyn.a\ + \$(top_builddir)/innobase/mem/libmem.a\ + \$(top_builddir)/innobase/sync/libsync.a\ + \$(top_builddir)/innobase/ut/libut.a\ + \$(top_builddir)/innobase/os/libos.a\ + \$(top_builddir)/innobase/ut/libut.a" + + AC_CHECK_LIB(rt, aio_read, [innodb_system_libs="-lrt"]) + ;; + * ) + AC_MSG_RESULT([Not using Innodb]) + ;; + esac + + AC_SUBST(innodb_includes) + AC_SUBST(innodb_libs) + AC_SUBST(innodb_system_libs) +]) + +dnl --------------------------------------------------------------------------- +dnl END OF MYSQL_CHECK_INNODB SECTION +dnl --------------------------------------------------------------------------- diff --git a/build/ac-macros/ha_isam.m4 b/build/ac-macros/ha_isam.m4 new file mode 100644 index 00000000000..5e354dfa624 --- /dev/null +++ b/build/ac-macros/ha_isam.m4 @@ -0,0 +1,15 @@ +AC_DEFUN([MYSQL_CHECK_ISAM], [ + AC_ARG_WITH([isam], [ + --with-isam Enable the ISAM table type], + [with_isam="$withval"], + [with_isam=no]) + + isam_libs= + if test X"$with_isam" = X"yes" + then + AC_DEFINE([HAVE_ISAM], [1], [Using old ISAM tables]) + isam_libs="\$(top_builddir)/isam/libnisam.a\ + \$(top_builddir)/merge/libmerge.a" + fi + AC_SUBST(isam_libs) +]) diff --git a/build/ac-macros/ha_ndbcluster.m4 b/build/ac-macros/ha_ndbcluster.m4 new file mode 100644 index 00000000000..aea6f37ae2a --- /dev/null +++ b/build/ac-macros/ha_ndbcluster.m4 @@ -0,0 +1,144 @@ +dnl --------------------------------------------------------------------------- +dnl Macro: MYSQL_CHECK_NDBCLUSTER +dnl Sets HAVE_NDBCLUSTER_DB if --with-ndbcluster is used +dnl --------------------------------------------------------------------------- + +AC_DEFUN([MYSQL_CHECK_NDB_OPTIONS], [ + AC_ARG_WITH([ndb-sci], + AC_HELP_STRING([--with-ndb-sci=DIR], + [Provide MySQL with a custom location of + sci library. Given DIR, sci library is + assumed to be in $DIR/lib and header files + in $DIR/include.]), + [mysql_sci_dir=${withval}], + [mysql_sci_dir=""]) + + case "$mysql_sci_dir" in + "no" ) + have_ndb_sci=no + AC_MSG_RESULT([-- not including sci transporter]) + ;; + * ) + if test -f "$mysql_sci_dir/lib/libsisci.a" -a \ + -f "$mysql_sci_dir/include/sisci_api.h"; then + NDB_SCI_INCLUDES="-I$mysql_sci_dir/include" + NDB_SCI_LIBS="-L$mysql_sci_dir/lib -lsisci" + AC_MSG_RESULT([-- including sci transporter]) + AC_DEFINE([NDB_SCI_TRANSPORTER], [1], + [Including Ndb Cluster DB sci transporter]) + AC_SUBST(NDB_SCI_INCLUDES) + AC_SUBST(NDB_SCI_LIBS) + have_ndb_sci="yes" + AC_MSG_RESULT([found sci transporter in $mysql_sci_dir/{include, lib}]) + else + AC_MSG_RESULT([could not find sci transporter in $mysql_sci_dir/{include, lib}]) + fi + ;; + esac + + AC_ARG_WITH([ndb-shm], + [ + --with-ndb-shm Include the NDB Cluster shared memory transporter], + [ndb_shm="$withval"], + [ndb_shm=no]) + AC_ARG_WITH([ndb-test], + [ + --with-ndb-test Include the NDB Cluster ndbapi test programs], + [ndb_test="$withval"], + [ndb_test=no]) + AC_ARG_WITH([ndb-docs], + [ + --with-ndb-docs Include the NDB Cluster ndbapi and mgmapi documentation], + [ndb_docs="$withval"], + [ndb_docs=no]) + AC_ARG_WITH([ndb-port], + [ + --with-ndb-port Port for NDB Cluster management server], + [ndb_port="$withval"], + [ndb_port="default"]) + AC_ARG_WITH([ndb-port-base], + [ + --with-ndb-port-base Base port for NDB Cluster transporters], + [ndb_port_base="$withval"], + [ndb_port_base="default"]) + + AC_MSG_CHECKING([for NDB Cluster options]) + AC_MSG_RESULT([]) + + have_ndb_shm=no + case "$ndb_shm" in + yes ) + AC_MSG_RESULT([-- including shared memory transporter]) + AC_DEFINE([NDB_SHM_TRANSPORTER], [1], + [Including Ndb Cluster DB shared memory transporter]) + have_ndb_shm="yes" + ;; + * ) + AC_MSG_RESULT([-- not including shared memory transporter]) + ;; + esac + + have_ndb_test=no + case "$ndb_test" in + yes ) + AC_MSG_RESULT([-- including ndbapi test programs]) + have_ndb_test="yes" + ;; + * ) + AC_MSG_RESULT([-- not including ndbapi test programs]) + ;; + esac + + have_ndb_docs=no + case "$ndb_docs" in + yes ) + AC_MSG_RESULT([-- including ndbapi and mgmapi documentation]) + have_ndb_docs="yes" + ;; + * ) + AC_MSG_RESULT([-- not including ndbapi and mgmapi documentation]) + ;; + esac + + AC_MSG_RESULT([done.]) +]) + +AC_DEFUN([MYSQL_CHECK_NDBCLUSTER], [ + AC_ARG_WITH([ndbcluster], + [ + --with-ndbcluster Include the NDB Cluster table handler], + [ndbcluster="$withval"], + [ndbcluster=no]) + + AC_MSG_CHECKING([for NDB Cluster]) + + have_ndbcluster=no + ndbcluster_includes= + ndbcluster_libs= + ndb_mgmclient_libs= + case "$ndbcluster" in + yes ) + AC_MSG_RESULT([Using NDB Cluster]) + AC_DEFINE([HAVE_NDBCLUSTER_DB], [1], [Using Ndb Cluster DB]) + have_ndbcluster="yes" + ndbcluster_includes="-I../ndb/include -I../ndb/include/ndbapi" + ndbcluster_libs="\$(top_builddir)/ndb/src/.libs/libndbclient.a" + ndbcluster_system_libs="" + ndb_mgmclient_libs="\$(top_builddir)/ndb/src/mgmclient/libndbmgmclient.la" + MYSQL_CHECK_NDB_OPTIONS + ;; + * ) + AC_MSG_RESULT([Not using NDB Cluster]) + ;; + esac + + AM_CONDITIONAL([HAVE_NDBCLUSTER_DB], [ test "$have_ndbcluster" = "yes" ]) + AC_SUBST(ndbcluster_includes) + AC_SUBST(ndbcluster_libs) + AC_SUBST(ndbcluster_system_libs) + AC_SUBST(ndb_mgmclient_libs) +]) + +dnl --------------------------------------------------------------------------- +dnl END OF MYSQL_CHECK_NDBCLUSTER SECTION +dnl --------------------------------------------------------------------------- diff --git a/build/ac-macros/ha_tina.m4 b/build/ac-macros/ha_tina.m4 new file mode 100644 index 00000000000..fe6e382ce20 --- /dev/null +++ b/build/ac-macros/ha_tina.m4 @@ -0,0 +1,29 @@ +dnl --------------------------------------------------------------------------- +dnl Macro: MYSQL_CHECK_CSVDB +dnl Sets HAVE_CSV_DB if --with-csv-storage-engine is used +dnl --------------------------------------------------------------------------- +AC_DEFUN([MYSQL_CHECK_CSVDB], [ + AC_ARG_WITH([csv-storage-engine], + [ + --with-csv-storage-engine + Enable the CSV Storage Engine], + [csvdb="$withval"], + [csvdb=no]) + AC_MSG_CHECKING([for csv storage engine]) + + case "$csvdb" in + yes ) + AC_DEFINE([HAVE_CSV_DB], [1], [Builds the CSV Storage Engine]) + AC_MSG_RESULT([yes]) + [csvdb=yes] + ;; + * ) + AC_MSG_RESULT([no]) + [csvdb=no] + ;; + esac + +]) +dnl --------------------------------------------------------------------------- +dnl END OF MYSQL_CHECK_CSV SECTION +dnl --------------------------------------------------------------------------- diff --git a/build/ac-macros/large_file.m4 b/build/ac-macros/large_file.m4 new file mode 100644 index 00000000000..00c2fdf614e --- /dev/null +++ b/build/ac-macros/large_file.m4 @@ -0,0 +1,140 @@ + +dnl By default, many hosts won't let programs access large files; +dnl one must use special compiler options to get large-file access to work. +dnl For more details about this brain damage please see: +dnl http://www.sas.com/standards/large.file/x_open.20Mar96.html + +dnl Written by Paul Eggert . + +dnl Internal subroutine of AC_SYS_LARGEFILE. +dnl AC_SYS_LARGEFILE_FLAGS(FLAGSNAME) +AC_DEFUN([AC_SYS_LARGEFILE_FLAGS], + [AC_CACHE_CHECK([for $1 value to request large file support], + ac_cv_sys_largefile_$1, + [if ($GETCONF LFS_$1) >conftest.1 2>conftest.2 && test ! -s conftest.2 + then + ac_cv_sys_largefile_$1=`cat conftest.1` + else + ac_cv_sys_largefile_$1=no + ifelse($1, CFLAGS, + [case "$host_os" in + # HP-UX 10.20 requires -D__STDC_EXT__ with gcc 2.95.1. +changequote(, )dnl + hpux10.[2-9][0-9]* | hpux1[1-9]* | hpux[2-9][0-9]*) +changequote([, ])dnl + if test "$GCC" = yes; then + case `$CC --version 2>/dev/null` in + 2.95.*) ac_cv_sys_largefile_CFLAGS=-D__STDC_EXT__ ;; + esac + fi + ;; + # IRIX 6.2 and later require cc -n32. +changequote(, )dnl + irix6.[2-9]* | irix6.1[0-9]* | irix[7-9].* | irix[1-9][0-9]*) +changequote([, ])dnl + if test "$GCC" != yes; then + ac_cv_sys_largefile_CFLAGS=-n32 + fi + esac + if test "$ac_cv_sys_largefile_CFLAGS" != no; then + ac_save_CC="$CC" + CC="$CC $ac_cv_sys_largefile_CFLAGS" + AC_TRY_LINK(, , , ac_cv_sys_largefile_CFLAGS=no) + CC="$ac_save_CC" + fi]) + fi + rm -f conftest*])]) + +dnl Internal subroutine of AC_SYS_LARGEFILE. +dnl AC_SYS_LARGEFILE_SPACE_APPEND(VAR, VAL) +AC_DEFUN([AC_SYS_LARGEFILE_SPACE_APPEND], + [case $2 in + no) ;; + ?*) + case "[$]$1" in + '') $1=$2 ;; + *) $1=[$]$1' '$2 ;; + esac ;; + esac]) + +dnl Internal subroutine of AC_SYS_LARGEFILE. +dnl AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, CACHE-VAR, COMMENT, CODE-TO-SET-DEFAULT) +AC_DEFUN([AC_SYS_LARGEFILE_MACRO_VALUE], + [AC_CACHE_CHECK([for $1], $2, + [$2=no +changequote(, )dnl + for ac_flag in $ac_cv_sys_largefile_CFLAGS no; do + case "$ac_flag" in + -D$1) + $2=1 ;; + -D$1=*) + $2=`expr " $ac_flag" : '[^=]*=\(.*\)'` ;; + esac + done + $4 +changequote([, ])dnl + ]) + if test "[$]$2" != no; then + AC_DEFINE_UNQUOTED([$1], [$]$2, [$3]) + fi]) + +AC_DEFUN([MYSQL_SYS_LARGEFILE], + [AC_REQUIRE([AC_CANONICAL_HOST]) + AC_ARG_ENABLE(largefile, + [ --disable-largefile Omit support for large files]) + if test "$enable_largefile" != no; then + AC_CHECK_TOOL(GETCONF, getconf) + AC_SYS_LARGEFILE_FLAGS(CFLAGS) + AC_SYS_LARGEFILE_FLAGS(LDFLAGS) + AC_SYS_LARGEFILE_FLAGS(LIBS) + + for ac_flag in $ac_cv_sys_largefile_CFLAGS no; do + case "$ac_flag" in + no) ;; + -D_FILE_OFFSET_BITS=*) ;; + -D_LARGEFILE_SOURCE | -D_LARGEFILE_SOURCE=*) ;; + -D_LARGE_FILES | -D_LARGE_FILES=*) ;; + -D?* | -I?*) + AC_SYS_LARGEFILE_SPACE_APPEND(CPPFLAGS, "$ac_flag") ;; + *) + AC_SYS_LARGEFILE_SPACE_APPEND(CFLAGS, "$ac_flag") ;; + esac + done + AC_SYS_LARGEFILE_SPACE_APPEND(LDFLAGS, "$ac_cv_sys_largefile_LDFLAGS") + AC_SYS_LARGEFILE_SPACE_APPEND(LIBS, "$ac_cv_sys_largefile_LIBS") + + AC_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, + ac_cv_sys_file_offset_bits, + [Number of bits in a file offset, on hosts where this is settable.], + [case "$host_os" in + # HP-UX 10.20 and later + hpux10.[2-9][0-9]* | hpux1[1-9]* | hpux[2-9][0-9]*) + ac_cv_sys_file_offset_bits=64 ;; + # We can't declare _FILE_OFFSET_BITS here as this will cause + # compile errors as AC_PROG_CC adds include files in confdefs.h + # We solve this (until autoconf is fixed) by instead declaring it + # as define instead + solaris2.[8,9]) + CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64" + CXXFLAGS="$CXXFLAGS -D_FILE_OFFSET_BITS=64" + ac_cv_sys_file_offset_bits=no ;; + esac]) + AC_SYS_LARGEFILE_MACRO_VALUE(_LARGEFILE_SOURCE, + ac_cv_sys_largefile_source, + [makes fseeko etc. visible, on some hosts.], + [case "$host_os" in + # HP-UX 10.20 and later + hpux10.[2-9][0-9]* | hpux1[1-9]* | hpux[2-9][0-9]*) + ac_cv_sys_largefile_source=1 ;; + esac]) + AC_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES, + ac_cv_sys_large_files, + [Large files support on AIX-style hosts.], + [case "$host_os" in + # AIX 4.2 and later + aix4.[2-9]* | aix4.1[0-9]* | aix[5-9].* | aix[1-9][0-9]*) + ac_cv_sys_large_files=1 ;; + esac]) + fi + ]) + diff --git a/build/ac-macros/misc.m4 b/build/ac-macros/misc.m4 new file mode 100644 index 00000000000..ec0c296a8b2 --- /dev/null +++ b/build/ac-macros/misc.m4 @@ -0,0 +1,647 @@ +# Local macros for automake & autoconf + +# A local version of AC_CHECK_SIZEOF that includes sys/types.h +dnl MYSQL_CHECK_SIZEOF(TYPE [, CROSS-SIZE]) +AC_DEFUN([MYSQL_CHECK_SIZEOF], +[changequote(<<, >>)dnl +dnl The name to #define. +define(<>, translit(sizeof_$1, [a-z *], [A-Z_P]))dnl +dnl The cache variable name. +define(<>, translit(ac_cv_sizeof_$1, [ *], [_p]))dnl +changequote([, ])dnl +AC_MSG_CHECKING(size of $1) +AC_CACHE_VAL(AC_CV_NAME, +[AC_TRY_RUN([#include +#include +#if STDC_HEADERS +#include +#include +#endif +main() +{ + FILE *f=fopen("conftestval", "w"); + if (!f) exit(1); + fprintf(f, "%d\n", sizeof($1)); + exit(0); +}], AC_CV_NAME=`cat conftestval`, AC_CV_NAME=0, ifelse([$2], , , AC_CV_NAME=$2))])dnl +AC_MSG_RESULT($AC_CV_NAME) +AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME, [ ]) +undefine([AC_TYPE_NAME])dnl +undefine([AC_CV_NAME])dnl +]) + +#---START: Used in for client configure +AC_DEFUN([MYSQL_TYPE_ACCEPT], +[ac_save_CXXFLAGS="$CXXFLAGS" +AC_CACHE_CHECK([base type of last arg to accept], mysql_cv_btype_last_arg_accept, +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +if test "$ac_cv_prog_gxx" = "yes" +then + CXXFLAGS=`echo $CXXFLAGS -Werror | sed 's/-fbranch-probabilities//'` +fi +mysql_cv_btype_last_arg_accept=none +[AC_TRY_COMPILE([#if defined(inline) +#undef inline +#endif +#include +#include +#include +], +[int a = accept(1, (struct sockaddr *) 0, (socklen_t *) 0); return (a != 0);], +mysql_cv_btype_last_arg_accept=socklen_t)] +if test "$mysql_cv_btype_last_arg_accept" = "none"; then +[AC_TRY_COMPILE([#if defined(inline) +#undef inline +#endif +#include +#include +#include +], +[int a = accept(1, (struct sockaddr *) 0, (size_t *) 0); return (a != 0);], +mysql_cv_btype_last_arg_accept=size_t)] +fi +if test "$mysql_cv_btype_last_arg_accept" = "none"; then +mysql_cv_btype_last_arg_accept=int +fi) +AC_LANG_RESTORE +AC_DEFINE_UNQUOTED([SOCKET_SIZE_TYPE], [$mysql_cv_btype_last_arg_accept], + [The base type of the last arg to accept]) +CXXFLAGS="$ac_save_CXXFLAGS" +]) +#---END: + +dnl Find type of qsort +AC_DEFUN([MYSQL_TYPE_QSORT], +[AC_CACHE_CHECK([return type of qsort], mysql_cv_type_qsort, +[AC_TRY_COMPILE([#include +#ifdef __cplusplus +extern "C" +#endif +void qsort(void *base, size_t nel, size_t width, + int (*compar) (const void *, const void *)); +], +[int i;], mysql_cv_type_qsort=void, mysql_cv_type_qsort=int)]) +AC_DEFINE_UNQUOTED([RETQSORTTYPE], [$mysql_cv_type_qsort], + [The return type of qsort (int or void).]) +if test "$mysql_cv_type_qsort" = "void" +then + AC_DEFINE_UNQUOTED([QSORT_TYPE_IS_VOID], [1], [qsort returns void]) +fi +]) + +AC_DEFUN([MYSQL_TIMESPEC_TS], +[AC_CACHE_CHECK([if struct timespec has a ts_sec member], mysql_cv_timespec_ts, +[AC_TRY_COMPILE([#include +#ifdef __cplusplus +extern "C" +#endif +], +[struct timespec abstime; + +abstime.ts_sec = time(NULL)+1; +abstime.ts_nsec = 0; +], mysql_cv_timespec_ts=yes, mysql_cv_timespec_ts=no)]) +if test "$mysql_cv_timespec_ts" = "yes" +then + AC_DEFINE([HAVE_TIMESPEC_TS_SEC], [1], + [Timespec has a ts_sec instead of tv_sev]) +fi +]) + +AC_DEFUN([MYSQL_TZNAME], +[AC_CACHE_CHECK([if we have tzname variable], mysql_cv_tzname, +[AC_TRY_COMPILE([#include +#ifdef __cplusplus +extern "C" +#endif +], +[ tzset(); + return tzname[0] != 0; +], mysql_cv_tzname=yes, mysql_cv_tzname=no)]) +if test "$mysql_cv_tzname" = "yes" +then + AC_DEFINE([HAVE_TZNAME], [1], [Have the tzname variable]) +fi +]) + + +#---START: Used in for client configure +AC_DEFUN([MYSQL_CHECK_ULONG], +[AC_MSG_CHECKING(for type ulong) +AC_CACHE_VAL(ac_cv_ulong, +[AC_TRY_RUN([#include +#include +main() +{ + ulong foo; + foo++; + exit(0); +}], ac_cv_ulong=yes, ac_cv_ulong=no, ac_cv_ulong=no)]) +AC_MSG_RESULT($ac_cv_ulong) +if test "$ac_cv_ulong" = "yes" +then + AC_DEFINE([HAVE_ULONG], [1], [system headers define ulong]) +fi +]) + +AC_DEFUN([MYSQL_CHECK_UCHAR], +[AC_MSG_CHECKING(for type uchar) +AC_CACHE_VAL(ac_cv_uchar, +[AC_TRY_RUN([#include +#include +main() +{ + uchar foo; + foo++; + exit(0); +}], ac_cv_uchar=yes, ac_cv_uchar=no, ac_cv_uchar=no)]) +AC_MSG_RESULT($ac_cv_uchar) +if test "$ac_cv_uchar" = "yes" +then + AC_DEFINE([HAVE_UCHAR], [1], [system headers define uchar]) +fi +]) + +AC_DEFUN([MYSQL_CHECK_UINT], +[AC_MSG_CHECKING(for type uint) +AC_CACHE_VAL(ac_cv_uint, +[AC_TRY_RUN([#include +#include +main() +{ + uint foo; + foo++; + exit(0); +}], ac_cv_uint=yes, ac_cv_uint=no, ac_cv_uint=no)]) +AC_MSG_RESULT($ac_cv_uint) +if test "$ac_cv_uint" = "yes" +then + AC_DEFINE([HAVE_UINT], [1], [system headers define uint]) +fi +]) + + +AC_DEFUN([MYSQL_CHECK_IN_ADDR_T], +[AC_MSG_CHECKING(for type in_addr_t) +AC_CACHE_VAL(ac_cv_in_addr_t, +[AC_TRY_RUN([#include +#include +#include +#include +#include + +int main(int argc, char **argv) +{ + in_addr_t foo; + exit(0); +}], ac_cv_in_addr_t=yes, ac_cv_in_addr_t=no, ac_cv_in_addr_t=no)]) +AC_MSG_RESULT($ac_cv_in_addr_t) +if test "$ac_cv_in_addr_t" = "yes" +then + AC_DEFINE([HAVE_IN_ADDR_T], [1], [system headers define in_addr_t]) +fi +]) + + +AC_DEFUN([MYSQL_PTHREAD_YIELD], +[AC_CACHE_CHECK([if pthread_yield takes zero arguments], ac_cv_pthread_yield_zero_arg, +[AC_TRY_LINK([#define _GNU_SOURCE +#include +#ifdef __cplusplus +extern "C" +#endif +], +[ + pthread_yield(); +], ac_cv_pthread_yield_zero_arg=yes, ac_cv_pthread_yield_zero_arg=yeso)]) +if test "$ac_cv_pthread_yield_zero_arg" = "yes" +then + AC_DEFINE([HAVE_PTHREAD_YIELD_ZERO_ARG], [1], + [pthread_yield that doesn't take any arguments]) +fi +] +[AC_CACHE_CHECK([if pthread_yield takes 1 argument], ac_cv_pthread_yield_one_arg, +[AC_TRY_LINK([#define _GNU_SOURCE +#include +#ifdef __cplusplus +extern "C" +#endif +], +[ + pthread_yield(0); +], ac_cv_pthread_yield_one_arg=yes, ac_cv_pthread_yield_one_arg=no)]) +if test "$ac_cv_pthread_yield_one_arg" = "yes" +then + AC_DEFINE([HAVE_PTHREAD_YIELD_ONE_ARG], [1], + [pthread_yield function with one argument]) +fi +] +) + + + +#---END: + +AC_DEFUN([MYSQL_CHECK_FP_EXCEPT], +[AC_MSG_CHECKING(for type fp_except) +AC_CACHE_VAL(ac_cv_fp_except, +[AC_TRY_RUN([#include +#include +#include +main() +{ + fp_except foo; + foo++; + exit(0); +}], ac_cv_fp_except=yes, ac_cv_fp_except=no, ac_cv_fp_except=no)]) +AC_MSG_RESULT($ac_cv_fp_except) +if test "$ac_cv_fp_except" = "yes" +then + AC_DEFINE([HAVE_FP_EXCEPT], [1], [fp_except from ieeefp.h]) +fi +]) + +# From fileutils-3.14/aclocal.m4 + +# @defmac AC_PROG_CC_STDC +# @maindex PROG_CC_STDC +# @ovindex CC +# If the C compiler in not in ANSI C mode by default, try to add an option +# to output variable @code{CC} to make it so. This macro tries various +# options that select ANSI C on some system or another. It considers the +# compiler to be in ANSI C mode if it defines @code{__STDC__} to 1 and +# handles function prototypes correctly. +# +# Patched by monty to only check if __STDC__ is defined. With the original +# check it's impossible to get things to work with the Sunpro compiler from +# Workshop 4.2 +# +# If you use this macro, you should check after calling it whether the C +# compiler has been set to accept ANSI C; if not, the shell variable +# @code{am_cv_prog_cc_stdc} is set to @samp{no}. If you wrote your source +# code in ANSI C, you can make an un-ANSIfied copy of it by using the +# program @code{ansi2knr}, which comes with Ghostscript. +# @end defmac + +AC_DEFUN([AM_PROG_CC_STDC], +[AC_REQUIRE([AC_PROG_CC]) +AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C) +AC_CACHE_VAL(am_cv_prog_cc_stdc, +[am_cv_prog_cc_stdc=no +ac_save_CC="$CC" +# Don't try gcc -ansi; that turns off useful extensions and +# breaks some systems' header files. +# AIX -qlanglvl=ansi +# Ultrix and OSF/1 -std1 +# HP-UX -Aa -D_HPUX_SOURCE +# SVR4 -Xc -D__EXTENSIONS__ +# removed "-Xc -D__EXTENSIONS__" beacause sun c++ does not like it. +for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" +do + CC="$ac_save_CC $ac_arg" + AC_TRY_COMPILE( +[#if !defined(__STDC__) +choke me +#endif +/* DYNIX/ptx V4.1.3 can't compile sys/stat.h with -Xc -D__EXTENSIONS__. */ +#ifdef _SEQUENT_ +# include +# include +#endif +], [ +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);};], +[am_cv_prog_cc_stdc="$ac_arg"; break]) +done +CC="$ac_save_CC" +]) +AC_MSG_RESULT($am_cv_prog_cc_stdc) +case "x$am_cv_prog_cc_stdc" in + x|xno) ;; + *) CC="$CC $am_cv_prog_cc_stdc" ;; +esac +]) + +# Orginal from bash-2.0 aclocal.m4, Changed to use termcap last by monty. + +AC_DEFUN([MYSQL_CHECK_LIB_TERMCAP], +[ +AC_CACHE_VAL(mysql_cv_termcap_lib, +[AC_CHECK_LIB(ncurses, tgetent, mysql_cv_termcap_lib=libncurses, + [AC_CHECK_LIB(curses, tgetent, mysql_cv_termcap_lib=libcurses, + [AC_CHECK_LIB(termcap, tgetent, mysql_cv_termcap_lib=libtermcap, + mysql_cv_termcap_lib=NOT_FOUND)])])]) +AC_MSG_CHECKING(for termcap functions library) +if test "$mysql_cv_termcap_lib" = "NOT_FOUND"; then +AC_MSG_ERROR([No curses/termcap library found]) +elif test "$mysql_cv_termcap_lib" = "libtermcap"; then +TERMCAP_LIB=-ltermcap +elif test "$mysql_cv_termcap_lib" = "libncurses"; then +TERMCAP_LIB=-lncurses +else +TERMCAP_LIB=-lcurses +fi +AC_MSG_RESULT($TERMCAP_LIB) +]) + +dnl Check type of signal routines (posix, 4.2bsd, 4.1bsd or v7) +AC_DEFUN([MYSQL_SIGNAL_CHECK], +[AC_REQUIRE([AC_TYPE_SIGNAL]) +AC_MSG_CHECKING(for type of signal functions) +AC_CACHE_VAL(mysql_cv_signal_vintage, +[ + AC_TRY_LINK([#include ],[ + sigset_t ss; + struct sigaction sa; + sigemptyset(&ss); sigsuspend(&ss); + sigaction(SIGINT, &sa, (struct sigaction *) 0); + sigprocmask(SIG_BLOCK, &ss, (sigset_t *) 0); + ], mysql_cv_signal_vintage=posix, + [ + AC_TRY_LINK([#include ], [ + int mask = sigmask(SIGINT); + sigsetmask(mask); sigblock(mask); sigpause(mask); + ], mysql_cv_signal_vintage=4.2bsd, + [ + AC_TRY_LINK([ + #include + RETSIGTYPE foo() { }], [ + int mask = sigmask(SIGINT); + sigset(SIGINT, foo); sigrelse(SIGINT); + sighold(SIGINT); sigpause(SIGINT); + ], mysql_cv_signal_vintage=svr3, mysql_cv_signal_vintage=v7 + )] + )] +) +]) +AC_MSG_RESULT($mysql_cv_signal_vintage) +if test "$mysql_cv_signal_vintage" = posix; then +AC_DEFINE(HAVE_POSIX_SIGNALS, [1], + [Signal handling is POSIX (sigset/sighold, etc)]) +elif test "$mysql_cv_signal_vintage" = "4.2bsd"; then +AC_DEFINE([HAVE_BSD_SIGNALS], [1], [BSD style signals]) +elif test "$mysql_cv_signal_vintage" = svr3; then +AC_DEFINE(HAVE_USG_SIGHOLD, [1], [sighold() is present and usable]) +fi +]) + +AC_DEFUN([MYSQL_CHECK_GETPW_FUNCS], +[AC_MSG_CHECKING(whether programs are able to redeclare getpw functions) +AC_CACHE_VAL(mysql_cv_can_redecl_getpw, +[AC_TRY_COMPILE([#include +#include +extern struct passwd *getpwent();], [struct passwd *z; z = getpwent();], + mysql_cv_can_redecl_getpw=yes,mysql_cv_can_redecl_getpw=no)]) +AC_MSG_RESULT($mysql_cv_can_redecl_getpw) +if test "$mysql_cv_can_redecl_getpw" = "no"; then +AC_DEFINE(HAVE_GETPW_DECLS, [1], [getpwent() declaration present]) +fi +]) + +AC_DEFUN([MYSQL_HAVE_TIOCGWINSZ], +[AC_MSG_CHECKING(for TIOCGWINSZ in sys/ioctl.h) +AC_CACHE_VAL(mysql_cv_tiocgwinsz_in_ioctl, +[AC_TRY_COMPILE([#include +#include ], [int x = TIOCGWINSZ;], + mysql_cv_tiocgwinsz_in_ioctl=yes,mysql_cv_tiocgwinsz_in_ioctl=no)]) +AC_MSG_RESULT($mysql_cv_tiocgwinsz_in_ioctl) +if test "$mysql_cv_tiocgwinsz_in_ioctl" = "yes"; then +AC_DEFINE([GWINSZ_IN_SYS_IOCTL], [1], + [READLINE: your system defines TIOCGWINSZ in sys/ioctl.h.]) +fi +]) + +AC_DEFUN([MYSQL_HAVE_FIONREAD], +[AC_MSG_CHECKING(for FIONREAD in sys/ioctl.h) +AC_CACHE_VAL(mysql_cv_fionread_in_ioctl, +[AC_TRY_COMPILE([#include +#include ], [int x = FIONREAD;], + mysql_cv_fionread_in_ioctl=yes,mysql_cv_fionread_in_ioctl=no)]) +AC_MSG_RESULT($mysql_cv_fionread_in_ioctl) +if test "$mysql_cv_fionread_in_ioctl" = "yes"; then +AC_DEFINE([FIONREAD_IN_SYS_IOCTL], [1], [Do we have FIONREAD]) +fi +]) + +AC_DEFUN([MYSQL_HAVE_TIOCSTAT], +[AC_MSG_CHECKING(for TIOCSTAT in sys/ioctl.h) +AC_CACHE_VAL(mysql_cv_tiocstat_in_ioctl, +[AC_TRY_COMPILE([#include +#include ], [int x = TIOCSTAT;], + mysql_cv_tiocstat_in_ioctl=yes,mysql_cv_tiocstat_in_ioctl=no)]) +AC_MSG_RESULT($mysql_cv_tiocstat_in_ioctl) +if test "$mysql_cv_tiocstat_in_ioctl" = "yes"; then +AC_DEFINE(TIOCSTAT_IN_SYS_IOCTL, [1], + [declaration of TIOCSTAT in sys/ioctl.h]) +fi +]) + +AC_DEFUN([MYSQL_STRUCT_DIRENT_D_INO], +[AC_REQUIRE([AC_HEADER_DIRENT]) +AC_MSG_CHECKING(if struct dirent has a d_ino member) +AC_CACHE_VAL(mysql_cv_dirent_has_dino, +[AC_TRY_COMPILE([ +#include +#include +#ifdef HAVE_UNISTD_H +# include +#endif /* HAVE_UNISTD_H */ +#if defined(HAVE_DIRENT_H) +# include +#else +# define dirent direct +# ifdef HAVE_SYS_NDIR_H +# include +# endif /* SYSNDIR */ +# ifdef HAVE_SYS_DIR_H +# include +# endif /* SYSDIR */ +# ifdef HAVE_NDIR_H +# include +# endif +#endif /* HAVE_DIRENT_H */ +],[ +struct dirent d; int z; z = d.d_ino; +], mysql_cv_dirent_has_dino=yes, mysql_cv_dirent_has_dino=no)]) +AC_MSG_RESULT($mysql_cv_dirent_has_dino) +if test "$mysql_cv_dirent_has_dino" = "yes"; then +AC_DEFINE(STRUCT_DIRENT_HAS_D_INO, [1], + [d_ino member present in struct dirent]) +fi +]) + +AC_DEFUN([MYSQL_STRUCT_DIRENT_D_NAMLEN], +[AC_REQUIRE([AC_HEADER_DIRENT]) +AC_MSG_CHECKING(if struct dirent has a d_namlen member) +AC_CACHE_VAL(mysql_cv_dirent_has_dnamlen, +[AC_TRY_COMPILE([ +#include +#include +#ifdef HAVE_UNISTD_H +# include +#endif /* HAVE_UNISTD_H */ +#if defined(HAVE_DIRENT_H) +# include +#else +# define dirent direct +# ifdef HAVE_SYS_NDIR_H +# include +# endif /* SYSNDIR */ +# ifdef HAVE_SYS_DIR_H +# include +# endif /* SYSDIR */ +# ifdef HAVE_NDIR_H +# include +# endif +#endif /* HAVE_DIRENT_H */ +],[ +struct dirent d; int z; z = (int)d.d_namlen; +], mysql_cv_dirent_has_dnamlen=yes, mysql_cv_dirent_has_dnamlen=no)]) +AC_MSG_RESULT($mysql_cv_dirent_has_dnamlen) +if test "$mysql_cv_dirent_has_dnamlen" = "yes"; then +AC_DEFINE(STRUCT_DIRENT_HAS_D_NAMLEN, [1], + [d_namlen member present in struct dirent]) +fi +]) + + +AC_DEFUN([MYSQL_TYPE_SIGHANDLER], +[AC_MSG_CHECKING([whether signal handlers are of type void]) +AC_CACHE_VAL(mysql_cv_void_sighandler, +[AC_TRY_COMPILE([#include +#include +#ifdef signal +#undef signal +#endif +#ifdef __cplusplus +extern "C" +#endif +void (*signal ()) ();], +[int i;], mysql_cv_void_sighandler=yes, mysql_cv_void_sighandler=no)])dnl +AC_MSG_RESULT($mysql_cv_void_sighandler) +if test "$mysql_cv_void_sighandler" = "yes"; then +AC_DEFINE(VOID_SIGHANDLER, [1], [sighandler type is void (*signal ()) ();]) +fi +]) + +AC_DEFUN([MYSQL_CXX_BOOL], +[ +AC_REQUIRE([AC_PROG_CXX]) +AC_MSG_CHECKING(if ${CXX} supports bool types) +AC_CACHE_VAL(mysql_cv_have_bool, +[ +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +AC_TRY_COMPILE(,[bool b = true;], +mysql_cv_have_bool=yes, +mysql_cv_have_bool=no) +AC_LANG_RESTORE +]) +AC_MSG_RESULT($mysql_cv_have_bool) +if test "$mysql_cv_have_bool" = yes; then +AC_DEFINE([HAVE_BOOL], [1], [bool is not defined by all C++ compilators]) +fi +])dnl + +AC_DEFUN([MYSQL_STACK_DIRECTION], + [AC_CACHE_CHECK(stack direction for C alloca, ac_cv_c_stack_direction, + [AC_TRY_RUN([#include + int find_stack_direction () + { + static char *addr = 0; + auto char dummy; + if (addr == 0) + { + addr = &dummy; + return find_stack_direction (); + } + else + return (&dummy > addr) ? 1 : -1; + } + int main () + { + exit (find_stack_direction() < 0); + }], ac_cv_c_stack_direction=1, ac_cv_c_stack_direction=-1, + ac_cv_c_stack_direction=0)]) + AC_DEFINE_UNQUOTED(STACK_DIRECTION, $ac_cv_c_stack_direction) +])dnl + +AC_DEFUN([MYSQL_CHECK_LONGLONG_TO_FLOAT], +[ +AC_MSG_CHECKING(if conversion of longlong to float works) +AC_CACHE_VAL(ac_cv_conv_longlong_to_float, +[AC_TRY_RUN([#include +typedef long long longlong; +main() +{ + longlong ll=1; + float f; + FILE *file=fopen("conftestval", "w"); + f = (float) ll; + fprintf(file,"%g\n",f); + fclose(file); + exit (0); +}], ac_cv_conv_longlong_to_float=`cat conftestval`, ac_cv_conv_longlong_to_float=0, ifelse([$2], , , ac_cv_conv_longlong_to_float=$2))])dnl +if test "$ac_cv_conv_longlong_to_float" = "1" -o "$ac_cv_conv_longlong_to_float" = "yes" +then + ac_cv_conv_longlong_to_float=yes +else + ac_cv_conv_longlong_to_float=no +fi +AC_MSG_RESULT($ac_cv_conv_longlong_to_float) +]) + +AC_DEFUN([MYSQL_CHECK_VIO], [ + AC_ARG_WITH([vio], + [ --with-vio Include the Virtual IO support], + [vio="$withval"], + [vio=no]) + + if test "$vio" = "yes" + then + vio_dir="vio" + vio_libs="../vio/libvio.la" + AC_DEFINE(HAVE_VIO, 1) + else + vio_dir="" + vio_libs="" + fi + AC_SUBST([vio_dir]) + AC_SUBST([vio_libs]) +]) + +# Local version of _AC_PROG_CXX_EXIT_DECLARATION that does not +# include #stdlib.h as default as this breaks things on Solaris +# (Conflicts with pthreads and big file handling) + +m4_define([_AC_PROG_CXX_EXIT_DECLARATION], +[for ac_declaration in \ + ''\ + 'extern "C" void std::exit (int) throw (); using std::exit;' \ + 'extern "C" void std::exit (int); using std::exit;' \ + 'extern "C" void exit (int) throw ();' \ + 'extern "C" void exit (int);' \ + 'void exit (int);' \ + '#include ' +do + _AC_COMPILE_IFELSE([AC_LANG_PROGRAM([@%:@include +$ac_declaration], + [exit (42);])], + [], + [continue]) + _AC_COMPILE_IFELSE([AC_LANG_PROGRAM([$ac_declaration], + [exit (42);])], + [break]) +done +rm -f conftest* +if test -n "$ac_declaration"; then + echo '#ifdef __cplusplus' >>confdefs.h + echo $ac_declaration >>confdefs.h + echo '#endif' >>confdefs.h +fi +])# _AC_PROG_CXX_EXIT_DECLARATION + +dnl --------------------------------------------------------------------------- + diff --git a/build/ac-macros/mysqlfs.m4 b/build/ac-macros/mysqlfs.m4 new file mode 100644 index 00000000000..eba341937e3 --- /dev/null +++ b/build/ac-macros/mysqlfs.m4 @@ -0,0 +1,51 @@ + +AC_DEFUN([MYSQL_CHECK_MYSQLFS], [ + AC_ARG_WITH([mysqlfs], + [ + --with-mysqlfs Include the corba-based MySQL file system], + [mysqlfs="$withval"], + [mysqlfs=no]) + +dnl Call MYSQL_CHECK_ORBIT even if mysqlfs == no, so that @orbit_*@ +dnl get substituted. + MYSQL_CHECK_ORBIT + + AC_MSG_CHECKING(if we should build MySQLFS) + fs_dirs="" + if test "$mysqlfs" = "yes" + then + if test -n "$orbit_exec_prefix" + then + fs_dirs=fs + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT(disabled because ORBIT, the CORBA ORB, was not found) + fi + else + AC_MSG_RESULT([no]) + fi + AC_SUBST([fs_dirs]) +]) + +AC_DEFUN([MYSQL_CHECK_ORBIT], [ +AC_MSG_CHECKING(for ORBit) +orbit_config_path=`which orbit-config` +if test -n "$orbit_config_path" -a $? = 0 +then + orbit_exec_prefix=`orbit-config --exec-prefix` + orbit_includes=`orbit-config --cflags server` + orbit_libs=`orbit-config --libs server` + orbit_idl="$orbit_exec_prefix/bin/orbit-idl" + AC_MSG_RESULT(found!) + AC_DEFINE([HAVE_ORBIT], [1], [ORBIT]) +else + orbit_exec_prefix= + orbit_includes= + orbit_libs= + orbit_idl= + AC_MSG_RESULT(not found) +fi +AC_SUBST(orbit_includes) +AC_SUBST(orbit_libs) +AC_SUBST(orbit_idl) +]) diff --git a/build/ac-macros/openssl.m4 b/build/ac-macros/openssl.m4 new file mode 100644 index 00000000000..9da0e38f2ba --- /dev/null +++ b/build/ac-macros/openssl.m4 @@ -0,0 +1,136 @@ +AC_DEFUN([MYSQL_FIND_OPENSSL], [ + incs="$1" + libs="$2" + case "$incs---$libs" in + ---) + for d in /usr/ssl/include /usr/local/ssl/include /usr/include \ +/usr/include/ssl /opt/ssl/include /opt/openssl/include \ +/usr/local/ssl/include /usr/local/include /usr/freeware/include ; do + if test -f $d/openssl/ssl.h ; then + OPENSSL_INCLUDE=-I$d + fi + done + + for d in /usr/ssl/lib /usr/local/ssl/lib /usr/lib/openssl \ +/usr/lib /usr/lib64 /opt/ssl/lib /opt/openssl/lib \ +/usr/freeware/lib32 /usr/local/lib/ ; do + if test -f $d/libssl.a || test -f $d/libssl.so || test -f $d/libssl.dylib ; then + OPENSSL_LIB=$d + fi + done + ;; + ---* | *---) + AC_MSG_ERROR([if either 'includes' or 'libs' is specified, both must be specified]) + ;; + * ) + if test -f $incs/openssl/ssl.h ; then + OPENSSL_INCLUDE=-I$incs + fi + if test -f $libs/libssl.a || test -f $libs/libssl.so || test -f $libs/libssl.dylib ; then + OPENSSL_LIB=$libs + fi + ;; + esac + + # On RedHat 9 we need kerberos to compile openssl + for d in /usr/kerberos/include + do + if test -f $d/krb5.h ; then + OPENSSL_KERBEROS_INCLUDE="$d" + fi + done + + + if test -z "$OPENSSL_LIB" -o -z "$OPENSSL_INCLUDE" ; then + echo "Could not find an installation of OpenSSL" + if test -n "$OPENSSL_LIB" ; then + if test "$IS_LINUX" = "true"; then + echo "Looks like you've forgotten to install OpenSSL development RPM" + fi + fi + exit 1 + fi + +]) + +AC_DEFUN([MYSQL_CHECK_OPENSSL], [ +AC_MSG_CHECKING(for OpenSSL) + AC_ARG_WITH([openssl], + [ --with-openssl[=DIR] Include the OpenSSL support], + [openssl="$withval"], + [openssl=no]) + + AC_ARG_WITH([openssl-includes], + [ + --with-openssl-includes=DIR + Find OpenSSL headers in DIR], + [openssl_includes="$withval"], + [openssl_includes=""]) + + AC_ARG_WITH([openssl-libs], + [ + --with-openssl-libs=DIR + Find OpenSSL libraries in DIR], + [openssl_libs="$withval"], + [openssl_libs=""]) + + if test "$openssl" != "no" + then + if test "$openssl" != "yes" + then + if test -z "$openssl_includes" + then + openssl_includes="$openssl/include" + fi + if test -z "$openssl_libs" + then + openssl_libs="$openssl/lib" + fi + fi + MYSQL_FIND_OPENSSL([$openssl_includes], [$openssl_libs]) + #force VIO use + vio_dir="vio" + vio_libs="../vio/libvio.la" + AC_DEFINE([HAVE_VIO], [1], [Virtual IO]) + AC_MSG_RESULT(yes) + openssl_libs="-L$OPENSSL_LIB -lssl -lcrypto" + # Don't set openssl_includes to /usr/include as this gives us a lot of + # compiler warnings when using gcc 3.x + openssl_includes="" + if test "$OPENSSL_INCLUDE" != "-I/usr/include" + then + openssl_includes="$OPENSSL_INCLUDE" + fi + if test "$OPENSSL_KERBEROS_INCLUDE" + then + openssl_includes="$openssl_includes -I$OPENSSL_KERBEROS_INCLUDE" + fi + AC_DEFINE([HAVE_OPENSSL], [1], [OpenSSL]) + + # openssl-devel-0.9.6 requires dlopen() and we can't link staticly + # on many platforms (We should actually test this here, but it's quite + # hard) to do as we are doing libtool for linking. + using_static="" + case "$CLIENT_EXTRA_LDFLAGS $MYSQLD_EXTRA_LDFLAGS" in + *-all-static*) using_static="yes" ;; + esac + if test "$using_static" = "yes" + then + echo "You can't use the --all-static link option when using openssl." + exit 1 + fi + NON_THREADED_CLIENT_LIBS="$NON_THREADED_CLIENT_LIBS $openssl_libs" + else + AC_MSG_RESULT(no) + if test ! -z "$openssl_includes" + then + AC_MSG_ERROR(Can't have --with-openssl-includes without --with-openssl); + fi + if test ! -z "$openssl_libs" + then + AC_MSG_ERROR(Can't have --with-openssl-libs without --with-openssl); + fi + fi + AC_SUBST(openssl_libs) + AC_SUBST(openssl_includes) +]) diff --git a/build/ac-macros/readline.m4 b/build/ac-macros/readline.m4 new file mode 100644 index 00000000000..79c6479d15d --- /dev/null +++ b/build/ac-macros/readline.m4 @@ -0,0 +1,61 @@ +AC_DEFUN([MYSQL_CHECK_READLINE_DECLARES_HIST_ENTRY], [ + AC_CACHE_CHECK([HIST_ENTRY is declared in readline/readline.h], mysql_cv_hist_entry_declared, + AC_TRY_COMPILE( + [ + #include "stdio.h" + #include "readline/readline.h" + ], + [ + HIST_ENTRY entry; + ], + [ + mysql_cv_hist_entry_declared=yes + AC_DEFINE_UNQUOTED(HAVE_HIST_ENTRY, [1], + [HIST_ENTRY is defined in the outer libeditreadline]) + ], + [mysql_cv_libedit_interface=no] + ) + ) +]) + +AC_DEFUN([MYSQL_CHECK_LIBEDIT_INTERFACE], [ + AC_CACHE_CHECK([libedit variant of rl_completion_entry_function], mysql_cv_libedit_interface, + AC_TRY_COMPILE( + [ + #include "stdio.h" + #include "readline/readline.h" + ], + [ + char res= *(*rl_completion_entry_function)(0,0); + completion_matches(0,0); + ], + [ + mysql_cv_libedit_interface=yes + AC_DEFINE_UNQUOTED([USE_LIBEDIT_INTERFACE], [1], + [used libedit interface (can we dereference result of rl_completion_entry_function)]) + ], + [mysql_cv_libedit_interface=no] + ) + ) +]) + +AC_DEFUN([MYSQL_CHECK_NEW_RL_INTERFACE], [ + AC_CACHE_CHECK([defined rl_compentry_func_t and rl_completion_func_t], mysql_cv_new_rl_interface, + AC_TRY_COMPILE( + [ + #include "stdio.h" + #include "readline/readline.h" + ], + [ + rl_completion_func_t *func1= (rl_completion_func_t*)0; + rl_compentry_func_t *func2= (rl_compentry_func_t*)0; + ], + [ + mysql_cv_new_rl_interface=yes + AC_DEFINE_UNQUOTED([USE_NEW_READLINE_INTERFACE], [1], + [used new readline interface (are rl_completion_func_t and rl_compentry_func_t defined)]) + ], + [mysql_cv_new_rl_interface=no] + ) + ) +]) diff --git a/build/ac-macros/sanity.m4 b/build/ac-macros/sanity.m4 new file mode 100644 index 00000000000..3904bdd983f --- /dev/null +++ b/build/ac-macros/sanity.m4 @@ -0,0 +1,63 @@ +# +# Check to make sure that the build environment is sane. +# + +# Copyright (C) 1996, 1997, 2000, 2001, 2003 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# serial 3 + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftest.file +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftest.file` + fi + rm -f conftest.file + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT(yes)]) diff --git a/build/ac-macros/zlib.m4 b/build/ac-macros/zlib.m4 new file mode 100644 index 00000000000..6c92d561e5a --- /dev/null +++ b/build/ac-macros/zlib.m4 @@ -0,0 +1,105 @@ +dnl Define zlib paths to point at bundled zlib + +AC_DEFUN([MYSQL_USE_BUNDLED_ZLIB], [ +ZLIB_INCLUDES="-I\$(top_srcdir)/zlib" +ZLIB_LIBS="\$(top_builddir)/zlib/libz.la" +zlib_dir="zlib" +AC_SUBST([zlib_dir]) +mysql_cv_compress="yes" +]) + +dnl Auxiliary macro to check for zlib at given path + +AC_DEFUN([MYSQL_CHECK_ZLIB_DIR], [ +save_INCLUDES="$INCLUDES" +save_LIBS="$LIBS" +INCLUDES="$INCLUDES $ZLIB_INCLUDES" +LIBS="$LIBS $ZLIB_LIBS" +AC_CACHE_VAL([mysql_cv_compress], + [AC_TRY_LINK([#include ], + [return compress(0, (unsigned long*) 0, "", 0);], + [mysql_cv_compress="yes" + AC_MSG_RESULT([ok])], + [mysql_cv_compress="no"]) + ]) +INCLUDES="$save_INCLUDES" +LIBS="$save_LIBS" +]) + +dnl MYSQL_CHECK_ZLIB_WITH_COMPRESS +dnl ------------------------------------------------------------------------ +dnl @synopsis MYSQL_CHECK_ZLIB_WITH_COMPRESS +dnl +dnl Provides the following configure options: +dnl --with-zlib-dir=DIR +dnl Possible DIR values are: +dnl - "no" - the macro will disable use of compression functions +dnl - "bundled" - means use zlib bundled along with MySQL sources +dnl - empty, or not specified - the macro will try default system +dnl library (if present), and in case of error will fall back to +dnl bundled zlib +dnl - zlib location prefix - given location prefix, the macro expects +dnl to find the library headers in $prefix/include, and binaries in +dnl $prefix/lib. If zlib headers or binaries weren't found at $prefix, the +dnl macro bails out with error. +dnl +dnl If the library was found, this function #defines HAVE_COMPRESS +dnl and configure variables ZLIB_INCLUDES (i.e. -I/path/to/zlib/include) and +dnl ZLIB_LIBS (i. e. -L/path/to/zlib/lib -lz). + +AC_DEFUN([MYSQL_CHECK_ZLIB_WITH_COMPRESS], [ +AC_MSG_CHECKING([for zlib compression library]) +case $SYSTEM_TYPE in +*netware* | *modesto*) + AC_MSG_RESULT(ok) + AC_DEFINE([HAVE_COMPRESS], [1], [Define to enable compression support]) + ;; + *) + AC_ARG_WITH([zlib-dir], + AC_HELP_STRING([--with-zlib-dir=DIR], + [Provide MySQL with a custom location of + compression library. Given DIR, zlib binary is + assumed to be in $DIR/lib and header files + in $DIR/include.]), + [mysql_zlib_dir=${withval}], + [mysql_zlib_dir=""]) + case "$mysql_zlib_dir" in + "no") + mysql_cv_compress="no" + AC_MSG_RESULT([disabled]) + ;; + "bundled") + MYSQL_USE_BUNDLED_ZLIB + AC_MSG_RESULT([using bundled zlib]) + ;; + "") + ZLIB_INCLUDES="" + ZLIB_LIBS="-lz" + MYSQL_CHECK_ZLIB_DIR + if test "$mysql_cv_compress" = "no"; then + MYSQL_USE_BUNDLED_ZLIB + AC_MSG_RESULT([system-wide zlib not found, using one bundled with MySQL]) + fi + ;; + *) + if test -f "$mysql_zlib_dir/lib/libz.a" -a \ + -f "$mysql_zlib_dir/include/zlib.h"; then + ZLIB_INCLUDES="-I$mysql_zlib_dir/include" + ZLIB_LIBS="-L$mysql_zlib_dir/lib -lz" + MYSQL_CHECK_ZLIB_DIR + fi + if test "x$mysql_cv_compress" != "xyes"; then + AC_MSG_ERROR([headers or binaries were not found in $mysql_zlib_dir/{include,lib}]) + fi + ;; + esac + if test "$mysql_cv_compress" = "yes"; then + AC_SUBST([ZLIB_LIBS]) + AC_SUBST([ZLIB_INCLUDES]) + AC_DEFINE([HAVE_COMPRESS], [1], [Define to enable compression support]) + fi + ;; +esac +]) + +dnl ------------------------------------------------------------------------ diff --git a/configure.in b/configure.in index d3385fc425b..ba199397681 100644 --- a/configure.in +++ b/configure.in @@ -1,10 +1,18 @@ dnl -*- ksh -*- dnl Process this file with autoconf to produce a configure script. +AC_PREREQ(2.12)dnl Minimum Autoconf version required. + AC_INIT(sql/mysqld.cc) AC_CANONICAL_SYSTEM # The Docs Makefile.am parses this line! # remember to also change ndb version below and update version.c in ndb +# For some reason we have our own AM_SANITY_CHECK which is just a copy +# of the default one included in 1.8 (it was from some version before +# 1.4, but I updated it to fix a FreeBSD problem). It must be included +# before we call AM_INIT_AUTOMAKE. +# -Brian +sinclude(build/ac-macros/sanity.m4) AM_INIT_AUTOMAKE(mysql, 5.0.2-alpha) AM_CONFIG_HEADER(config.h) @@ -29,12 +37,32 @@ MYSQL_VERSION_ID=`echo $MYSQL_NO_DASH_VERSION. | sed -e 's/\./ /g; s/ \([[0-9]] MYSQL_TCP_PORT_DEFAULT=3306 MYSQL_UNIX_ADDR_DEFAULT="/tmp/mysql.sock" +dnl Include m4 +sinclude(build/ac-macros/alloca.m4) +sinclude(build/ac-macros/check_cpu.m4) +sinclude(build/ac-macros/character_sets.m4) +sinclude(build/ac-macros/compiler_flag.m4) +sinclude(build/ac-macros/ha_archive.m4) +sinclude(build/ac-macros/ha_berkeley.m4) +sinclude(build/ac-macros/ha_example.m4) +sinclude(build/ac-macros/ha_innodb.m4) +sinclude(build/ac-macros/ha_isam.m4) +sinclude(build/ac-macros/ha_ndbcluster.m4) +sinclude(build/ac-macros/ha_tina.m4) +sinclude(build/ac-macros/large_file.m4) +sinclude(build/ac-macros/misc.m4) +sinclude(build/ac-macros/mysqlfs.m4) +sinclude(build/ac-macros/openssl.m4) +sinclude(build/ac-macros/readline.m4) +sinclude(build/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" + # Generate make rules for all error messages AVAILABLE_LANGUAGES_ERRORS= AVAILABLE_LANGUAGES_ERRORS_RULES=$srcdir/ac_available_languages_fragment @@ -118,14 +146,12 @@ AC_SUBST(SAVE_LDFLAGS) AC_SUBST(SAVE_CXXLDFLAGS) AC_SUBST(CXXLDFLAGS) -AC_PREREQ(2.12)dnl Minimum Autoconf version required. #AC_ARG_PROGRAM # Automaticly invoked by AM_INIT_AUTOMAKE + AM_SANITY_CHECK # This is needed is SUBDIRS is set AC_PROG_MAKE_SET -# This generates rules for webpage generation for the MySQL homepage. -AM_CONDITIONAL(LOCAL, test -d ../web/SitePages) # This is need before AC_PROG_CC # @@ -272,48 +298,6 @@ AC_TRY_RUN([ ;; esac - -# option, cache_name, variable, -# code to execute if yes, code to exectute if fail -AC_DEFUN([AC_SYS_COMPILER_FLAG], -[ - AC_MSG_CHECKING($1) - OLD_CFLAGS="[$]CFLAGS" - AC_CACHE_VAL(mysql_cv_option_$2, - [ - CFLAGS="[$]OLD_CFLAGS $1" - AC_TRY_RUN([int main(){exit(0);}],mysql_cv_option_$2=yes,mysql_cv_option_$2=no,mysql_cv_option_$2=no) - ]) - - CFLAGS="[$]OLD_CFLAGS" - - if test x"[$]mysql_cv_option_$2" = "xyes" ; then - $3="[$]$3 $1" - AC_MSG_RESULT(yes) - $5 - else - AC_MSG_RESULT(no) - $4 - fi -]) - -# arch, option, cache_name, variable -AC_DEFUN([AC_SYS_CPU_COMPILER_FLAG], -[ - if test "`uname -m 2>/dev/null`" = "$1" ; then - AC_SYS_COMPILER_FLAG($2,$3,$4) - fi -]) - -# os, option, cache_name, variable -AC_DEFUN([AC_SYS_OS_COMPILER_FLAG], -[ - if test "x$mysql_cv_sys_os" = "x$1" ; then - AC_SYS_COMPILER_FLAG($2,$3,$4) - fi -]) - -# We need some special hacks when running slowaris AC_PATH_PROG(uname_prog, uname, no) # We should go through this and put all the explictly system dependent @@ -2437,397 +2421,6 @@ AC_SUBST(readline_basedir) AC_SUBST(readline_link) AC_SUBST(readline_h_ln_cmd) - -dnl In order to add new charset, you must add charset name to -dnl this CHARSETS_AVAILABLE list and sql/share/charsets/Index.xml. -dnl If the character set uses strcoll or other special handling, -dnl you must also create strings/ctype-$charset_name.c - -AC_DIVERT_PUSH(0) - -define(CHARSETS_AVAILABLE0,binary) -define(CHARSETS_AVAILABLE1,armscii8 ascii big5 cp1250 cp1251 cp1256 cp1257) -define(CHARSETS_AVAILABLE2,cp850 cp852 cp866 dec8 euckr gb2312 gbk geostd8) -define(CHARSETS_AVAILABLE3,greek hebrew hp8 keybcs2 koi8r koi8u) -define(CHARSETS_AVAILABLE4,latin1 latin2 latin5 latin7 macce macroman) -define(CHARSETS_AVAILABLE5,sjis swe7 tis620 ucs2 ujis utf8) - -DEFAULT_CHARSET=latin1 -CHARSETS_AVAILABLE="CHARSETS_AVAILABLE0 CHARSETS_AVAILABLE1 CHARSETS_AVAILABLE2 CHARSETS_AVAILABLE3 CHARSETS_AVAILABLE4 CHARSETS_AVAILABLE5" -CHARSETS_COMPLEX="big5 cp1250 euckr gb2312 gbk latin1 latin2 sjis tis620 ucs2 ujis utf8" - -AC_DIVERT_POP - -AC_ARG_WITH(charset, - [ --with-charset=CHARSET - Default character set, use one of: - CHARSETS_AVAILABLE0 - CHARSETS_AVAILABLE1 - CHARSETS_AVAILABLE2 - CHARSETS_AVAILABLE3 - CHARSETS_AVAILABLE4 - CHARSETS_AVAILABLE5], - [default_charset="$withval"], - [default_charset="$DEFAULT_CHARSET"]) - -AC_ARG_WITH(collation, - [ --with-collation=COLLATION - Default collation], - [default_collation="$withval"], - [default_collation="default"]) - - -AC_ARG_WITH(extra-charsets, - [ --with-extra-charsets=CHARSET[,CHARSET,...] - Use charsets in addition to default (none, complex, - all, or a list selected from the above sets)], - [extra_charsets="$withval"], - [extra_charsets="none"]) - - -AC_MSG_CHECKING("character sets") - -CHARSETS="$default_charset latin1 utf8" - -if test "$extra_charsets" = no; then - CHARSETS="$CHARSETS" -elif test "$extra_charsets" = none; then - CHARSETS="$CHARSETS" -elif test "$extra_charsets" = complex; then - CHARSETS="$CHARSETS $CHARSETS_COMPLEX" - AC_DEFINE([DEFINE_ALL_CHARACTER_SETS],1,[all charsets are available]) -elif test "$extra_charsets" = all; then - CHARSETS="$CHARSETS $CHARSETS_AVAILABLE" - AC_DEFINE([DEFINE_ALL_CHARACTER_SETS],1,[all charsets are available]) -else - EXTRA_CHARSETS=`echo $extra_charsets | sed -e 's/,/ /g'` - CHARSETS="$CHARSETS $EXTRA_CHARSETS" -fi - -for cs in $CHARSETS -do - case $cs in - armscii8) - AC_DEFINE(HAVE_CHARSET_armscii8, 1, - [Define to enable charset armscii8]) - ;; - ascii) - AC_DEFINE(HAVE_CHARSET_ascii, 1, - [Define to enable ascii character set]) - ;; - big5) - AC_DEFINE(HAVE_CHARSET_big5, 1, [Define to enable charset big5]) - AC_DEFINE([USE_MB], [1], [Use multi-byte character routines]) - AC_DEFINE(USE_MB_IDENT, [1], [ ]) - ;; - binary) - ;; - cp1250) - AC_DEFINE(HAVE_CHARSET_cp1250, 1, [Define to enable cp1250]) - ;; - cp1251) - AC_DEFINE(HAVE_CHARSET_cp1251, 1, [Define to enable charset cp1251]) - ;; - cp1256) - AC_DEFINE(HAVE_CHARSET_cp1256, 1, [Define to enable charset cp1256]) - ;; - cp1257) - AC_DEFINE(HAVE_CHARSET_cp1257, 1, [Define to enable charset cp1257]) - ;; - cp850) - AC_DEFINE(HAVE_CHARSET_cp850, 1, [Define to enable charset cp850]) - ;; - cp852) - AC_DEFINE(HAVE_CHARSET_cp852, 1, [Define to enable charset cp852]) - ;; - cp866) - AC_DEFINE(HAVE_CHARSET_cp866, 1, [Define to enable charset cp866]) - ;; - dec8) - AC_DEFINE(HAVE_CHARSET_dec8, 1, [Define to enable charset dec8]) - ;; - euckr) - AC_DEFINE(HAVE_CHARSET_euckr, 1, [Define to enable charset euckr]) - AC_DEFINE([USE_MB], [1], [Use multi-byte character routines]) - AC_DEFINE(USE_MB_IDENT, 1) - ;; - gb2312) - AC_DEFINE(HAVE_CHARSET_gb2312, 1, [Define to enable charset gb2312]) - AC_DEFINE([USE_MB], 1, [Use multi-byte character routines]) - AC_DEFINE(USE_MB_IDENT, 1) - ;; - gbk) - AC_DEFINE(HAVE_CHARSET_gbk, 1, [Define to enable charset gbk]) - AC_DEFINE([USE_MB], [1], [Use multi-byte character routines]) - AC_DEFINE(USE_MB_IDENT, 1) - ;; - geostd8) - AC_DEFINE(HAVE_CHARSET_geostd8, 1, [Define to enable charset geostd8]) - ;; - greek) - AC_DEFINE(HAVE_CHARSET_greek, 1, [Define to enable charset greek]) - ;; - hebrew) - AC_DEFINE(HAVE_CHARSET_hebrew, 1, [Define to enable charset hebrew]) - ;; - hp8) - AC_DEFINE(HAVE_CHARSET_hp8, 1, [Define to enable charset hp8]) - ;; - keybcs2) - AC_DEFINE(HAVE_CHARSET_keybcs2, 1, [Define to enable charset keybcs2]) - ;; - koi8r) - AC_DEFINE(HAVE_CHARSET_koi8r, 1, [Define to enable charset koi8r]) - ;; - koi8u) - AC_DEFINE(HAVE_CHARSET_koi8u, 1, [Define to enable charset koi8u]) - ;; - latin1) - AC_DEFINE(HAVE_CHARSET_latin1, 1, [Define to enable charset latin1]) - ;; - latin2) - AC_DEFINE(HAVE_CHARSET_latin2, 1, [Define to enable charset latin2]) - ;; - latin5) - AC_DEFINE(HAVE_CHARSET_latin5, 1, [Define to enable charset latin5]) - ;; - latin7) - AC_DEFINE(HAVE_CHARSET_latin7, 1, [Define to enable charset latin7]) - ;; - macce) - AC_DEFINE(HAVE_CHARSET_macce, 1, [Define to enable charset macce]) - ;; - macroman) - AC_DEFINE(HAVE_CHARSET_macroman, 1, - [Define to enable charset macroman]) - ;; - sjis) - AC_DEFINE(HAVE_CHARSET_sjis, 1, [Define to enable charset sjis]) - AC_DEFINE([USE_MB], 1, [Use multi-byte character routines]) - AC_DEFINE(USE_MB_IDENT, 1) - ;; - swe7) - AC_DEFINE(HAVE_CHARSET_swe7, 1, [Define to enable charset swe7]) - ;; - tis620) - AC_DEFINE(HAVE_CHARSET_tis620, 1, [Define to enable charset tis620]) - ;; - ucs2) - AC_DEFINE(HAVE_CHARSET_ucs2, 1, [Define to enable charset ucs2]) - AC_DEFINE([USE_MB], [1], [Use multi-byte character routines]) - AC_DEFINE(USE_MB_IDENT, 1) - ;; - ujis) - AC_DEFINE(HAVE_CHARSET_ujis, 1, [Define to enable charset ujis]) - AC_DEFINE([USE_MB], [1], [Use multi-byte character routines]) - AC_DEFINE(USE_MB_IDENT, 1) - ;; - utf8) - AC_DEFINE(HAVE_CHARSET_utf8, 1, [Define to enable ut8]) - AC_DEFINE([USE_MB], 1, [Use multi-byte character routines]) - AC_DEFINE(USE_MB_IDENT, 1) - ;; - *) - AC_MSG_ERROR([Charset '$cs' not available. (Available are: $CHARSETS_AVAILABLE). - See the Installation chapter in the Reference Manual.]); - esac -done - - - default_charset_collations="" - -case $default_charset in - armscii8) - default_charset_default_collation="armscii8_general_ci" - default_charset_collations="armscii8_general_ci armscii8_bin" - ;; - ascii) - default_charset_default_collation="ascii_general_ci" - default_charset_collations="ascii_general_ci ascii_bin" - ;; - big5) - default_charset_default_collation="big5_chinese_ci" - default_charset_collations="big5_chinese_ci big5_bin" - ;; - binary) - default_charset_default_collation="binary" - default_charset_collations="binary" - ;; - cp1250) - default_charset_default_collation="cp1250_general_ci" - default_charset_collations="cp1250_general_ci cp1250_czech_cs cp1250_bin" - ;; - cp1251) - default_charset_default_collation="cp1251_general_ci" - default_charset_collations="cp1251_general_ci cp1251_general_cs cp1251_bin cp1251_bulgarian_ci cp1251_ukrainian_ci" - ;; - cp1256) - default_charset_default_collation="cp1256_general_ci" - default_charset_collations="cp1256_general_ci cp1256_bin" - ;; - cp1257) - default_charset_default_collation="cp1257_general_ci" - default_charset_collations="cp1257_general_ci cp1257_lithuanian_ci cp1257_bin" - ;; - cp850) - default_charset_default_collation="cp850_general_ci" - default_charset_collations="cp850_general_ci cp850_bin" - ;; - cp852) - default_charset_default_collation="cp852_general_ci" - default_charset_collations="cp852_general_ci cp852_bin" - ;; - cp866) - default_charset_default_collation="cp866_general_ci" - default_charset_collations="cp866_general_ci cp866_bin" - ;; - dec8) - default_charset_default_collation="dec8_swedish_ci" - default_charset_collations="dec8_swedish_ci dec8_bin" - ;; - euckr) - default_charset_default_collation="euckr_korean_ci" - default_charset_collations="euckr_korean_ci euckr_bin" - ;; - gb2312) - default_charset_default_collation="gb2312_chinese_ci" - default_charset_collations="gb2312_chinese_ci gb2312_bin" - ;; - gbk) - default_charset_default_collation="gbk_chinese_ci" - default_charset_collations="gbk_chinese_ci gbk_bin" - ;; - geostd8) - default_charset_default_collation="geostd8_general_ci" - default_charset_collations="geostd8_general_ci geostd8_bin" - ;; - greek) - default_charset_default_collation="greek_general_ci" - default_charset_collations="greek_general_ci greek_bin" - ;; - hebrew) - default_charset_default_collation="hebrew_general_ci" - default_charset_collations="hebrew_general_ci hebrew_bin" - ;; - hp8) - default_charset_default_collation="hp8_english_ci" - default_charset_collations="hp8_english_ci hp8_bin" - ;; - keybcs2) - default_charset_default_collation="keybcs2_general_ci" - default_charset_collations="keybcs2_general_ci keybcs2_bin" - ;; - koi8r) - default_charset_default_collation="koi8r_general_ci" - default_charset_collations="koi8r_general_ci koi8r_bin" - ;; - koi8u) - default_charset_default_collation="koi8u_general_ci" - default_charset_collations="koi8u_general_ci koi8u_bin" - ;; - latin1) - default_charset_default_collation="latin1_swedish_ci" - default_charset_collations="latin1_general_ci latin1_general_cs latin1_bin latin1_german1_ci latin1_german2_ci latin1_danish_ci latin1_swedish_ci" - ;; - latin2) - default_charset_default_collation="latin2_general_ci" - default_charset_collations="latin2_general_ci latin2_bin latin2_czech_cs latin2_hungarian_ci latin2_croatian_ci" - ;; - latin5) - default_charset_default_collation="latin5_turkish_ci" - default_charset_collations="latin5_turkish_ci latin5_bin" - ;; - latin7) - default_charset_default_collation="latin7_general_ci" - default_charset_collations="latin7_general_ci latin7_general_cs latin7_bin latin7_estonian_cs" - ;; - macce) - default_charset_default_collation="macce_general_ci" - default_charset_collations="macce_general_ci macce_bin" - ;; - macroman) - default_charset_default_collation="macroman_general_ci" - default_charset_collations="macroman_general_ci macroman_bin" - ;; - sjis) - default_charset_default_collation="sjis_japanese_ci" - default_charset_collations="sjis_japanese_ci sjis_bin" - ;; - swe7) - default_charset_default_collation="swe7_swedish_ci" - default_charset_collations="swe7_swedish_ci swe7_bin" - ;; - tis620) - default_charset_default_collation="tis620_thai_ci" - default_charset_collations="tis620_thai_ci tis620_bin" - ;; - ucs2) - default_charset_default_collation="ucs2_general_ci" - define(UCSC1, ucs2_general_ci ucs2_bin) - define(UCSC2, ucs2_czech_ci ucs2_danish_ci) - define(UCSC3, ucs2_estonian_ci ucs2_icelandic_ci) - define(UCSC4, ucs2_latvian_ci ucs2_lithuanian_ci) - define(UCSC5, ucs2_persian_ci ucs2_polish_ci ucs2_romanian_ci) - define(UCSC6, ucs2_slovak_ci ucs2_slovenian_ci) - define(UCSC7, ucs2_spanish2_ci ucs2_spanish_ci) - define(UCSC8, ucs2_swedish_ci ucs2_turkish_ci) - define(UCSC9, ucs2_unicode_ci) - UCSC="UCSC1 UCSC2 UCSC3 UCSC4 UCSC5 UCSC6 UCSC7 UCSC8 UCSC9" - default_charset_collations="$UCSC" - ;; - ujis) - default_charset_default_collation="ujis_japanese_ci" - default_charset_collations="ujis_japanese_ci ujis_bin" - ;; - utf8) - default_charset_default_collation="utf8_general_ci" - define(UTFC1, utf8_general_ci utf8_bin) - define(UTFC2, utf8_czech_ci utf8_danish_ci) - define(UTFC3, utf8_estonian_ci utf8_icelandic_ci) - define(UTFC4, utf8_latvian_ci utf8_lithuanian_ci) - define(UTFC5, utf8_persian_ci utf8_polish_ci utf8_romanian_ci) - define(UTFC6, utf8_slovak_ci utf8_slovenian_ci) - define(UTFC7, utf8_spanish2_ci utf8_spanish_ci) - define(UTFC8, utf8_swedish_ci utf8_turkish_ci) - define(UTFC9, utf8_unicode_ci) - UTFC="UTFC1 UTFC2 UTFC3 UTFC4 UTFC5 UTFC6 UTFC7 UTFC8 UTFC9" - default_charset_collations="$UTFC" - ;; - *) - AC_MSG_ERROR([Charset $cs not available. (Available are: $CHARSETS_AVAILABLE). - See the Installation chapter in the Reference Manual.]); -esac - -if test "$default_collation" = default; then - default_collation=$default_charset_default_collation -fi - -valid_default_collation=no -for cl in $default_charset_collations -do - if test x"$cl" = x"$default_collation" - then - valid_default_collation=yes - break - fi -done - -if test x$valid_default_collation = xyes -then - AC_MSG_RESULT([default: $default_charset, collation: $default_collation; compiled in: $CHARSETS]) -else - AC_MSG_ERROR([ - Collation $default_collation is not valid for character set $default_charset. - Valid collations are: $default_charset_collations. - See the Installation chapter in the Reference Manual. - ]); -fi - -AC_DEFINE_UNQUOTED([MYSQL_DEFAULT_CHARSET_NAME], ["$default_charset"], - [Define the default charset name]) -AC_DEFINE_UNQUOTED([MYSQL_DEFAULT_COLLATION_NAME], ["$default_collation"], - [Define the default charset name]) - MYSQL_CHECK_ISAM MYSQL_CHECK_BDB MYSQL_CHECK_INNODB @@ -3045,6 +2638,7 @@ case $SYSTEM_TYPE in ;; esac + if test X"$have_ndbcluster" = Xyes then MAKE_BINARY_DISTRIBUTION_OPTIONS="$MAKE_BINARY_DISTRIBUTION_OPTIONS --with-ndbcluster" From 03af7092ec52afa6d4c7839ab837416a006fbd81 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 2 Dec 2004 11:39:26 -0800 Subject: [PATCH 2/6] Undoing change for the moment. BitKeeper/deleted/.del-acinclude.m4~f4ab416bac5003: Delete: acinclude.m4 config.guess: Rename: build/config.guess -> config.guess config.sub: Rename: build/config.sub -> config.sub depcomp: Rename: build/depcomp -> depcomp install-sh: Rename: build/install-sh -> install-sh ltmain.sh: Rename: build/ltmain.sh -> ltmain.sh missing: Rename: build/missing -> missing --- acinclude.m4 | 1882 -------------------------------------------------- 1 file changed, 1882 deletions(-) delete mode 100644 acinclude.m4 diff --git a/acinclude.m4 b/acinclude.m4 deleted file mode 100644 index 81917372206..00000000000 --- a/acinclude.m4 +++ /dev/null @@ -1,1882 +0,0 @@ -# Local macros for automake & autoconf - - -AC_DEFUN([MYSQL_CHECK_READLINE_DECLARES_HIST_ENTRY], [ - AC_CACHE_CHECK([HIST_ENTRY is declared in readline/readline.h], mysql_cv_hist_entry_declared, - AC_TRY_COMPILE( - [ - #include "stdio.h" - #include "readline/readline.h" - ], - [ - HIST_ENTRY entry; - ], - [ - mysql_cv_hist_entry_declared=yes - AC_DEFINE_UNQUOTED(HAVE_HIST_ENTRY, [1], - [HIST_ENTRY is defined in the outer libeditreadline]) - ], - [mysql_cv_libedit_interface=no] - ) - ) -]) - -AC_DEFUN([MYSQL_CHECK_LIBEDIT_INTERFACE], [ - AC_CACHE_CHECK([libedit variant of rl_completion_entry_function], mysql_cv_libedit_interface, - AC_TRY_COMPILE( - [ - #include "stdio.h" - #include "readline/readline.h" - ], - [ - char res= *(*rl_completion_entry_function)(0,0); - completion_matches(0,0); - ], - [ - mysql_cv_libedit_interface=yes - AC_DEFINE_UNQUOTED([USE_LIBEDIT_INTERFACE], [1], - [used libedit interface (can we dereference result of rl_completion_entry_function)]) - ], - [mysql_cv_libedit_interface=no] - ) - ) -]) - -AC_DEFUN([MYSQL_CHECK_NEW_RL_INTERFACE], [ - AC_CACHE_CHECK([defined rl_compentry_func_t and rl_completion_func_t], mysql_cv_new_rl_interface, - AC_TRY_COMPILE( - [ - #include "stdio.h" - #include "readline/readline.h" - ], - [ - rl_completion_func_t *func1= (rl_completion_func_t*)0; - rl_compentry_func_t *func2= (rl_compentry_func_t*)0; - ], - [ - mysql_cv_new_rl_interface=yes - AC_DEFINE_UNQUOTED([USE_NEW_READLINE_INTERFACE], [1], - [used new readline interface (are rl_completion_func_t and rl_compentry_func_t defined)]) - ], - [mysql_cv_new_rl_interface=no] - ) - ) -]) - -# A local version of AC_CHECK_SIZEOF that includes sys/types.h -dnl MYSQL_CHECK_SIZEOF(TYPE [, CROSS-SIZE]) -AC_DEFUN([MYSQL_CHECK_SIZEOF], -[changequote(<<, >>)dnl -dnl The name to #define. -define(<>, translit(sizeof_$1, [a-z *], [A-Z_P]))dnl -dnl The cache variable name. -define(<>, translit(ac_cv_sizeof_$1, [ *], [_p]))dnl -changequote([, ])dnl -AC_MSG_CHECKING(size of $1) -AC_CACHE_VAL(AC_CV_NAME, -[AC_TRY_RUN([#include -#include -#if STDC_HEADERS -#include -#include -#endif -main() -{ - FILE *f=fopen("conftestval", "w"); - if (!f) exit(1); - fprintf(f, "%d\n", sizeof($1)); - exit(0); -}], AC_CV_NAME=`cat conftestval`, AC_CV_NAME=0, ifelse([$2], , , AC_CV_NAME=$2))])dnl -AC_MSG_RESULT($AC_CV_NAME) -AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME, [ ]) -undefine([AC_TYPE_NAME])dnl -undefine([AC_CV_NAME])dnl -]) - -#---START: Used in for client configure -AC_DEFUN([MYSQL_TYPE_ACCEPT], -[ac_save_CXXFLAGS="$CXXFLAGS" -AC_CACHE_CHECK([base type of last arg to accept], mysql_cv_btype_last_arg_accept, -AC_LANG_SAVE -AC_LANG_CPLUSPLUS -if test "$ac_cv_prog_gxx" = "yes" -then - CXXFLAGS=`echo $CXXFLAGS -Werror | sed 's/-fbranch-probabilities//'` -fi -mysql_cv_btype_last_arg_accept=none -[AC_TRY_COMPILE([#if defined(inline) -#undef inline -#endif -#include -#include -#include -], -[int a = accept(1, (struct sockaddr *) 0, (socklen_t *) 0); return (a != 0);], -mysql_cv_btype_last_arg_accept=socklen_t)] -if test "$mysql_cv_btype_last_arg_accept" = "none"; then -[AC_TRY_COMPILE([#if defined(inline) -#undef inline -#endif -#include -#include -#include -], -[int a = accept(1, (struct sockaddr *) 0, (size_t *) 0); return (a != 0);], -mysql_cv_btype_last_arg_accept=size_t)] -fi -if test "$mysql_cv_btype_last_arg_accept" = "none"; then -mysql_cv_btype_last_arg_accept=int -fi) -AC_LANG_RESTORE -AC_DEFINE_UNQUOTED([SOCKET_SIZE_TYPE], [$mysql_cv_btype_last_arg_accept], - [The base type of the last arg to accept]) -CXXFLAGS="$ac_save_CXXFLAGS" -]) -#---END: - -dnl Find type of qsort -AC_DEFUN([MYSQL_TYPE_QSORT], -[AC_CACHE_CHECK([return type of qsort], mysql_cv_type_qsort, -[AC_TRY_COMPILE([#include -#ifdef __cplusplus -extern "C" -#endif -void qsort(void *base, size_t nel, size_t width, - int (*compar) (const void *, const void *)); -], -[int i;], mysql_cv_type_qsort=void, mysql_cv_type_qsort=int)]) -AC_DEFINE_UNQUOTED([RETQSORTTYPE], [$mysql_cv_type_qsort], - [The return type of qsort (int or void).]) -if test "$mysql_cv_type_qsort" = "void" -then - AC_DEFINE_UNQUOTED([QSORT_TYPE_IS_VOID], [1], [qsort returns void]) -fi -]) - -AC_DEFUN([MYSQL_TIMESPEC_TS], -[AC_CACHE_CHECK([if struct timespec has a ts_sec member], mysql_cv_timespec_ts, -[AC_TRY_COMPILE([#include -#ifdef __cplusplus -extern "C" -#endif -], -[struct timespec abstime; - -abstime.ts_sec = time(NULL)+1; -abstime.ts_nsec = 0; -], mysql_cv_timespec_ts=yes, mysql_cv_timespec_ts=no)]) -if test "$mysql_cv_timespec_ts" = "yes" -then - AC_DEFINE([HAVE_TIMESPEC_TS_SEC], [1], - [Timespec has a ts_sec instead of tv_sev]) -fi -]) - -AC_DEFUN([MYSQL_TZNAME], -[AC_CACHE_CHECK([if we have tzname variable], mysql_cv_tzname, -[AC_TRY_COMPILE([#include -#ifdef __cplusplus -extern "C" -#endif -], -[ tzset(); - return tzname[0] != 0; -], mysql_cv_tzname=yes, mysql_cv_tzname=no)]) -if test "$mysql_cv_tzname" = "yes" -then - AC_DEFINE([HAVE_TZNAME], [1], [Have the tzname variable]) -fi -]) - - -dnl Define zlib paths to point at bundled zlib - -AC_DEFUN([MYSQL_USE_BUNDLED_ZLIB], [ -ZLIB_INCLUDES="-I\$(top_srcdir)/zlib" -ZLIB_LIBS="\$(top_builddir)/zlib/libz.la" -zlib_dir="zlib" -AC_SUBST([zlib_dir]) -mysql_cv_compress="yes" -]) - -dnl Auxiliary macro to check for zlib at given path - -AC_DEFUN([MYSQL_CHECK_ZLIB_DIR], [ -save_INCLUDES="$INCLUDES" -save_LIBS="$LIBS" -INCLUDES="$INCLUDES $ZLIB_INCLUDES" -LIBS="$LIBS $ZLIB_LIBS" -AC_CACHE_VAL([mysql_cv_compress], - [AC_TRY_LINK([#include ], - [return compress(0, (unsigned long*) 0, "", 0);], - [mysql_cv_compress="yes" - AC_MSG_RESULT([ok])], - [mysql_cv_compress="no"]) - ]) -INCLUDES="$save_INCLUDES" -LIBS="$save_LIBS" -]) - -dnl MYSQL_CHECK_ZLIB_WITH_COMPRESS -dnl ------------------------------------------------------------------------ -dnl @synopsis MYSQL_CHECK_ZLIB_WITH_COMPRESS -dnl -dnl Provides the following configure options: -dnl --with-zlib-dir=DIR -dnl Possible DIR values are: -dnl - "no" - the macro will disable use of compression functions -dnl - "bundled" - means use zlib bundled along with MySQL sources -dnl - empty, or not specified - the macro will try default system -dnl library (if present), and in case of error will fall back to -dnl bundled zlib -dnl - zlib location prefix - given location prefix, the macro expects -dnl to find the library headers in $prefix/include, and binaries in -dnl $prefix/lib. If zlib headers or binaries weren't found at $prefix, the -dnl macro bails out with error. -dnl -dnl If the library was found, this function #defines HAVE_COMPRESS -dnl and configure variables ZLIB_INCLUDES (i.e. -I/path/to/zlib/include) and -dnl ZLIB_LIBS (i. e. -L/path/to/zlib/lib -lz). - -AC_DEFUN([MYSQL_CHECK_ZLIB_WITH_COMPRESS], [ -AC_MSG_CHECKING([for zlib compression library]) -case $SYSTEM_TYPE in -*netware* | *modesto*) - AC_MSG_RESULT(ok) - AC_DEFINE([HAVE_COMPRESS], [1], [Define to enable compression support]) - ;; - *) - AC_ARG_WITH([zlib-dir], - AC_HELP_STRING([--with-zlib-dir=DIR], - [Provide MySQL with a custom location of - compression library. Given DIR, zlib binary is - assumed to be in $DIR/lib and header files - in $DIR/include.]), - [mysql_zlib_dir=${withval}], - [mysql_zlib_dir=""]) - case "$mysql_zlib_dir" in - "no") - mysql_cv_compress="no" - AC_MSG_RESULT([disabled]) - ;; - "bundled") - MYSQL_USE_BUNDLED_ZLIB - AC_MSG_RESULT([using bundled zlib]) - ;; - "") - ZLIB_INCLUDES="" - ZLIB_LIBS="-lz" - MYSQL_CHECK_ZLIB_DIR - if test "$mysql_cv_compress" = "no"; then - MYSQL_USE_BUNDLED_ZLIB - AC_MSG_RESULT([system-wide zlib not found, using one bundled with MySQL]) - fi - ;; - *) - if test -f "$mysql_zlib_dir/lib/libz.a" -a \ - -f "$mysql_zlib_dir/include/zlib.h"; then - ZLIB_INCLUDES="-I$mysql_zlib_dir/include" - ZLIB_LIBS="-L$mysql_zlib_dir/lib -lz" - MYSQL_CHECK_ZLIB_DIR - fi - if test "x$mysql_cv_compress" != "xyes"; then - AC_MSG_ERROR([headers or binaries were not found in $mysql_zlib_dir/{include,lib}]) - fi - ;; - esac - if test "$mysql_cv_compress" = "yes"; then - AC_SUBST([ZLIB_LIBS]) - AC_SUBST([ZLIB_INCLUDES]) - AC_DEFINE([HAVE_COMPRESS], [1], [Define to enable compression support]) - fi - ;; -esac -]) - -dnl ------------------------------------------------------------------------ - -#---START: Used in for client configure -AC_DEFUN([MYSQL_CHECK_ULONG], -[AC_MSG_CHECKING(for type ulong) -AC_CACHE_VAL(ac_cv_ulong, -[AC_TRY_RUN([#include -#include -main() -{ - ulong foo; - foo++; - exit(0); -}], ac_cv_ulong=yes, ac_cv_ulong=no, ac_cv_ulong=no)]) -AC_MSG_RESULT($ac_cv_ulong) -if test "$ac_cv_ulong" = "yes" -then - AC_DEFINE([HAVE_ULONG], [1], [system headers define ulong]) -fi -]) - -AC_DEFUN([MYSQL_CHECK_UCHAR], -[AC_MSG_CHECKING(for type uchar) -AC_CACHE_VAL(ac_cv_uchar, -[AC_TRY_RUN([#include -#include -main() -{ - uchar foo; - foo++; - exit(0); -}], ac_cv_uchar=yes, ac_cv_uchar=no, ac_cv_uchar=no)]) -AC_MSG_RESULT($ac_cv_uchar) -if test "$ac_cv_uchar" = "yes" -then - AC_DEFINE([HAVE_UCHAR], [1], [system headers define uchar]) -fi -]) - -AC_DEFUN([MYSQL_CHECK_UINT], -[AC_MSG_CHECKING(for type uint) -AC_CACHE_VAL(ac_cv_uint, -[AC_TRY_RUN([#include -#include -main() -{ - uint foo; - foo++; - exit(0); -}], ac_cv_uint=yes, ac_cv_uint=no, ac_cv_uint=no)]) -AC_MSG_RESULT($ac_cv_uint) -if test "$ac_cv_uint" = "yes" -then - AC_DEFINE([HAVE_UINT], [1], [system headers define uint]) -fi -]) - - -AC_DEFUN([MYSQL_CHECK_IN_ADDR_T], -[AC_MSG_CHECKING(for type in_addr_t) -AC_CACHE_VAL(ac_cv_in_addr_t, -[AC_TRY_RUN([#include -#include -#include -#include -#include - -int main(int argc, char **argv) -{ - in_addr_t foo; - exit(0); -}], ac_cv_in_addr_t=yes, ac_cv_in_addr_t=no, ac_cv_in_addr_t=no)]) -AC_MSG_RESULT($ac_cv_in_addr_t) -if test "$ac_cv_in_addr_t" = "yes" -then - AC_DEFINE([HAVE_IN_ADDR_T], [1], [system headers define in_addr_t]) -fi -]) - - -AC_DEFUN([MYSQL_PTHREAD_YIELD], -[AC_CACHE_CHECK([if pthread_yield takes zero arguments], ac_cv_pthread_yield_zero_arg, -[AC_TRY_LINK([#define _GNU_SOURCE -#include -#ifdef __cplusplus -extern "C" -#endif -], -[ - pthread_yield(); -], ac_cv_pthread_yield_zero_arg=yes, ac_cv_pthread_yield_zero_arg=yeso)]) -if test "$ac_cv_pthread_yield_zero_arg" = "yes" -then - AC_DEFINE([HAVE_PTHREAD_YIELD_ZERO_ARG], [1], - [pthread_yield that doesn't take any arguments]) -fi -] -[AC_CACHE_CHECK([if pthread_yield takes 1 argument], ac_cv_pthread_yield_one_arg, -[AC_TRY_LINK([#define _GNU_SOURCE -#include -#ifdef __cplusplus -extern "C" -#endif -], -[ - pthread_yield(0); -], ac_cv_pthread_yield_one_arg=yes, ac_cv_pthread_yield_one_arg=no)]) -if test "$ac_cv_pthread_yield_one_arg" = "yes" -then - AC_DEFINE([HAVE_PTHREAD_YIELD_ONE_ARG], [1], - [pthread_yield function with one argument]) -fi -] -) - - - -#---END: - -AC_DEFUN([MYSQL_CHECK_FP_EXCEPT], -[AC_MSG_CHECKING(for type fp_except) -AC_CACHE_VAL(ac_cv_fp_except, -[AC_TRY_RUN([#include -#include -#include -main() -{ - fp_except foo; - foo++; - exit(0); -}], ac_cv_fp_except=yes, ac_cv_fp_except=no, ac_cv_fp_except=no)]) -AC_MSG_RESULT($ac_cv_fp_except) -if test "$ac_cv_fp_except" = "yes" -then - AC_DEFINE([HAVE_FP_EXCEPT], [1], [fp_except from ieeefp.h]) -fi -]) - -# From fileutils-3.14/aclocal.m4 - -# @defmac AC_PROG_CC_STDC -# @maindex PROG_CC_STDC -# @ovindex CC -# If the C compiler in not in ANSI C mode by default, try to add an option -# to output variable @code{CC} to make it so. This macro tries various -# options that select ANSI C on some system or another. It considers the -# compiler to be in ANSI C mode if it defines @code{__STDC__} to 1 and -# handles function prototypes correctly. -# -# Patched by monty to only check if __STDC__ is defined. With the original -# check it's impossible to get things to work with the Sunpro compiler from -# Workshop 4.2 -# -# If you use this macro, you should check after calling it whether the C -# compiler has been set to accept ANSI C; if not, the shell variable -# @code{am_cv_prog_cc_stdc} is set to @samp{no}. If you wrote your source -# code in ANSI C, you can make an un-ANSIfied copy of it by using the -# program @code{ansi2knr}, which comes with Ghostscript. -# @end defmac - -AC_DEFUN([AM_PROG_CC_STDC], -[AC_REQUIRE([AC_PROG_CC]) -AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C) -AC_CACHE_VAL(am_cv_prog_cc_stdc, -[am_cv_prog_cc_stdc=no -ac_save_CC="$CC" -# Don't try gcc -ansi; that turns off useful extensions and -# breaks some systems' header files. -# AIX -qlanglvl=ansi -# Ultrix and OSF/1 -std1 -# HP-UX -Aa -D_HPUX_SOURCE -# SVR4 -Xc -D__EXTENSIONS__ -# removed "-Xc -D__EXTENSIONS__" beacause sun c++ does not like it. -for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" -do - CC="$ac_save_CC $ac_arg" - AC_TRY_COMPILE( -[#if !defined(__STDC__) -choke me -#endif -/* DYNIX/ptx V4.1.3 can't compile sys/stat.h with -Xc -D__EXTENSIONS__. */ -#ifdef _SEQUENT_ -# include -# include -#endif -], [ -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);};], -[am_cv_prog_cc_stdc="$ac_arg"; break]) -done -CC="$ac_save_CC" -]) -AC_MSG_RESULT($am_cv_prog_cc_stdc) -case "x$am_cv_prog_cc_stdc" in - x|xno) ;; - *) CC="$CC $am_cv_prog_cc_stdc" ;; -esac -]) - -# -# Check to make sure that the build environment is sane. -# - -AC_DEFUN([AM_SANITY_CHECK], -[AC_MSG_CHECKING([whether build environment is sane]) -sleep 1 -echo timestamp > conftestfile -# Do this in a subshell so we don't clobber the current shell's -# arguments. FIXME: maybe try `-L' hack like GETLOADAVG test? -if (set X `ls -t $srcdir/configure conftestfile`; test "[$]2" = conftestfile) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! -Check your system clock]) -fi -rm -f conftest* -AC_MSG_RESULT(yes)]) - -# Orginal from bash-2.0 aclocal.m4, Changed to use termcap last by monty. - -AC_DEFUN([MYSQL_CHECK_LIB_TERMCAP], -[ -AC_CACHE_VAL(mysql_cv_termcap_lib, -[AC_CHECK_LIB(ncurses, tgetent, mysql_cv_termcap_lib=libncurses, - [AC_CHECK_LIB(curses, tgetent, mysql_cv_termcap_lib=libcurses, - [AC_CHECK_LIB(termcap, tgetent, mysql_cv_termcap_lib=libtermcap, - mysql_cv_termcap_lib=NOT_FOUND)])])]) -AC_MSG_CHECKING(for termcap functions library) -if test "$mysql_cv_termcap_lib" = "NOT_FOUND"; then -AC_MSG_ERROR([No curses/termcap library found]) -elif test "$mysql_cv_termcap_lib" = "libtermcap"; then -TERMCAP_LIB=-ltermcap -elif test "$mysql_cv_termcap_lib" = "libncurses"; then -TERMCAP_LIB=-lncurses -else -TERMCAP_LIB=-lcurses -fi -AC_MSG_RESULT($TERMCAP_LIB) -]) - -dnl Check type of signal routines (posix, 4.2bsd, 4.1bsd or v7) -AC_DEFUN([MYSQL_SIGNAL_CHECK], -[AC_REQUIRE([AC_TYPE_SIGNAL]) -AC_MSG_CHECKING(for type of signal functions) -AC_CACHE_VAL(mysql_cv_signal_vintage, -[ - AC_TRY_LINK([#include ],[ - sigset_t ss; - struct sigaction sa; - sigemptyset(&ss); sigsuspend(&ss); - sigaction(SIGINT, &sa, (struct sigaction *) 0); - sigprocmask(SIG_BLOCK, &ss, (sigset_t *) 0); - ], mysql_cv_signal_vintage=posix, - [ - AC_TRY_LINK([#include ], [ - int mask = sigmask(SIGINT); - sigsetmask(mask); sigblock(mask); sigpause(mask); - ], mysql_cv_signal_vintage=4.2bsd, - [ - AC_TRY_LINK([ - #include - RETSIGTYPE foo() { }], [ - int mask = sigmask(SIGINT); - sigset(SIGINT, foo); sigrelse(SIGINT); - sighold(SIGINT); sigpause(SIGINT); - ], mysql_cv_signal_vintage=svr3, mysql_cv_signal_vintage=v7 - )] - )] -) -]) -AC_MSG_RESULT($mysql_cv_signal_vintage) -if test "$mysql_cv_signal_vintage" = posix; then -AC_DEFINE(HAVE_POSIX_SIGNALS, [1], - [Signal handling is POSIX (sigset/sighold, etc)]) -elif test "$mysql_cv_signal_vintage" = "4.2bsd"; then -AC_DEFINE([HAVE_BSD_SIGNALS], [1], [BSD style signals]) -elif test "$mysql_cv_signal_vintage" = svr3; then -AC_DEFINE(HAVE_USG_SIGHOLD, [1], [sighold() is present and usable]) -fi -]) - -AC_DEFUN([MYSQL_CHECK_GETPW_FUNCS], -[AC_MSG_CHECKING(whether programs are able to redeclare getpw functions) -AC_CACHE_VAL(mysql_cv_can_redecl_getpw, -[AC_TRY_COMPILE([#include -#include -extern struct passwd *getpwent();], [struct passwd *z; z = getpwent();], - mysql_cv_can_redecl_getpw=yes,mysql_cv_can_redecl_getpw=no)]) -AC_MSG_RESULT($mysql_cv_can_redecl_getpw) -if test "$mysql_cv_can_redecl_getpw" = "no"; then -AC_DEFINE(HAVE_GETPW_DECLS, [1], [getpwent() declaration present]) -fi -]) - -AC_DEFUN([MYSQL_HAVE_TIOCGWINSZ], -[AC_MSG_CHECKING(for TIOCGWINSZ in sys/ioctl.h) -AC_CACHE_VAL(mysql_cv_tiocgwinsz_in_ioctl, -[AC_TRY_COMPILE([#include -#include ], [int x = TIOCGWINSZ;], - mysql_cv_tiocgwinsz_in_ioctl=yes,mysql_cv_tiocgwinsz_in_ioctl=no)]) -AC_MSG_RESULT($mysql_cv_tiocgwinsz_in_ioctl) -if test "$mysql_cv_tiocgwinsz_in_ioctl" = "yes"; then -AC_DEFINE([GWINSZ_IN_SYS_IOCTL], [1], - [READLINE: your system defines TIOCGWINSZ in sys/ioctl.h.]) -fi -]) - -AC_DEFUN([MYSQL_HAVE_FIONREAD], -[AC_MSG_CHECKING(for FIONREAD in sys/ioctl.h) -AC_CACHE_VAL(mysql_cv_fionread_in_ioctl, -[AC_TRY_COMPILE([#include -#include ], [int x = FIONREAD;], - mysql_cv_fionread_in_ioctl=yes,mysql_cv_fionread_in_ioctl=no)]) -AC_MSG_RESULT($mysql_cv_fionread_in_ioctl) -if test "$mysql_cv_fionread_in_ioctl" = "yes"; then -AC_DEFINE([FIONREAD_IN_SYS_IOCTL], [1], [Do we have FIONREAD]) -fi -]) - -AC_DEFUN([MYSQL_HAVE_TIOCSTAT], -[AC_MSG_CHECKING(for TIOCSTAT in sys/ioctl.h) -AC_CACHE_VAL(mysql_cv_tiocstat_in_ioctl, -[AC_TRY_COMPILE([#include -#include ], [int x = TIOCSTAT;], - mysql_cv_tiocstat_in_ioctl=yes,mysql_cv_tiocstat_in_ioctl=no)]) -AC_MSG_RESULT($mysql_cv_tiocstat_in_ioctl) -if test "$mysql_cv_tiocstat_in_ioctl" = "yes"; then -AC_DEFINE(TIOCSTAT_IN_SYS_IOCTL, [1], - [declaration of TIOCSTAT in sys/ioctl.h]) -fi -]) - -AC_DEFUN([MYSQL_STRUCT_DIRENT_D_INO], -[AC_REQUIRE([AC_HEADER_DIRENT]) -AC_MSG_CHECKING(if struct dirent has a d_ino member) -AC_CACHE_VAL(mysql_cv_dirent_has_dino, -[AC_TRY_COMPILE([ -#include -#include -#ifdef HAVE_UNISTD_H -# include -#endif /* HAVE_UNISTD_H */ -#if defined(HAVE_DIRENT_H) -# include -#else -# define dirent direct -# ifdef HAVE_SYS_NDIR_H -# include -# endif /* SYSNDIR */ -# ifdef HAVE_SYS_DIR_H -# include -# endif /* SYSDIR */ -# ifdef HAVE_NDIR_H -# include -# endif -#endif /* HAVE_DIRENT_H */ -],[ -struct dirent d; int z; z = d.d_ino; -], mysql_cv_dirent_has_dino=yes, mysql_cv_dirent_has_dino=no)]) -AC_MSG_RESULT($mysql_cv_dirent_has_dino) -if test "$mysql_cv_dirent_has_dino" = "yes"; then -AC_DEFINE(STRUCT_DIRENT_HAS_D_INO, [1], - [d_ino member present in struct dirent]) -fi -]) - -AC_DEFUN([MYSQL_STRUCT_DIRENT_D_NAMLEN], -[AC_REQUIRE([AC_HEADER_DIRENT]) -AC_MSG_CHECKING(if struct dirent has a d_namlen member) -AC_CACHE_VAL(mysql_cv_dirent_has_dnamlen, -[AC_TRY_COMPILE([ -#include -#include -#ifdef HAVE_UNISTD_H -# include -#endif /* HAVE_UNISTD_H */ -#if defined(HAVE_DIRENT_H) -# include -#else -# define dirent direct -# ifdef HAVE_SYS_NDIR_H -# include -# endif /* SYSNDIR */ -# ifdef HAVE_SYS_DIR_H -# include -# endif /* SYSDIR */ -# ifdef HAVE_NDIR_H -# include -# endif -#endif /* HAVE_DIRENT_H */ -],[ -struct dirent d; int z; z = (int)d.d_namlen; -], mysql_cv_dirent_has_dnamlen=yes, mysql_cv_dirent_has_dnamlen=no)]) -AC_MSG_RESULT($mysql_cv_dirent_has_dnamlen) -if test "$mysql_cv_dirent_has_dnamlen" = "yes"; then -AC_DEFINE(STRUCT_DIRENT_HAS_D_NAMLEN, [1], - [d_namlen member present in struct dirent]) -fi -]) - - -AC_DEFUN([MYSQL_TYPE_SIGHANDLER], -[AC_MSG_CHECKING([whether signal handlers are of type void]) -AC_CACHE_VAL(mysql_cv_void_sighandler, -[AC_TRY_COMPILE([#include -#include -#ifdef signal -#undef signal -#endif -#ifdef __cplusplus -extern "C" -#endif -void (*signal ()) ();], -[int i;], mysql_cv_void_sighandler=yes, mysql_cv_void_sighandler=no)])dnl -AC_MSG_RESULT($mysql_cv_void_sighandler) -if test "$mysql_cv_void_sighandler" = "yes"; then -AC_DEFINE(VOID_SIGHANDLER, [1], [sighandler type is void (*signal ()) ();]) -fi -]) - -AC_DEFUN([MYSQL_CXX_BOOL], -[ -AC_REQUIRE([AC_PROG_CXX]) -AC_MSG_CHECKING(if ${CXX} supports bool types) -AC_CACHE_VAL(mysql_cv_have_bool, -[ -AC_LANG_SAVE -AC_LANG_CPLUSPLUS -AC_TRY_COMPILE(,[bool b = true;], -mysql_cv_have_bool=yes, -mysql_cv_have_bool=no) -AC_LANG_RESTORE -]) -AC_MSG_RESULT($mysql_cv_have_bool) -if test "$mysql_cv_have_bool" = yes; then -AC_DEFINE([HAVE_BOOL], [1], [bool is not defined by all C++ compilators]) -fi -])dnl - -AC_DEFUN([MYSQL_STACK_DIRECTION], - [AC_CACHE_CHECK(stack direction for C alloca, ac_cv_c_stack_direction, - [AC_TRY_RUN([#include - int find_stack_direction () - { - static char *addr = 0; - auto char dummy; - if (addr == 0) - { - addr = &dummy; - return find_stack_direction (); - } - else - return (&dummy > addr) ? 1 : -1; - } - int main () - { - exit (find_stack_direction() < 0); - }], ac_cv_c_stack_direction=1, ac_cv_c_stack_direction=-1, - ac_cv_c_stack_direction=0)]) - AC_DEFINE_UNQUOTED(STACK_DIRECTION, $ac_cv_c_stack_direction) -])dnl - -AC_DEFUN([MYSQL_FUNC_ALLOCA], -[ -# Since we have heard that alloca fails on IRIX never define it on a -# SGI machine -if test ! "$host_vendor" = "sgi" -then - AC_REQUIRE_CPP()dnl Set CPP; we run AC_EGREP_CPP conditionally. - # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works - # for constant arguments. Useless! - AC_CACHE_CHECK([for working alloca.h], ac_cv_header_alloca_h, - [AC_TRY_LINK([#include ], [char *p = alloca(2 * sizeof(int));], - ac_cv_header_alloca_h=yes, ac_cv_header_alloca_h=no)]) - if test "$ac_cv_header_alloca_h" = "yes" - then - AC_DEFINE(HAVE_ALLOCA, 1) - fi - - AC_CACHE_CHECK([for alloca], ac_cv_func_alloca_works, - [AC_TRY_LINK([ - #ifdef __GNUC__ - # define alloca __builtin_alloca - #else - # if HAVE_ALLOCA_H - # include - # else - # ifdef _AIX - #pragma alloca - # else - # ifndef alloca /* predefined by HP cc +Olibcalls */ - char *alloca (); - # endif - # endif - # endif - #endif - ], [char *p = (char *) alloca(1);], - ac_cv_func_alloca_works=yes, ac_cv_func_alloca_works=no)]) - if test "$ac_cv_func_alloca_works" = "yes"; then - AC_DEFINE([HAVE_ALLOCA], [1], [If we have a working alloca() implementation]) - fi - - if test "$ac_cv_func_alloca_works" = "no"; then - # The SVR3 libPW and SVR4 libucb both contain incompatible functions - # that cause trouble. Some versions do not even contain alloca or - # contain a buggy version. If you still want to use their alloca, - # use ar to extract alloca.o from them instead of compiling alloca.c. - ALLOCA=alloca.o - AC_DEFINE(C_ALLOCA, 1) - - AC_CACHE_CHECK(whether alloca needs Cray hooks, ac_cv_os_cray, - [AC_EGREP_CPP(webecray, - [#if defined(CRAY) && ! defined(CRAY2) - webecray - #else - wenotbecray - #endif - ], ac_cv_os_cray=yes, ac_cv_os_cray=no)]) - if test "$ac_cv_os_cray" = "yes"; then - for ac_func in _getb67 GETB67 getb67; do - AC_CHECK_FUNC($ac_func, [AC_DEFINE_UNQUOTED(CRAY_STACKSEG_END, $ac_func) - break]) - done - fi - fi - AC_SUBST(ALLOCA)dnl -else - AC_MSG_RESULT("Skipped alloca tests") -fi -]) - -AC_DEFUN([MYSQL_CHECK_LONGLONG_TO_FLOAT], -[ -AC_MSG_CHECKING(if conversion of longlong to float works) -AC_CACHE_VAL(ac_cv_conv_longlong_to_float, -[AC_TRY_RUN([#include -typedef long long longlong; -main() -{ - longlong ll=1; - float f; - FILE *file=fopen("conftestval", "w"); - f = (float) ll; - fprintf(file,"%g\n",f); - fclose(file); - exit (0); -}], ac_cv_conv_longlong_to_float=`cat conftestval`, ac_cv_conv_longlong_to_float=0, ifelse([$2], , , ac_cv_conv_longlong_to_float=$2))])dnl -if test "$ac_cv_conv_longlong_to_float" = "1" -o "$ac_cv_conv_longlong_to_float" = "yes" -then - ac_cv_conv_longlong_to_float=yes -else - ac_cv_conv_longlong_to_float=no -fi -AC_MSG_RESULT($ac_cv_conv_longlong_to_float) -]) - -AC_DEFUN([MYSQL_CHECK_CPU], -[AC_CACHE_CHECK([if compiler supports optimizations for current cpu], -mysql_cv_cpu,[ - -ac_save_CFLAGS="$CFLAGS" -if test -r /proc/cpuinfo ; then - cpuinfo="cat /proc/cpuinfo" - cpu_family=`$cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1` - cpu_vendor=`$cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1` -fi -if test "$cpu_vendor" = "AuthenticAMD"; then - if test $cpu_family -ge 6; then - cpu_set="athlon pentiumpro k5 pentium i486 i386"; - elif test $cpu_family -eq 5; then - cpu_set="k5 pentium i486 i386"; - elif test $cpu_family -eq 4; then - cpu_set="i486 i386" - else - cpu_set="i386" - fi -elif test "$cpu_vendor" = "GenuineIntel"; then - if test $cpu_family -ge 6; then - cpu_set="pentiumpro pentium i486 i386"; - elif test $cpu_family -eq 5; then - cpu_set="pentium i486 i386"; - elif test $cpu_family -eq 4; then - cpu_set="i486 i386" - else - cpu_set="i386" - fi -fi - -for ac_arg in $cpu_set; -do - CFLAGS="$ac_save_CFLAGS -mcpu=$ac_arg -march=$ac_arg -DCPU=$ac_arg" - AC_TRY_COMPILE([],[int i],mysql_cv_cpu=$ac_arg; break;, mysql_cv_cpu="unknown") -done - -if test "$mysql_cv_cpu" = "unknown" -then - CFLAGS="$ac_save_CFLAGS" - AC_MSG_RESULT(none) -else - AC_MSG_RESULT($mysql_cv_cpu) -fi -]])) - -AC_DEFUN([MYSQL_CHECK_VIO], [ - AC_ARG_WITH([vio], - [ --with-vio Include the Virtual IO support], - [vio="$withval"], - [vio=no]) - - if test "$vio" = "yes" - then - vio_dir="vio" - vio_libs="../vio/libvio.la" - AC_DEFINE(HAVE_VIO, 1) - else - vio_dir="" - vio_libs="" - fi - AC_SUBST([vio_dir]) - AC_SUBST([vio_libs]) -]) - -AC_DEFUN([MYSQL_FIND_OPENSSL], [ - incs="$1" - libs="$2" - case "$incs---$libs" in - ---) - for d in /usr/ssl/include /usr/local/ssl/include /usr/include \ -/usr/include/ssl /opt/ssl/include /opt/openssl/include \ -/usr/local/ssl/include /usr/local/include /usr/freeware/include ; do - if test -f $d/openssl/ssl.h ; then - OPENSSL_INCLUDE=-I$d - fi - done - - for d in /usr/ssl/lib /usr/local/ssl/lib /usr/lib/openssl \ -/usr/lib /usr/lib64 /opt/ssl/lib /opt/openssl/lib \ -/usr/freeware/lib32 /usr/local/lib/ ; do - if test -f $d/libssl.a || test -f $d/libssl.so || test -f $d/libssl.dylib ; then - OPENSSL_LIB=$d - fi - done - ;; - ---* | *---) - AC_MSG_ERROR([if either 'includes' or 'libs' is specified, both must be specified]) - ;; - * ) - if test -f $incs/openssl/ssl.h ; then - OPENSSL_INCLUDE=-I$incs - fi - if test -f $libs/libssl.a || test -f $libs/libssl.so || test -f $libs/libssl.dylib ; then - OPENSSL_LIB=$libs - fi - ;; - esac - - # On RedHat 9 we need kerberos to compile openssl - for d in /usr/kerberos/include - do - if test -f $d/krb5.h ; then - OPENSSL_KERBEROS_INCLUDE="$d" - fi - done - - - if test -z "$OPENSSL_LIB" -o -z "$OPENSSL_INCLUDE" ; then - echo "Could not find an installation of OpenSSL" - if test -n "$OPENSSL_LIB" ; then - if test "$IS_LINUX" = "true"; then - echo "Looks like you've forgotten to install OpenSSL development RPM" - fi - fi - exit 1 - fi - -]) - -AC_DEFUN([MYSQL_CHECK_OPENSSL], [ -AC_MSG_CHECKING(for OpenSSL) - AC_ARG_WITH([openssl], - [ --with-openssl[=DIR] Include the OpenSSL support], - [openssl="$withval"], - [openssl=no]) - - AC_ARG_WITH([openssl-includes], - [ - --with-openssl-includes=DIR - Find OpenSSL headers in DIR], - [openssl_includes="$withval"], - [openssl_includes=""]) - - AC_ARG_WITH([openssl-libs], - [ - --with-openssl-libs=DIR - Find OpenSSL libraries in DIR], - [openssl_libs="$withval"], - [openssl_libs=""]) - - if test "$openssl" != "no" - then - if test "$openssl" != "yes" - then - if test -z "$openssl_includes" - then - openssl_includes="$openssl/include" - fi - if test -z "$openssl_libs" - then - openssl_libs="$openssl/lib" - fi - fi - MYSQL_FIND_OPENSSL([$openssl_includes], [$openssl_libs]) - #force VIO use - vio_dir="vio" - vio_libs="../vio/libvio.la" - AC_DEFINE([HAVE_VIO], [1], [Virtual IO]) - AC_MSG_RESULT(yes) - openssl_libs="-L$OPENSSL_LIB -lssl -lcrypto" - # Don't set openssl_includes to /usr/include as this gives us a lot of - # compiler warnings when using gcc 3.x - openssl_includes="" - if test "$OPENSSL_INCLUDE" != "-I/usr/include" - then - openssl_includes="$OPENSSL_INCLUDE" - fi - if test "$OPENSSL_KERBEROS_INCLUDE" - then - openssl_includes="$openssl_includes -I$OPENSSL_KERBEROS_INCLUDE" - fi - AC_DEFINE([HAVE_OPENSSL], [1], [OpenSSL]) - - # openssl-devel-0.9.6 requires dlopen() and we can't link staticly - # on many platforms (We should actually test this here, but it's quite - # hard) to do as we are doing libtool for linking. - using_static="" - case "$CLIENT_EXTRA_LDFLAGS $MYSQLD_EXTRA_LDFLAGS" in - *-all-static*) using_static="yes" ;; - esac - if test "$using_static" = "yes" - then - echo "You can't use the --all-static link option when using openssl." - exit 1 - fi - NON_THREADED_CLIENT_LIBS="$NON_THREADED_CLIENT_LIBS $openssl_libs" - else - AC_MSG_RESULT(no) - if test ! -z "$openssl_includes" - then - AC_MSG_ERROR(Can't have --with-openssl-includes without --with-openssl); - fi - if test ! -z "$openssl_libs" - then - AC_MSG_ERROR(Can't have --with-openssl-libs without --with-openssl); - fi - fi - AC_SUBST(openssl_libs) - AC_SUBST(openssl_includes) -]) - - -AC_DEFUN([MYSQL_CHECK_MYSQLFS], [ - AC_ARG_WITH([mysqlfs], - [ - --with-mysqlfs Include the corba-based MySQL file system], - [mysqlfs="$withval"], - [mysqlfs=no]) - -dnl Call MYSQL_CHECK_ORBIT even if mysqlfs == no, so that @orbit_*@ -dnl get substituted. - MYSQL_CHECK_ORBIT - - AC_MSG_CHECKING(if we should build MySQLFS) - fs_dirs="" - if test "$mysqlfs" = "yes" - then - if test -n "$orbit_exec_prefix" - then - fs_dirs=fs - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT(disabled because ORBIT, the CORBA ORB, was not found) - fi - else - AC_MSG_RESULT([no]) - fi - AC_SUBST([fs_dirs]) -]) - -AC_DEFUN([MYSQL_CHECK_ORBIT], [ -AC_MSG_CHECKING(for ORBit) -orbit_config_path=`which orbit-config` -if test -n "$orbit_config_path" -a $? = 0 -then - orbit_exec_prefix=`orbit-config --exec-prefix` - orbit_includes=`orbit-config --cflags server` - orbit_libs=`orbit-config --libs server` - orbit_idl="$orbit_exec_prefix/bin/orbit-idl" - AC_MSG_RESULT(found!) - AC_DEFINE([HAVE_ORBIT], [1], [ORBIT]) -else - orbit_exec_prefix= - orbit_includes= - orbit_libs= - orbit_idl= - AC_MSG_RESULT(not found) -fi -AC_SUBST(orbit_includes) -AC_SUBST(orbit_libs) -AC_SUBST(orbit_idl) -]) - -AC_DEFUN([MYSQL_CHECK_ISAM], [ - AC_ARG_WITH([isam], [ - --with-isam Enable the ISAM table type], - [with_isam="$withval"], - [with_isam=no]) - - isam_libs= - if test X"$with_isam" = X"yes" - then - AC_DEFINE([HAVE_ISAM], [1], [Using old ISAM tables]) - isam_libs="\$(top_builddir)/isam/libnisam.a\ - \$(top_builddir)/merge/libmerge.a" - fi - AC_SUBST(isam_libs) -]) - - -dnl --------------------------------------------------------------------------- -dnl Macro: MYSQL_CHECK_BDB -dnl Sets HAVE_BERKELEY_DB if inst library is found -dnl Makes sure db version is correct. -dnl Looks in $srcdir for Berkeley distribution if not told otherwise -dnl --------------------------------------------------------------------------- - -AC_DEFUN([MYSQL_CHECK_BDB], [ - AC_ARG_WITH([berkeley-db], - [ - --with-berkeley-db[=DIR] - Use BerkeleyDB located in DIR], - [bdb="$withval"], - [bdb=no]) - - AC_ARG_WITH([berkeley-db-includes], - [ - --with-berkeley-db-includes=DIR - Find Berkeley DB headers in DIR], - [bdb_includes="$withval"], - [bdb_includes=default]) - - AC_ARG_WITH([berkeley-db-libs], - [ - --with-berkeley-db-libs=DIR - Find Berkeley DB libraries in DIR], - [bdb_libs="$withval"], - [bdb_libs=default]) - - AC_MSG_CHECKING([for BerkeleyDB]) - -dnl SORT OUT THE SUPPLIED ARGUMENTS TO DETERMINE WHAT TO DO -dnl echo "DBG1: bdb='$bdb'; incl='$bdb_includes'; lib='$bdb_libs'" - have_berkeley_db=no - case "$bdb" in - no ) - mode=no - AC_MSG_RESULT([no]) - ;; - yes | default ) - case "$bdb_includes---$bdb_libs" in - default---default ) - mode=search-$bdb - AC_MSG_RESULT([searching...]) - ;; - default---* | *---default | yes---* | *---yes ) - AC_MSG_ERROR([if either 'includes' or 'libs' is specified, both must be specified]) - ;; - * ) - mode=supplied-two - AC_MSG_RESULT([supplied]) - ;; - esac - ;; - * ) - mode=supplied-one - AC_MSG_RESULT([supplied]) - ;; - esac - -dnl echo "DBG2: [$mode] bdb='$bdb'; incl='$bdb_includes'; lib='$bdb_libs'" - - case $mode in - no ) - bdb_includes= - bdb_libs= - bdb_libs_with_path= - ;; - supplied-two ) - MYSQL_CHECK_INSTALLED_BDB([$bdb_includes], [$bdb_libs]) - case $bdb_dir_ok in - installed ) mode=yes ;; - * ) AC_MSG_ERROR([didn't find valid BerkeleyDB: $bdb_dir_ok]) ;; - esac - ;; - supplied-one ) - MYSQL_CHECK_BDB_DIR([$bdb]) - case $bdb_dir_ok in - source ) mode=compile ;; - installed ) mode=yes ;; - * ) AC_MSG_ERROR([didn't find valid BerkeleyDB: $bdb_dir_ok]) ;; - esac - ;; - search-* ) - MYSQL_SEARCH_FOR_BDB - case $bdb_dir_ok in - source ) mode=compile ;; - installed ) mode=yes ;; - * ) - # not found - case $mode in - *-yes ) AC_MSG_ERROR([no suitable BerkeleyDB found]) ;; - * ) mode=no ;; - esac - bdb_includes= - bdb_libs= - bdb_libs_with_path= - ;; - esac - ;; - *) - AC_MSG_ERROR([impossible case condition '$mode': please report this to bugs@lists.mysql.com]) - ;; - esac - -dnl echo "DBG3: [$mode] bdb='$bdb'; incl='$bdb_includes'; lib='$bdb_libs'" - case $mode in - no ) - AC_MSG_RESULT([Not using Berkeley DB]) - ;; - yes ) - have_berkeley_db="yes" - AC_MSG_RESULT([Using Berkeley DB in '$bdb_includes']) - ;; - compile ) - have_berkeley_db="$bdb" - AC_MSG_RESULT([Compiling Berekeley DB in '$have_berkeley_db']) - ;; - * ) - AC_MSG_ERROR([impossible case condition '$mode': please report this to bugs@lists.mysql.com]) - ;; - esac - - AC_SUBST(bdb_includes) - AC_SUBST(bdb_libs) - AC_SUBST(bdb_libs_with_path) -]) - -AC_DEFUN([MYSQL_CHECK_INSTALLED_BDB], [ -dnl echo ["MYSQL_CHECK_INSTALLED_BDB ($1) ($2)"] - inc="$1" - lib="$2" - if test -f "$inc/db.h" - then - MYSQL_CHECK_BDB_VERSION([$inc/db.h], - [.*#define[ ]*], [[ ][ ]*]) - - if test X"$bdb_version_ok" = Xyes; then - save_LDFLAGS="$LDFLAGS" - LDFLAGS="-L$lib $LDFLAGS" - AC_CHECK_LIB(db,db_env_create, [ - bdb_dir_ok=installed - MYSQL_TOP_BUILDDIR([inc]) - MYSQL_TOP_BUILDDIR([lib]) - bdb_includes="-I$inc" - bdb_libs="-L$lib -ldb" - bdb_libs_with_path="$lib/libdb.a" - ]) - LDFLAGS="$save_LDFLAGS" - else - bdb_dir_ok="$bdb_version_ok" - fi - else - bdb_dir_ok="no db.h file in '$inc'" - fi -]) - -AC_DEFUN([MYSQL_CHECK_BDB_DIR], [ -dnl ([$bdb]) -dnl echo ["MYSQL_CHECK_BDB_DIR ($1)"] - dir="$1" - - MYSQL_CHECK_INSTALLED_BDB([$dir/include], [$dir/lib]) - - if test X"$bdb_dir_ok" != Xinstalled; then - # test to see if it's a source dir - rel="$dir/dist/RELEASE" - if test -f "$rel"; then - MYSQL_CHECK_BDB_VERSION([$rel], [], [=]) - if test X"$bdb_version_ok" = Xyes; then - bdb_dir_ok=source - bdb="$dir" - MYSQL_TOP_BUILDDIR([dir]) - bdb_includes="-I$dir/build_unix" - bdb_libs="-L$dir/build_unix -ldb" - bdb_libs_with_path="$dir/build_unix/libdb.a" - else - bdb_dir_ok="$bdb_version_ok" - fi - else - bdb_dir_ok="'$dir' doesn't look like a BDB directory ($bdb_dir_ok)" - fi - fi -]) - -AC_DEFUN([MYSQL_SEARCH_FOR_BDB], [ -dnl echo ["MYSQL_SEARCH_FOR_BDB"] - bdb_dir_ok="no BerkeleyDB found" - - for test_dir in $srcdir/bdb $srcdir/db-*.*.* /usr/local/BerkeleyDB*; do -dnl echo "-----------> Looking at ($test_dir; `cd $test_dir && pwd`)" - MYSQL_CHECK_BDB_DIR([$test_dir]) - if test X"$bdb_dir_ok" = Xsource || test X"$bdb_dir_ok" = Xinstalled; then -dnl echo "-----------> Found it ($bdb), ($srcdir)" -dnl This is needed so that 'make distcheck' works properly (VPATH build). -dnl VPATH build won't work if bdb is not under the source tree; but in -dnl that case, hopefully people will just make and install inside the -dnl tree, or install BDB first, and then use the installed version. - case "$bdb" in - "$srcdir/"* ) bdb=`echo "$bdb" | sed -e "s,^$srcdir/,,"` ;; - esac - break - fi - done -]) - -dnl MYSQL_CHECK_BDB_VERSION takes 3 arguments: -dnl 1) the file to look in -dnl 2) the search pattern before DB_VERSION_XXX -dnl 3) the search pattern between DB_VERSION_XXX and the number -dnl It assumes that the number is the last thing on the line -AC_DEFUN([MYSQL_CHECK_BDB_VERSION], [ - db_major=`sed -e '/^[$2]DB_VERSION_MAJOR[$3]/ !d' -e 's///' [$1]` - db_minor=`sed -e '/^[$2]DB_VERSION_MINOR[$3]/ !d' -e 's///' [$1]` - db_patch=`sed -e '/^[$2]DB_VERSION_PATCH[$3]/ !d' -e 's///' [$1]` - test -z "$db_major" && db_major=0 - test -z "$db_minor" && db_minor=0 - test -z "$db_patch" && db_patch=0 - - # This is ugly, but about as good as it can get -# mysql_bdb= -# if test $db_major -eq 3 && test $db_minor -eq 2 && test $db_patch -eq 3 -# then -# mysql_bdb=h -# elif test $db_major -eq 3 && test $db_minor -eq 2 && test $db_patch -eq 9 -# then -# want_bdb_version="3.2.9a" # hopefully this will stay up-to-date -# mysql_bdb=a -# fi - -dnl RAM: -want_bdb_version="4.1.24" -bdb_version_ok=yes - -# if test -n "$mysql_bdb" && \ -# grep "DB_VERSION_STRING.*:.*$mysql_bdb: " [$1] > /dev/null -# then -# bdb_version_ok=yes -# else -# bdb_version_ok="invalid version $db_major.$db_minor.$db_patch" -# bdb_version_ok="$bdb_version_ok (must be version 3.2.3h or $want_bdb_version)" -# fi -]) - -AC_DEFUN([MYSQL_TOP_BUILDDIR], [ - case "$[$1]" in - /* ) ;; # don't do anything with an absolute path - "$srcdir"/* ) - # If BDB is under the source directory, we need to look under the - # build directory for bdb/build_unix. - # NOTE: I'm being lazy, and assuming the user did not specify - # something like --with-berkeley-db=bdb (it would be missing "./"). - [$1]="\$(top_builddir)/"`echo "$[$1]" | sed -e "s,^$srcdir/,,"` - ;; - * ) - AC_MSG_ERROR([The BDB directory must be directly under the MySQL source directory, or be specified using the full path. ('$srcdir'; '$[$1]')]) - ;; - esac - if test X"$[$1]" != "/" - then - [$1]=`echo $[$1] | sed -e 's,/$,,'` - fi -]) - -dnl --------------------------------------------------------------------------- -dnl END OF MYSQL_CHECK_BDB SECTION -dnl --------------------------------------------------------------------------- - -dnl --------------------------------------------------------------------------- -dnl Macro: MYSQL_CHECK_INNODB -dnl Sets HAVE_INNOBASE_DB if --with-innodb is used -dnl --------------------------------------------------------------------------- - -AC_DEFUN([MYSQL_CHECK_INNODB], [ - AC_ARG_WITH([innodb], - [ - --without-innodb Do not include the InnoDB table handler], - [innodb="$withval"], - [innodb=yes]) - - AC_MSG_CHECKING([for Innodb]) - - have_innodb=no - innodb_includes= - innodb_libs= - case "$innodb" in - yes ) - AC_MSG_RESULT([Using Innodb]) - AC_DEFINE([HAVE_INNOBASE_DB], [1], [Using Innobase DB]) - have_innodb="yes" - innodb_includes="-I../innobase/include" - innodb_system_libs="" -dnl Some libs are listed several times, in order for gcc to sort out -dnl circular references. - innodb_libs="\ - \$(top_builddir)/innobase/usr/libusr.a\ - \$(top_builddir)/innobase/srv/libsrv.a\ - \$(top_builddir)/innobase/dict/libdict.a\ - \$(top_builddir)/innobase/que/libque.a\ - \$(top_builddir)/innobase/srv/libsrv.a\ - \$(top_builddir)/innobase/ibuf/libibuf.a\ - \$(top_builddir)/innobase/row/librow.a\ - \$(top_builddir)/innobase/pars/libpars.a\ - \$(top_builddir)/innobase/btr/libbtr.a\ - \$(top_builddir)/innobase/trx/libtrx.a\ - \$(top_builddir)/innobase/read/libread.a\ - \$(top_builddir)/innobase/usr/libusr.a\ - \$(top_builddir)/innobase/buf/libbuf.a\ - \$(top_builddir)/innobase/ibuf/libibuf.a\ - \$(top_builddir)/innobase/eval/libeval.a\ - \$(top_builddir)/innobase/log/liblog.a\ - \$(top_builddir)/innobase/fsp/libfsp.a\ - \$(top_builddir)/innobase/fut/libfut.a\ - \$(top_builddir)/innobase/fil/libfil.a\ - \$(top_builddir)/innobase/lock/liblock.a\ - \$(top_builddir)/innobase/mtr/libmtr.a\ - \$(top_builddir)/innobase/page/libpage.a\ - \$(top_builddir)/innobase/rem/librem.a\ - \$(top_builddir)/innobase/thr/libthr.a\ - \$(top_builddir)/innobase/sync/libsync.a\ - \$(top_builddir)/innobase/data/libdata.a\ - \$(top_builddir)/innobase/mach/libmach.a\ - \$(top_builddir)/innobase/ha/libha.a\ - \$(top_builddir)/innobase/dyn/libdyn.a\ - \$(top_builddir)/innobase/mem/libmem.a\ - \$(top_builddir)/innobase/sync/libsync.a\ - \$(top_builddir)/innobase/ut/libut.a\ - \$(top_builddir)/innobase/os/libos.a\ - \$(top_builddir)/innobase/ut/libut.a" - - AC_CHECK_LIB(rt, aio_read, [innodb_system_libs="-lrt"]) - ;; - * ) - AC_MSG_RESULT([Not using Innodb]) - ;; - esac - - AC_SUBST(innodb_includes) - AC_SUBST(innodb_libs) - AC_SUBST(innodb_system_libs) -]) - -dnl --------------------------------------------------------------------------- -dnl END OF MYSQL_CHECK_INNODB SECTION -dnl --------------------------------------------------------------------------- - -dnl --------------------------------------------------------------------------- -dnl Macro: MYSQL_CHECK_EXAMPLEDB -dnl Sets HAVE_EXAMPLE_DB if --with-example-storage-engine is used -dnl --------------------------------------------------------------------------- -AC_DEFUN([MYSQL_CHECK_EXAMPLEDB], [ - AC_ARG_WITH([example-storage-engine], - [ - --with-example-storage-engine - Enable the Example Storage Engine], - [exampledb="$withval"], - [exampledb=no]) - AC_MSG_CHECKING([for example storage engine]) - - case "$exampledb" in - yes ) - AC_DEFINE([HAVE_EXAMPLE_DB], [1], [Builds Example DB]) - AC_MSG_RESULT([yes]) - [exampledb=yes] - ;; - * ) - AC_MSG_RESULT([no]) - [exampledb=no] - ;; - esac - -]) -dnl --------------------------------------------------------------------------- -dnl END OF MYSQL_CHECK_EXAMPLE SECTION -dnl --------------------------------------------------------------------------- - -dnl --------------------------------------------------------------------------- -dnl Macro: MYSQL_CHECK_ARCHIVEDB -dnl Sets HAVE_ARCHIVE_DB if --with-archive-storage-engine is used -dnl --------------------------------------------------------------------------- -AC_DEFUN([MYSQL_CHECK_ARCHIVEDB], [ - AC_ARG_WITH([archive-storage-engine], - [ - --with-archive-storage-engine - Enable the Archive Storage Engine], - [archivedb="$withval"], - [archivedb=no]) - AC_MSG_CHECKING([for archive storage engine]) - - case "$archivedb" in - yes ) - AC_DEFINE([HAVE_ARCHIVE_DB], [1], [Builds Archive Storage Engine]) - AC_MSG_RESULT([yes]) - [archivedb=yes] - ;; - * ) - AC_MSG_RESULT([no]) - [archivedb=no] - ;; - esac - -]) -dnl --------------------------------------------------------------------------- -dnl END OF MYSQL_CHECK_ARCHIVE SECTION -dnl --------------------------------------------------------------------------- - -dnl --------------------------------------------------------------------------- -dnl Macro: MYSQL_CHECK_CSVDB -dnl Sets HAVE_CSV_DB if --with-csv-storage-engine is used -dnl --------------------------------------------------------------------------- -AC_DEFUN([MYSQL_CHECK_CSVDB], [ - AC_ARG_WITH([csv-storage-engine], - [ - --with-csv-storage-engine - Enable the CSV Storage Engine], - [csvdb="$withval"], - [csvdb=no]) - AC_MSG_CHECKING([for csv storage engine]) - - case "$csvdb" in - yes ) - AC_DEFINE([HAVE_CSV_DB], [1], [Builds the CSV Storage Engine]) - AC_MSG_RESULT([yes]) - [csvdb=yes] - ;; - * ) - AC_MSG_RESULT([no]) - [csvdb=no] - ;; - esac - -]) -dnl --------------------------------------------------------------------------- -dnl END OF MYSQL_CHECK_CSV SECTION -dnl --------------------------------------------------------------------------- - - -dnl --------------------------------------------------------------------------- -dnl Macro: MYSQL_CHECK_NDBCLUSTER -dnl Sets HAVE_NDBCLUSTER_DB if --with-ndbcluster is used -dnl --------------------------------------------------------------------------- - -AC_DEFUN([MYSQL_CHECK_NDB_OPTIONS], [ - AC_ARG_WITH([ndb-sci], - AC_HELP_STRING([--with-ndb-sci=DIR], - [Provide MySQL with a custom location of - sci library. Given DIR, sci library is - assumed to be in $DIR/lib and header files - in $DIR/include.]), - [mysql_sci_dir=${withval}], - [mysql_sci_dir=""]) - - case "$mysql_sci_dir" in - "no" ) - have_ndb_sci=no - AC_MSG_RESULT([-- not including sci transporter]) - ;; - * ) - if test -f "$mysql_sci_dir/lib/libsisci.a" -a \ - -f "$mysql_sci_dir/include/sisci_api.h"; then - NDB_SCI_INCLUDES="-I$mysql_sci_dir/include" - NDB_SCI_LIBS="-L$mysql_sci_dir/lib -lsisci" - AC_MSG_RESULT([-- including sci transporter]) - AC_DEFINE([NDB_SCI_TRANSPORTER], [1], - [Including Ndb Cluster DB sci transporter]) - AC_SUBST(NDB_SCI_INCLUDES) - AC_SUBST(NDB_SCI_LIBS) - have_ndb_sci="yes" - AC_MSG_RESULT([found sci transporter in $mysql_sci_dir/{include, lib}]) - else - AC_MSG_RESULT([could not find sci transporter in $mysql_sci_dir/{include, lib}]) - fi - ;; - esac - - AC_ARG_WITH([ndb-shm], - [ - --with-ndb-shm Include the NDB Cluster shared memory transporter], - [ndb_shm="$withval"], - [ndb_shm=no]) - AC_ARG_WITH([ndb-test], - [ - --with-ndb-test Include the NDB Cluster ndbapi test programs], - [ndb_test="$withval"], - [ndb_test=no]) - AC_ARG_WITH([ndb-docs], - [ - --with-ndb-docs Include the NDB Cluster ndbapi and mgmapi documentation], - [ndb_docs="$withval"], - [ndb_docs=no]) - AC_ARG_WITH([ndb-port], - [ - --with-ndb-port Port for NDB Cluster management server], - [ndb_port="$withval"], - [ndb_port="default"]) - AC_ARG_WITH([ndb-port-base], - [ - --with-ndb-port-base Base port for NDB Cluster transporters], - [ndb_port_base="$withval"], - [ndb_port_base="default"]) - - AC_MSG_CHECKING([for NDB Cluster options]) - AC_MSG_RESULT([]) - - have_ndb_shm=no - case "$ndb_shm" in - yes ) - AC_MSG_RESULT([-- including shared memory transporter]) - AC_DEFINE([NDB_SHM_TRANSPORTER], [1], - [Including Ndb Cluster DB shared memory transporter]) - have_ndb_shm="yes" - ;; - * ) - AC_MSG_RESULT([-- not including shared memory transporter]) - ;; - esac - - have_ndb_test=no - case "$ndb_test" in - yes ) - AC_MSG_RESULT([-- including ndbapi test programs]) - have_ndb_test="yes" - ;; - * ) - AC_MSG_RESULT([-- not including ndbapi test programs]) - ;; - esac - - have_ndb_docs=no - case "$ndb_docs" in - yes ) - AC_MSG_RESULT([-- including ndbapi and mgmapi documentation]) - have_ndb_docs="yes" - ;; - * ) - AC_MSG_RESULT([-- not including ndbapi and mgmapi documentation]) - ;; - esac - - AC_MSG_RESULT([done.]) -]) - -AC_DEFUN([MYSQL_CHECK_NDBCLUSTER], [ - AC_ARG_WITH([ndbcluster], - [ - --with-ndbcluster Include the NDB Cluster table handler], - [ndbcluster="$withval"], - [ndbcluster=no]) - - AC_MSG_CHECKING([for NDB Cluster]) - - have_ndbcluster=no - ndbcluster_includes= - ndbcluster_libs= - ndb_mgmclient_libs= - case "$ndbcluster" in - yes ) - AC_MSG_RESULT([Using NDB Cluster]) - AC_DEFINE([HAVE_NDBCLUSTER_DB], [1], [Using Ndb Cluster DB]) - have_ndbcluster="yes" - ndbcluster_includes="-I../ndb/include -I../ndb/include/ndbapi" - ndbcluster_libs="\$(top_builddir)/ndb/src/.libs/libndbclient.a" - ndbcluster_system_libs="" - ndb_mgmclient_libs="\$(top_builddir)/ndb/src/mgmclient/libndbmgmclient.la" - MYSQL_CHECK_NDB_OPTIONS - ;; - * ) - AC_MSG_RESULT([Not using NDB Cluster]) - ;; - esac - - AM_CONDITIONAL([HAVE_NDBCLUSTER_DB], [ test "$have_ndbcluster" = "yes" ]) - AC_SUBST(ndbcluster_includes) - AC_SUBST(ndbcluster_libs) - AC_SUBST(ndbcluster_system_libs) - AC_SUBST(ndb_mgmclient_libs) -]) - -dnl --------------------------------------------------------------------------- -dnl END OF MYSQL_CHECK_NDBCLUSTER SECTION -dnl --------------------------------------------------------------------------- - - -dnl By default, many hosts won't let programs access large files; -dnl one must use special compiler options to get large-file access to work. -dnl For more details about this brain damage please see: -dnl http://www.sas.com/standards/large.file/x_open.20Mar96.html - -dnl Written by Paul Eggert . - -dnl Internal subroutine of AC_SYS_LARGEFILE. -dnl AC_SYS_LARGEFILE_FLAGS(FLAGSNAME) -AC_DEFUN([AC_SYS_LARGEFILE_FLAGS], - [AC_CACHE_CHECK([for $1 value to request large file support], - ac_cv_sys_largefile_$1, - [if ($GETCONF LFS_$1) >conftest.1 2>conftest.2 && test ! -s conftest.2 - then - ac_cv_sys_largefile_$1=`cat conftest.1` - else - ac_cv_sys_largefile_$1=no - ifelse($1, CFLAGS, - [case "$host_os" in - # HP-UX 10.20 requires -D__STDC_EXT__ with gcc 2.95.1. -changequote(, )dnl - hpux10.[2-9][0-9]* | hpux1[1-9]* | hpux[2-9][0-9]*) -changequote([, ])dnl - if test "$GCC" = yes; then - case `$CC --version 2>/dev/null` in - 2.95.*) ac_cv_sys_largefile_CFLAGS=-D__STDC_EXT__ ;; - esac - fi - ;; - # IRIX 6.2 and later require cc -n32. -changequote(, )dnl - irix6.[2-9]* | irix6.1[0-9]* | irix[7-9].* | irix[1-9][0-9]*) -changequote([, ])dnl - if test "$GCC" != yes; then - ac_cv_sys_largefile_CFLAGS=-n32 - fi - esac - if test "$ac_cv_sys_largefile_CFLAGS" != no; then - ac_save_CC="$CC" - CC="$CC $ac_cv_sys_largefile_CFLAGS" - AC_TRY_LINK(, , , ac_cv_sys_largefile_CFLAGS=no) - CC="$ac_save_CC" - fi]) - fi - rm -f conftest*])]) - -dnl Internal subroutine of AC_SYS_LARGEFILE. -dnl AC_SYS_LARGEFILE_SPACE_APPEND(VAR, VAL) -AC_DEFUN([AC_SYS_LARGEFILE_SPACE_APPEND], - [case $2 in - no) ;; - ?*) - case "[$]$1" in - '') $1=$2 ;; - *) $1=[$]$1' '$2 ;; - esac ;; - esac]) - -dnl Internal subroutine of AC_SYS_LARGEFILE. -dnl AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, CACHE-VAR, COMMENT, CODE-TO-SET-DEFAULT) -AC_DEFUN([AC_SYS_LARGEFILE_MACRO_VALUE], - [AC_CACHE_CHECK([for $1], $2, - [$2=no -changequote(, )dnl - for ac_flag in $ac_cv_sys_largefile_CFLAGS no; do - case "$ac_flag" in - -D$1) - $2=1 ;; - -D$1=*) - $2=`expr " $ac_flag" : '[^=]*=\(.*\)'` ;; - esac - done - $4 -changequote([, ])dnl - ]) - if test "[$]$2" != no; then - AC_DEFINE_UNQUOTED([$1], [$]$2, [$3]) - fi]) - -AC_DEFUN([MYSQL_SYS_LARGEFILE], - [AC_REQUIRE([AC_CANONICAL_HOST]) - AC_ARG_ENABLE(largefile, - [ --disable-largefile Omit support for large files]) - if test "$enable_largefile" != no; then - AC_CHECK_TOOL(GETCONF, getconf) - AC_SYS_LARGEFILE_FLAGS(CFLAGS) - AC_SYS_LARGEFILE_FLAGS(LDFLAGS) - AC_SYS_LARGEFILE_FLAGS(LIBS) - - for ac_flag in $ac_cv_sys_largefile_CFLAGS no; do - case "$ac_flag" in - no) ;; - -D_FILE_OFFSET_BITS=*) ;; - -D_LARGEFILE_SOURCE | -D_LARGEFILE_SOURCE=*) ;; - -D_LARGE_FILES | -D_LARGE_FILES=*) ;; - -D?* | -I?*) - AC_SYS_LARGEFILE_SPACE_APPEND(CPPFLAGS, "$ac_flag") ;; - *) - AC_SYS_LARGEFILE_SPACE_APPEND(CFLAGS, "$ac_flag") ;; - esac - done - AC_SYS_LARGEFILE_SPACE_APPEND(LDFLAGS, "$ac_cv_sys_largefile_LDFLAGS") - AC_SYS_LARGEFILE_SPACE_APPEND(LIBS, "$ac_cv_sys_largefile_LIBS") - - AC_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, - ac_cv_sys_file_offset_bits, - [Number of bits in a file offset, on hosts where this is settable.], - [case "$host_os" in - # HP-UX 10.20 and later - hpux10.[2-9][0-9]* | hpux1[1-9]* | hpux[2-9][0-9]*) - ac_cv_sys_file_offset_bits=64 ;; - # We can't declare _FILE_OFFSET_BITS here as this will cause - # compile errors as AC_PROG_CC adds include files in confdefs.h - # We solve this (until autoconf is fixed) by instead declaring it - # as define instead - solaris2.[8,9]) - CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64" - CXXFLAGS="$CXXFLAGS -D_FILE_OFFSET_BITS=64" - ac_cv_sys_file_offset_bits=no ;; - esac]) - AC_SYS_LARGEFILE_MACRO_VALUE(_LARGEFILE_SOURCE, - ac_cv_sys_largefile_source, - [makes fseeko etc. visible, on some hosts.], - [case "$host_os" in - # HP-UX 10.20 and later - hpux10.[2-9][0-9]* | hpux1[1-9]* | hpux[2-9][0-9]*) - ac_cv_sys_largefile_source=1 ;; - esac]) - AC_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES, - ac_cv_sys_large_files, - [Large files support on AIX-style hosts.], - [case "$host_os" in - # AIX 4.2 and later - aix4.[2-9]* | aix4.1[0-9]* | aix[5-9].* | aix[1-9][0-9]*) - ac_cv_sys_large_files=1 ;; - esac]) - fi - ]) - - -# Local version of _AC_PROG_CXX_EXIT_DECLARATION that does not -# include #stdlib.h as default as this breaks things on Solaris -# (Conflicts with pthreads and big file handling) - -m4_define([_AC_PROG_CXX_EXIT_DECLARATION], -[for ac_declaration in \ - ''\ - 'extern "C" void std::exit (int) throw (); using std::exit;' \ - 'extern "C" void std::exit (int); using std::exit;' \ - 'extern "C" void exit (int) throw ();' \ - 'extern "C" void exit (int);' \ - 'void exit (int);' \ - '#include ' -do - _AC_COMPILE_IFELSE([AC_LANG_PROGRAM([@%:@include -$ac_declaration], - [exit (42);])], - [], - [continue]) - _AC_COMPILE_IFELSE([AC_LANG_PROGRAM([$ac_declaration], - [exit (42);])], - [break]) -done -rm -f conftest* -if test -n "$ac_declaration"; then - echo '#ifdef __cplusplus' >>confdefs.h - echo $ac_declaration >>confdefs.h - echo '#endif' >>confdefs.h -fi -])# _AC_PROG_CXX_EXIT_DECLARATION - -dnl --------------------------------------------------------------------------- - From 4fb9a5fbd9b38d74a7af262bd9611508d0ceaec8 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 2 Dec 2004 18:53:49 -0800 Subject: [PATCH 3/6] Syntax fix, plus an update for version. build/ac-macros/check_cpu.m4: Syntax fix configure.in: Updated for version. --- build/ac-macros/check_cpu.m4 | 2 +- configure.in | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build/ac-macros/check_cpu.m4 b/build/ac-macros/check_cpu.m4 index 3279c66f08d..d551f47769e 100644 --- a/build/ac-macros/check_cpu.m4 +++ b/build/ac-macros/check_cpu.m4 @@ -43,5 +43,5 @@ then else AC_MSG_RESULT($mysql_cv_cpu) fi -]])) +])]) diff --git a/configure.in b/configure.in index ba199397681..1ebb5472b42 100644 --- a/configure.in +++ b/configure.in @@ -13,7 +13,7 @@ AC_CANONICAL_SYSTEM # before we call AM_INIT_AUTOMAKE. # -Brian sinclude(build/ac-macros/sanity.m4) -AM_INIT_AUTOMAKE(mysql, 5.0.2-alpha) +AM_INIT_AUTOMAKE(mysql, 5.0.3-alpha) AM_CONFIG_HEADER(config.h) PROTOCOL_VERSION=10 From 623c733895dd490fce64ec864713279570ea37f3 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 4 Dec 2004 11:00:33 -0800 Subject: [PATCH 4/6] Fixing problem with case insitive file systems. Would you believe that I wrote all of this on a Mac? I just happen to be not using HFS for the partition I did this work on. Oops :) config/ac-macros/alloca.m4: mvdir config/ac-macros/character_sets.m4: mvdir config/ac-macros/check_cpu.m4: mvdir config/ac-macros/compiler_flag.m4: mvdir config/ac-macros/ha_archive.m4: mvdir config/ac-macros/ha_berkeley.m4: mvdir config/ac-macros/ha_example.m4: mvdir config/ac-macros/ha_innodb.m4: mvdir config/ac-macros/ha_isam.m4: mvdir config/ac-macros/ha_ndbcluster.m4: mvdir config/ac-macros/ha_tina.m4: mvdir config/ac-macros/large_file.m4: mvdir config/ac-macros/misc.m4: mvdir config/ac-macros/mysqlfs.m4: mvdir config/ac-macros/openssl.m4: mvdir config/ac-macros/readline.m4: mvdir config/ac-macros/sanity.m4: mvdir config/ac-macros/zlib.m4: mvdir configure.in: Fix silly little problem with case insensitive filesystems. Funny thing is that I wrote all this on a Mac, but I don't use HFS on that partition so I never noticed that it would be an issue. Oops :) --- {build => config}/ac-macros/alloca.m4 | 0 {build => config}/ac-macros/character_sets.m4 | 0 {build => config}/ac-macros/check_cpu.m4 | 0 {build => config}/ac-macros/compiler_flag.m4 | 0 {build => config}/ac-macros/ha_archive.m4 | 0 {build => config}/ac-macros/ha_berkeley.m4 | 0 {build => config}/ac-macros/ha_example.m4 | 0 {build => config}/ac-macros/ha_innodb.m4 | 0 {build => config}/ac-macros/ha_isam.m4 | 0 {build => config}/ac-macros/ha_ndbcluster.m4 | 0 {build => config}/ac-macros/ha_tina.m4 | 0 {build => config}/ac-macros/large_file.m4 | 0 {build => config}/ac-macros/misc.m4 | 0 {build => config}/ac-macros/mysqlfs.m4 | 0 {build => config}/ac-macros/openssl.m4 | 0 {build => config}/ac-macros/readline.m4 | 0 {build => config}/ac-macros/sanity.m4 | 0 {build => config}/ac-macros/zlib.m4 | 0 configure.in | 36 +++++++++---------- 19 files changed, 18 insertions(+), 18 deletions(-) rename {build => config}/ac-macros/alloca.m4 (100%) rename {build => config}/ac-macros/character_sets.m4 (100%) rename {build => config}/ac-macros/check_cpu.m4 (100%) rename {build => config}/ac-macros/compiler_flag.m4 (100%) rename {build => config}/ac-macros/ha_archive.m4 (100%) rename {build => config}/ac-macros/ha_berkeley.m4 (100%) rename {build => config}/ac-macros/ha_example.m4 (100%) rename {build => config}/ac-macros/ha_innodb.m4 (100%) rename {build => config}/ac-macros/ha_isam.m4 (100%) rename {build => config}/ac-macros/ha_ndbcluster.m4 (100%) rename {build => config}/ac-macros/ha_tina.m4 (100%) rename {build => config}/ac-macros/large_file.m4 (100%) rename {build => config}/ac-macros/misc.m4 (100%) rename {build => config}/ac-macros/mysqlfs.m4 (100%) rename {build => config}/ac-macros/openssl.m4 (100%) rename {build => config}/ac-macros/readline.m4 (100%) rename {build => config}/ac-macros/sanity.m4 (100%) rename {build => config}/ac-macros/zlib.m4 (100%) diff --git a/build/ac-macros/alloca.m4 b/config/ac-macros/alloca.m4 similarity index 100% rename from build/ac-macros/alloca.m4 rename to config/ac-macros/alloca.m4 diff --git a/build/ac-macros/character_sets.m4 b/config/ac-macros/character_sets.m4 similarity index 100% rename from build/ac-macros/character_sets.m4 rename to config/ac-macros/character_sets.m4 diff --git a/build/ac-macros/check_cpu.m4 b/config/ac-macros/check_cpu.m4 similarity index 100% rename from build/ac-macros/check_cpu.m4 rename to config/ac-macros/check_cpu.m4 diff --git a/build/ac-macros/compiler_flag.m4 b/config/ac-macros/compiler_flag.m4 similarity index 100% rename from build/ac-macros/compiler_flag.m4 rename to config/ac-macros/compiler_flag.m4 diff --git a/build/ac-macros/ha_archive.m4 b/config/ac-macros/ha_archive.m4 similarity index 100% rename from build/ac-macros/ha_archive.m4 rename to config/ac-macros/ha_archive.m4 diff --git a/build/ac-macros/ha_berkeley.m4 b/config/ac-macros/ha_berkeley.m4 similarity index 100% rename from build/ac-macros/ha_berkeley.m4 rename to config/ac-macros/ha_berkeley.m4 diff --git a/build/ac-macros/ha_example.m4 b/config/ac-macros/ha_example.m4 similarity index 100% rename from build/ac-macros/ha_example.m4 rename to config/ac-macros/ha_example.m4 diff --git a/build/ac-macros/ha_innodb.m4 b/config/ac-macros/ha_innodb.m4 similarity index 100% rename from build/ac-macros/ha_innodb.m4 rename to config/ac-macros/ha_innodb.m4 diff --git a/build/ac-macros/ha_isam.m4 b/config/ac-macros/ha_isam.m4 similarity index 100% rename from build/ac-macros/ha_isam.m4 rename to config/ac-macros/ha_isam.m4 diff --git a/build/ac-macros/ha_ndbcluster.m4 b/config/ac-macros/ha_ndbcluster.m4 similarity index 100% rename from build/ac-macros/ha_ndbcluster.m4 rename to config/ac-macros/ha_ndbcluster.m4 diff --git a/build/ac-macros/ha_tina.m4 b/config/ac-macros/ha_tina.m4 similarity index 100% rename from build/ac-macros/ha_tina.m4 rename to config/ac-macros/ha_tina.m4 diff --git a/build/ac-macros/large_file.m4 b/config/ac-macros/large_file.m4 similarity index 100% rename from build/ac-macros/large_file.m4 rename to config/ac-macros/large_file.m4 diff --git a/build/ac-macros/misc.m4 b/config/ac-macros/misc.m4 similarity index 100% rename from build/ac-macros/misc.m4 rename to config/ac-macros/misc.m4 diff --git a/build/ac-macros/mysqlfs.m4 b/config/ac-macros/mysqlfs.m4 similarity index 100% rename from build/ac-macros/mysqlfs.m4 rename to config/ac-macros/mysqlfs.m4 diff --git a/build/ac-macros/openssl.m4 b/config/ac-macros/openssl.m4 similarity index 100% rename from build/ac-macros/openssl.m4 rename to config/ac-macros/openssl.m4 diff --git a/build/ac-macros/readline.m4 b/config/ac-macros/readline.m4 similarity index 100% rename from build/ac-macros/readline.m4 rename to config/ac-macros/readline.m4 diff --git a/build/ac-macros/sanity.m4 b/config/ac-macros/sanity.m4 similarity index 100% rename from build/ac-macros/sanity.m4 rename to config/ac-macros/sanity.m4 diff --git a/build/ac-macros/zlib.m4 b/config/ac-macros/zlib.m4 similarity index 100% rename from build/ac-macros/zlib.m4 rename to config/ac-macros/zlib.m4 diff --git a/configure.in b/configure.in index b45a02d971c..cb9b43498d7 100644 --- a/configure.in +++ b/configure.in @@ -11,7 +11,7 @@ AC_CANONICAL_SYSTEM # before we call AM_INIT_AUTOMAKE. Don't forget to also update the # NDB lines below. # -Brian -sinclude(build/ac-macros/sanity.m4) +sinclude(config/ac-macros/sanity.m4) AM_INIT_AUTOMAKE(mysql, 5.0.3-alpha) AM_CONFIG_HEADER(config.h) @@ -37,23 +37,23 @@ MYSQL_TCP_PORT_DEFAULT=3306 MYSQL_UNIX_ADDR_DEFAULT="/tmp/mysql.sock" dnl Include m4 -sinclude(build/ac-macros/alloca.m4) -sinclude(build/ac-macros/check_cpu.m4) -sinclude(build/ac-macros/character_sets.m4) -sinclude(build/ac-macros/compiler_flag.m4) -sinclude(build/ac-macros/ha_archive.m4) -sinclude(build/ac-macros/ha_berkeley.m4) -sinclude(build/ac-macros/ha_example.m4) -sinclude(build/ac-macros/ha_innodb.m4) -sinclude(build/ac-macros/ha_isam.m4) -sinclude(build/ac-macros/ha_ndbcluster.m4) -sinclude(build/ac-macros/ha_tina.m4) -sinclude(build/ac-macros/large_file.m4) -sinclude(build/ac-macros/misc.m4) -sinclude(build/ac-macros/mysqlfs.m4) -sinclude(build/ac-macros/openssl.m4) -sinclude(build/ac-macros/readline.m4) -sinclude(build/ac-macros/zlib.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/ha_archive.m4) +sinclude(config/ac-macros/ha_berkeley.m4) +sinclude(config/ac-macros/ha_example.m4) +sinclude(config/ac-macros/ha_innodb.m4) +sinclude(config/ac-macros/ha_isam.m4) +sinclude(config/ac-macros/ha_ndbcluster.m4) +sinclude(config/ac-macros/ha_tina.m4) +sinclude(config/ac-macros/large_file.m4) +sinclude(config/ac-macros/misc.m4) +sinclude(config/ac-macros/mysqlfs.m4) +sinclude(config/ac-macros/openssl.m4) +sinclude(config/ac-macros/readline.m4) +sinclude(config/ac-macros/zlib.m4) # Remember to add a directory sql/share/LANGUAGE AVAILABLE_LANGUAGES="\ From 289d3b2ee0f912dd4f128e1c61685d7bb170eb90 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 6 Dec 2004 01:34:19 +0200 Subject: [PATCH 5/6] Fix test results mysql-test/r/index_merge_ror_cpk.result: Portability fix mysql-test/r/innodb.result: Update results mysql-test/t/index_merge_ror_cpk.test: Portability fix --- mysql-test/r/index_merge_ror_cpk.result | 2 +- mysql-test/r/innodb.result | 2 +- mysql-test/t/index_merge_ror_cpk.test | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/mysql-test/r/index_merge_ror_cpk.result b/mysql-test/r/index_merge_ror_cpk.result index 7acfb8dc93b..ba8efe42bd6 100644 --- a/mysql-test/r/index_merge_ror_cpk.result +++ b/mysql-test/r/index_merge_ror_cpk.result @@ -74,7 +74,7 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 index_merge PRIMARY,key1,pktail2ok pktail2ok,key1 8,4 NULL 199 Using sort_union(pktail2ok,key1); Using where explain select * from t1 where pktail3bad=1 and key1=10; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 ref key1,pktail3bad pktail3bad 4 const 98 Using where +1 SIMPLE t1 ref key1,pktail3bad pktail3bad 4 const ROWS Using where explain select * from t1 where pktail4bad=1 and key1=10; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ref key1,pktail4bad pktail4bad 4 const 99 Using where diff --git a/mysql-test/r/innodb.result b/mysql-test/r/innodb.result index 9f19dd479c8..4cce4ef51e0 100644 --- a/mysql-test/r/innodb.result +++ b/mysql-test/r/innodb.result @@ -1696,7 +1696,7 @@ Variable_name Value Innodb_rows_inserted 31706 show status like "Innodb_rows_read"; Variable_name Value -Innodb_rows_read 80161 +Innodb_rows_read 80178 show status like "Innodb_rows_updated"; Variable_name Value Innodb_rows_updated 29530 diff --git a/mysql-test/t/index_merge_ror_cpk.test b/mysql-test/t/index_merge_ror_cpk.test index bf8eb5b77c7..867b0b3a036 100644 --- a/mysql-test/t/index_merge_ror_cpk.test +++ b/mysql-test/t/index_merge_ror_cpk.test @@ -72,6 +72,8 @@ explain select * from t1 where pktail2ok=1 and key1=10; select ' The following is actually a deficiency, it uses sort_union currently:' as 'note:'; explain select * from t1 where (pktail2ok=1 and pk1< 50000) or key1=10; +# The expected rows differs a bit from platform to platform +--replace_result 98 ROWS 99 ROWS explain select * from t1 where pktail3bad=1 and key1=10; explain select * from t1 where pktail4bad=1 and key1=10; explain select * from t1 where pktail5bad=1 and key1=10; From bbdb2d28f10146353a8780bf03fd83ba742aa7d1 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 6 Dec 2004 11:55:57 +0300 Subject: [PATCH 6/6] Fix for bugs #6955 SHOW PROCEDURE STATUS crashes the server, #6950 mysql-nt.exe error when click on sql or database on mysql control center --- sql/sql_show.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sql/sql_show.cc b/sql/sql_show.cc index eb9ca43b56a..d443ec96a01 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -2942,10 +2942,12 @@ TABLE *create_schema_table(THD *thd, TABLE_LIST *table_list) } break; default: - if (!(item= new Item_string("", fields_info->field_length, cs))) + /* this should be changed when Item_empty_string is fixed(in 4.1) */ + if (!(item= new Item_empty_string("", 0, cs))) { DBUG_RETURN(0); } + item->max_length= fields_info->field_length * cs->mbmaxlen; item->set_name(fields_info->field_name, strlen(fields_info->field_name), cs); break;