diff options
Diffstat (limited to 'configure.in')
-rw-r--r-- | configure.in | 446 |
1 files changed, 233 insertions, 213 deletions
diff --git a/configure.in b/configure.in index dd6aa80d617..d870bfa4c48 100644 --- a/configure.in +++ b/configure.in @@ -4,21 +4,19 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(sql/mysqld.cc) AC_CANONICAL_SYSTEM # The Docs Makefile.am parses this line! -AM_INIT_AUTOMAKE(mysql, 4.0.12) +AM_INIT_AUTOMAKE(mysql, 4.1.0-alpha) AM_CONFIG_HEADER(config.h) PROTOCOL_VERSION=10 DOT_FRM_VERSION=6 # See the libtool docs for information on how to do shared lib versions. -SHARED_LIB_VERSION=12:0:0 +SHARED_LIB_VERSION=14:0:0 # Set all version vars based on $VERSION. How do we do this more elegant ? # Remember that regexps needs to quote [ and ] since this is run through m4 MYSQL_NO_DASH_VERSION=`echo $VERSION | sed -e "s|[[a-z]]*-.*$||"` MYSQL_BASE_VERSION=`echo $MYSQL_NO_DASH_VERSION | sed -e "s|\.[[^.]]*$||"` -F_PART=`echo $MYSQL_BASE_VERSION | sed -e "s|\.||g"| sed -e "s|[a-zA-Z]\+||"|sed -e "s|^\(..\)$|\\10|"` -L_PART=`echo $MYSQL_NO_DASH_VERSION | sed -e "s|^[[0-9]]\.[[0-9]]*\.||" | sed -e "s|^\(.\)$|0\\1|" | sed -e "s|[[a-z]]||"` -MYSQL_VERSION_ID=${F_PART}${L_PART} +MYSQL_VERSION_ID=`echo $MYSQL_NO_DASH_VERSION. | sed -e 's/\./ /g; s/ \([[0-9]]\) / 0\\1 /g; s/ //g'` # The port should be constant for a LONG time MYSQL_TCP_PORT_DEFAULT=3306 @@ -1730,8 +1728,25 @@ fi MYSQL_PTHREAD_YIELD ###################################################################### -# For readline-4.0 (We simply move the mimimum amount of stuff from -# the readline configure.in here) +# For readline/libedit (We simply move the mimimum amount of stuff from +# the readline/libedit configure.in here) + +dnl Checks for header files. +AC_CHECK_HEADERS(malloc.h sys/cdefs.h) + +dnl Checks for library functions. +AC_FUNC_ALLOCA +AC_PROG_GCC_TRADITIONAL +AC_TYPE_SIGNAL +AC_CHECK_FUNCS(re_comp regcomp strdup) + +AC_CHECK_HEADERS(vis.h) +AC_CHECK_FUNCS(strlcat strlcpy) +AC_CHECK_FUNCS(issetugid) +AC_CHECK_FUNCS(fgetln) +AC_CHECK_FUNCS(getline flockfile) + +# from old readline settting: MAKE_SHELL=/bin/sh AC_SUBST(MAKE_SHELL) @@ -1761,7 +1776,7 @@ else fi AC_SUBST(TERMCAP_LIB) -# End of readline stuff +# End of readline/libedit stuff ######################################################################### dnl Checks for library functions. @@ -2146,26 +2161,71 @@ AC_SUBST(bench_dirs) AC_ARG_WITH(readline, [ --without-readline Use system readline instead of bundled copy.], [ with_readline=$withval ], - [ with_readline=yes ] + [ with_readline=undefined ] + ) + +AC_ARG_WITH(libedit, + [ --without-libedit Use system libedit instead of bundled copy.], + [ with_libedit=$withval ], + [ with_libedit=undefined ] ) + +compile_readline= no +compile_libedit= no + +if [test "$with_libedit" = "yes"] && [test "$with_readline" = "yes"] +then + AC_MSG_ERROR([You can not use --with-readline and --with-libedit at the same time, please choose one of it]) +fi + +readline_topdir="" +readline_basedir="" +readline_dir="" +readline_h_ln_cmd="" +readline_link="" + if expr "$SYSTEM_TYPE" : ".*netware.*" > /dev/null; then # For NetWare, do not need readline - readline_dir="" - readline_link="" + echo "Skipping readline" else -if test "$with_readline" = "yes" -then - readline_dir="readline" - readline_link="\$(top_builddir)/readline/libreadline.a" +mkdir include/readline + +if [test "$with_libedit" = "yes"] || [test "$with_libedit" = "undefined"] && [test "$with_readline" = "undefined"] +then + readline_topdir="cmd-line-utils" + readline_basedir="libedit" + readline_dir="$readline_topdir/$readline_basedir" + readline_link="\$(top_builddir)/cmd-line-utils/libedit/liblibedit.a" + readline_h_ln_cmd="\$(LN) \$(top_builddir)/cmd-line-utils/libedit/readline/*.h readline/" + compile_libedit=yes + AC_DEFINE_UNQUOTED(USE_LIBEDIT_INTERFACE) +elif test "$with_readline" = "yes" +then + readline_topdir="cmd-line-utils" + readline_basedir="readline" + readline_dir="$readline_topdir/$readline_basedir" + readline_link="\$(top_builddir)/cmd-line-utils/readline/libreadline.a" + readline_h_ln_cmd="\$(LN) \$(top_builddir)/cmd-line-utils/readline/*.h readline/" + compile_readline=yes + AC_DEFINE_UNQUOTED(USE_NEW_READLINE_INTERFACE) else - # This requires readline to be in a standard place. Mosty for linux - # there readline may be a shared library. - readline_dir="" - readline_link="-lreadline" + MYSQL_CHECK_LIBEDIT_INTERFACE + MYSQL_CHECK_NEW_RL_INTERFACE + if ["$mysql_cv_new_rl_interface"="yes"] || [test "$mysql_cv_libedit_interface"="no"] + then + readline_link="-lreadline" + else + readline_link="-ledit" + fi fi fi + AC_SUBST(readline_dir) +AC_SUBST(readline_topdir) +AC_SUBST(readline_basedir) AC_SUBST(readline_link) +AC_SUBST(readline_h_ln_cmd) + dnl In order to add new charset, you must add charset name to dnl this CHARSETS_AVAILABLE list and sql/share/charsets/Index. @@ -2173,12 +2233,13 @@ 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) -CHARSETS_AVAILABLE="big5 cp1251 cp1257 - croat czech danish dec8 dos estonia euc_kr gb2312 gbk - german1 greek hebrew hp8 hungarian koi8_ru koi8_ukr - latin1 latin1_de latin2 latin5 sjis swe7 tis620 ujis - usa7 win1250 win1251ukr" +CHARSETS_AVAILABLE="armscii8 big5 cp1251 cp1257 + croat czech danish dec8 dos estonia euc_kr gb2312 gbk + german1 greek hebrew hp8 hungarian koi8_ru koi8_ukr + latin1 latin1_de latin2 latin5 sjis swe7 tis620 ucs2 ujis + usa7 utf8 win1250 win1250ch win1251ukr" CHARSETS_DEPRECATED="win1251" +CHARSETS_COMPLEX="big5 czech euc_kr gb2312 gbk latin1_de sjis tis620 ucs2 ujis utf8 win1250ch" DEFAULT_CHARSET=latin1 AC_DIVERT_POP @@ -2204,208 +2265,151 @@ if test "$extra_charsets" = no; then elif test "$extra_charsets" = none; then CHARSETS="" elif test "$extra_charsets" = complex; then - CHARSETS=`/bin/ls -1 $srcdir/strings/ctype-*.c | \ - sed -e 's;^.*/ctype-;;' -e 's;.c$;;'` - CHARSETS=`echo $CHARSETS` # get rid of line breaks + CHARSETS="$CHARSETS_COMPLEX" +elif test "$extra_charsets" = all; then + CHARSETS="$CHARSETS_AVAILABLE $CHARSETS_DEPRECATED" else - if test "$extra_charsets" = all; then - CHARSETS="$CHARSETS_AVAILABLE $CHARSETS_DEPRECATED" - else - CHARSETS=`echo $extra_charsets | sed -e 's/,/ /g'` - fi + CHARSETS=`echo $extra_charsets | sed -e 's/,/ /g'` fi -# Ensure that the default_charset is first in CHARSETS -TMP_CHARSETS="$default_charset " -for i in $CHARSETS -do - if test $i != $default_charset - then - TMP_CHARSETS="$TMP_CHARSETS $i" - fi -done -CHARSETS=$TMP_CHARSETS +CHARSETS="$DEFAULT_CHARSET $CHARSETS" -# Check if charsets are all good -for cs in $CHARSETS -do - charset_okay=0 - for charset in $CHARSETS_AVAILABLE $CHARSETS_DEPRECATED - do - if test $cs = $charset; then charset_okay=1; fi - done - if test $charset_okay = 0; - then - AC_MSG_ERROR([Charset $cs not available. (Available $CHARSETS_AVAILABLE). - See the Installation chapter in the Reference Manual.]); - fi -done - -CHARSET_SRCS="" -CHARSETS_NEED_SOURCE="" -CHARSET_DECLARATIONS="" -CHARSET_COMP_CS_INIT="CHARSET_INFO compiled_charsets[[]] = {" +use_mb="no" -want_use_strcoll=0 -want_use_mb=0 - -index_file="$srcdir/sql/share/charsets/Index" - -for c in $CHARSETS +for cs in $CHARSETS do - # get the charset number from $index_file -changequote(,)dnl - subpat='^'"${c}"'[ ][ ]*\([0-9][0-9]*\)[^0-9]*$' - number=`sed -e "/$subpat/!d" -e 's//\1/' $index_file` -changequote([,])dnl - # some sanity checking.... - if test X"$number" = X - then - AC_MSG_ERROR([No number was found in $index_file for the $c character set. This is a bug in the MySQL distribution. Please report this message to bugs@lists.mysql.com.]) - fi - - cs_file="$srcdir/strings/ctype-$c.c" - if test -f $cs_file - then - CHARSET_SRCS="${CHARSET_SRCS}ctype-$c.c " - # get the strxfrm multiplier and max mb len from files - subpat='^.*\\.configure\\. strxfrm_multiply_'"${c}"'=' - strx=`$AWK 'sub("'"$subpat"'", "") { print }' $cs_file` - subpat='^.*\\.configure\\. mbmaxlen_'"${c}"'=' - maxl=`$AWK 'sub("'"$subpat"'", "") { print }' $cs_file` - - CHARSET_DECLARATIONS="$CHARSET_DECLARATIONS - -/* declarations for the ${c} character set, filled in by configure */ -extern uchar ctype_${c}[[]], to_lower_${c}[[]], to_upper_${c}[[]], sort_order_${c}[[]];" - else - CHARSETS_NEED_SOURCE="$CHARSETS_NEED_SOURCE $c" - strx='' - maxl='' - fi - - CHARSET_COMP_CS_INIT="$CHARSET_COMP_CS_INIT - - /* this information is filled in by configure */ - { - $number, /* number */ - \"$c\", /* name */ - ctype_${c}, - to_lower_${c}, - to_upper_${c}, - sort_order_${c}," - - if test -n "$strx" - then - want_use_strcoll=1 - - CHARSET_DECLARATIONS="$CHARSET_DECLARATIONS -extern int my_strcoll_${c}(const uchar *, const uchar *); -extern int my_strxfrm_${c}(uchar *, const uchar *, int); -extern int my_strnncoll_${c}(const uchar *, int, const uchar *, int); -extern int my_strnxfrm_${c}(uchar *, const uchar *, int, int); -extern my_bool my_like_range_${c}(const char *, uint, pchar, uint, - char *, char *, uint *, uint *);" - - CHARSET_COMP_CS_INIT="$CHARSET_COMP_CS_INIT - $strx, /* strxfrm_multiply */ - my_strcoll_${c}, - my_strxfrm_${c}, - my_strnncoll_${c}, - my_strnxfrm_${c}, - my_like_range_${c}," - else - CHARSET_COMP_CS_INIT="$CHARSET_COMP_CS_INIT - 0, /* strxfrm_multiply */ - NULL, /* strcoll */ - NULL, /* strxfrm */ - NULL, /* strnncoll */ - NULL, /* strnxfrm */ - NULL, /* like_range */" - fi - - if test -n "$maxl" - then - want_use_mb=1 - - CHARSET_DECLARATIONS="$CHARSET_DECLARATIONS -extern int ismbchar_${c}(const char *, const char *); -extern my_bool ismbhead_${c}(uint); -extern int mbcharlen_${c}(uint);" - - - CHARSET_COMP_CS_INIT="$CHARSET_COMP_CS_INIT - $maxl, /* mbmaxlen */ - ismbchar_${c}, - ismbhead_${c}, - mbcharlen_${c}" - else - CHARSET_COMP_CS_INIT="$CHARSET_COMP_CS_INIT - 0, /* mbmaxlen */ - NULL, /* ismbchar */ - NULL, /* ismbhead */ - NULL /* mbcharlen */" - fi - CHARSET_COMP_CS_INIT="$CHARSET_COMP_CS_INIT - }," + case $cs in + armscii8) + AC_DEFINE(HAVE_CHARSET_armscii8) + use_mb="yes" + ;; + big5) + AC_DEFINE(HAVE_CHARSET_big5) + use_mb="yes" + ;; + cp1251) + AC_DEFINE(HAVE_CHARSET_cp1251) + ;; + cp1257) + AC_DEFINE(HAVE_CHARSET_cp1257) + ;; + croat) + AC_DEFINE(HAVE_CHARSET_croat) + ;; + czech) + AC_DEFINE(HAVE_CHARSET_czech) + ;; + danish) + AC_DEFINE(HAVE_CHARSET_danish) + ;; + dec8) + AC_DEFINE(HAVE_CHARSET_dec8) + ;; + dos) + AC_DEFINE(HAVE_CHARSET_dos) + ;; + estonia) + AC_DEFINE(HAVE_CHARSET_estonia) + ;; + euc_kr) + AC_DEFINE(HAVE_CHARSET_euc_kr) + use_mb="yes" + ;; + gb2312) + AC_DEFINE(HAVE_CHARSET_gb2312) + use_mb="yes" + ;; + gbk) + AC_DEFINE(HAVE_CHARSET_gbk) + use_mb="yes" + ;; + german1) + AC_DEFINE(HAVE_CHARSET_german1) + ;; + greek) + AC_DEFINE(HAVE_CHARSET_greek) + ;; + hebrew) + AC_DEFINE(HAVE_CHARSET_hebrew) + ;; + hp8) + AC_DEFINE(HAVE_CHARSET_hp8) + ;; + hungarian) + AC_DEFINE(HAVE_CHARSET_hungarian) + ;; + koi8_ru) + AC_DEFINE(HAVE_CHARSET_koi8_ru) + ;; + koi8_ukr) + AC_DEFINE(HAVE_CHARSET_koi8_ukr) + ;; + latin1) + AC_DEFINE(HAVE_CHARSET_latin1) + ;; + latin1_de) + AC_DEFINE(HAVE_CHARSET_latin1_de) + ;; + latin2) + AC_DEFINE(HAVE_CHARSET_latin2) + ;; + latin5) + AC_DEFINE(HAVE_CHARSET_latin5) + ;; + sjis) + AC_DEFINE(HAVE_CHARSET_sjis) + use_mb="yes" + ;; + swe7) + AC_DEFINE(HAVE_CHARSET_swe7) + ;; + tis620) + AC_DEFINE(HAVE_CHARSET_tis620) + ;; + ucs2) + AC_DEFINE(HAVE_CHARSET_ucs2) + use_mb="yes" + ;; + ujis) + AC_DEFINE(HAVE_CHARSET_ujis) + use_mb="yes" + ;; + usa7) + AC_DEFINE(HAVE_CHARSET_usa7) + ;; + utf8) + AC_DEFINE(HAVE_CHARSET_utf8) + use_mb="yes" + ;; + win1250) + AC_DEFINE(HAVE_CHARSET_win1250) + ;; + win1250ch) + AC_DEFINE(HAVE_CHARSET_win1250ch) + ;; + win1251) + AC_DEFINE(HAVE_CHARSET_win1251) + ;; + win1251ukr) + AC_DEFINE(HAVE_CHARSET_win1251ukr) + ;; + *) + AC_MSG_ERROR([Charset $cs not available. (Available $CHARSETS_AVAILABLE). + See the Installation chapter in the Reference Manual.]); + esac done -CHARSET_COMP_CS_INIT="$CHARSET_COMP_CS_INIT - - /* this information is filled in by configure */ - { - 0, /* end-of-list marker */ - NullS, - NULL, - NULL, - NULL, - NULL, - 0, - NULL, - NULL, - NULL, - NULL, - NULL, - 0, - NULL, - NULL, - NULL - } -};" - - -if test $want_use_strcoll = 1 -then - AC_DEFINE(USE_STRCOLL) -fi - -if test $want_use_mb = 1 +dnl Always compile latin1 +AC_DEFINE(HAVE_CHARSET_latin1) + +if test "$use_mb" = "yes" then AC_DEFINE(USE_MB) AC_DEFINE(USE_MB_IDENT) fi AC_SUBST(default_charset) -AC_SUBST(CHARSET_SRCS) -CHARSET_OBJS="`echo "$CHARSET_SRCS" | sed -e 's/\.c /.o /g'`" -AC_SUBST(CHARSET_OBJS) -AC_SUBST(CHARSETS_NEED_SOURCE) - -dnl We can't use AC_SUBST because these substitutions are too long. -dnl I don't want to use sed, either, because there's a reason why -dnl autoconf breaks up the substitution commands. So we'll just -dnl write to a file and #include it. -dnl AC_SUBST(CHARSET_DECLARATIONS) -dnl AC_SUBST(CHARSET_COMP_CS_INIT) -dnl sed -e "s%@CHARSET_DECLARATIONS@%$CHARSET_DECLARATIONS%g" \ -dnl -e "s%@CHARSET_COMP_CS_INIT@%$CHARSET_COMP_CS_INIT%g" \ -dnl $srcdir/strings/ctype.c.in > $srcdir/strings/ctype.c - -cat <<EOF > $srcdir/strings/ctype_autoconf.c -/* This file is generated automatically by configure. */$CHARSET_DECLARATIONS - -$CHARSET_COMP_CS_INIT -EOF +AC_DEFINE_UNQUOTED(DEFAULT_CHARSET_NAME,"$default_charset") AC_MSG_RESULT([default: $default_charset; compiled in: $CHARSETS]) @@ -2624,12 +2628,28 @@ esac AC_SUBST(MAKE_BINARY_DISTRIBUTION_OPTIONS) # Output results + +if test "$compile_readline" = "yes" +then + AC_OUTPUT(cmd-line-utils/readline/Makefile) +fi + +if test "$compile_libedit" = "yes" +then + AC_OUTPUT(cmd-line-utils/libedit/Makefile) +fi + +if [test "$compile_libedit" = "yes"] || [test "$compile_readline" = "yes"] +then + AC_OUTPUT(cmd-line-utils/Makefile) +fi + AC_OUTPUT(Makefile extra/Makefile mysys/Makefile isam/Makefile dnl strings/Makefile regex/Makefile heap/Makefile dnl bdb/Makefile dnl myisam/Makefile myisammrg/Makefile dnl os2/Makefile os2/include/Makefile os2/include/sys/Makefile dnl - man/Makefile BUILD/Makefile readline/Makefile vio/Makefile dnl + man/Makefile BUILD/Makefile vio/Makefile dnl libmysql_r/Makefile libmysqld/Makefile libmysqld/examples/Makefile dnl libmysql/Makefile client/Makefile dnl pstack/Makefile pstack/aout/Makefile sql/Makefile sql/share/Makefile dnl |