4
4
AC_PREREQ(2.59)dnl Minimum Autoconf version required.
6
AC_INIT(drizzle, [7.0.0], [http://bugs.launchpad.net/drizzle])
7
AC_CONFIG_SRCDIR([drizzled/drizzled.cc])
7
AC_CONFIG_SRCDIR([server/drizzled.cc])
8
8
AC_CONFIG_AUX_DIR(config)
9
AC_CONFIG_HEADERS([config.h])
11
# Save some variables and the command line options for mysqlbug
14
SAVE_ASFLAGS="$ASFLAGS"
16
SAVE_CXXFLAGS="$CXXFLAGS"
17
SAVE_LDFLAGS="$LDFLAGS"
18
SAVE_CXXLDFLAGS="$CXXLDFLAGS"
19
CONF_COMMAND="$0 $ac_configure_args"
20
AC_SUBST(CONF_COMMAND)
23
AC_SUBST(SAVE_ASFLAGS)
25
AC_SUBST(SAVE_CXXFLAGS)
26
AC_SUBST(SAVE_LDFLAGS)
27
AC_SUBST(SAVE_CXXLDFLAGS)
9
AC_CONFIG_HEADERS([include/config.h:config.h.in])
30
10
AC_CANONICAL_TARGET
31
AM_INIT_AUTOMAKE(-Wall -Wno-portability -Werror)
11
AM_INIT_AUTOMAKE(drizzle, 7.0.0, no-define)
33
13
PROTOCOL_VERSION=10
35
15
# See the libtool docs for information on how to do shared lib versions.
36
SHARED_LIB_MAJOR_VERSION=1
16
SHARED_LIB_MAJOR_VERSION=16
37
17
SHARED_LIB_VERSION=$SHARED_LIB_MAJOR_VERSION:0:0
40
dnl AC_CANONICAL_HOST thinks it's a good idea to just set CFLAGS to
41
dnl -g -O2 if you're running gcc. We would like to use something else, thanks.
42
if test "x${CFLAGS}" = "x-g -O2"
46
if test "x${CXXFLAGS}" = "x-g -O2"
52
21
# Set all version vars based on $VERSION. How do we do this more elegant ?
53
22
# Remember that regexps needs to quote [ and ] since this is run through m4
54
23
# We take some made up examples
56
25
# VERSION 5.1.40sp1-alpha 5.0.34a
57
# DRIZZLE_NO_DASH_VERSION 5.1.40sp1 5.0.34a
58
# DRIZZLE_NUMERIC_VERSION 5.1.40 5.0.34
59
# DRIZZLE_BASE_VERSION 5.1 5.0
60
# DRIZZLE_VERSION_ID 50140 50034
26
# MYSQL_NO_DASH_VERSION 5.1.40sp1 5.0.34a
27
# MYSQL_NUMERIC_VERSION 5.1.40 5.0.34
28
# MYSQL_BASE_VERSION 5.1 5.0
29
# MYSQL_VERSION_ID 50140 50034
62
DRIZZLE_NO_DASH_VERSION=`echo $VERSION | sed -e "s|-.*$||"`
63
DRIZZLE_NUMERIC_VERSION=`echo $DRIZZLE_NO_DASH_VERSION | sed -e "s|[[a-z]][[a-z0-9]]*$||"`
64
DRIZZLE_BASE_VERSION=`echo $DRIZZLE_NUMERIC_VERSION | sed -e "s|\.[[^.]]*$||"`
65
DRIZZLE_VERSION_ID=`echo $DRIZZLE_NUMERIC_VERSION | \
31
MYSQL_NO_DASH_VERSION=`echo $VERSION | sed -e "s|-.*$||"`
32
MYSQL_NUMERIC_VERSION=`echo $MYSQL_NO_DASH_VERSION | sed -e "s|[[a-z]][[a-z0-9]]*$||"`
33
MYSQL_BASE_VERSION=`echo $MYSQL_NUMERIC_VERSION | sed -e "s|\.[[^.]]*$||"`
34
MYSQL_VERSION_ID=`echo $MYSQL_NUMERIC_VERSION | \
66
35
awk -F. '{printf "%d%0.2d%0.2d", $1, $2, $3}'`
68
37
# The port should be constant for a LONG time
69
DRIZZLE_TCP_PORT_DEFAULT=4427
71
sinclude(m4/dtrace.m4)
72
sinclude(m4/character_sets.m4)
74
AM_GNU_GETTEXT([external])
75
AM_GNU_GETTEXT_VERSION(0.17)
77
AM_CONDITIONAL([BUILD_GETTEXT],[test "x$MSGMERGE" != "x" -a "x$MSGMERGE" != "x:"])
79
AC_SUBST(DRIZZLE_NO_DASH_VERSION)
80
AC_SUBST(DRIZZLE_BASE_VERSION)
81
AC_SUBST(DRIZZLE_VERSION_ID)
82
AC_SUBST(DRIZZLE_PREVIOUS_BASE_VERSION)
38
MYSQL_TCP_PORT_DEFAULT=3306
41
sinclude(config/ac-macros/alloca.m4)
42
sinclude(config/ac-macros/check_cpu.m4)
43
sinclude(config/ac-macros/character_sets.m4)
44
sinclude(config/ac-macros/compiler_flag.m4)
45
sinclude(config/ac-macros/dtrace.m4)
46
sinclude(config/ac-macros/plugins.m4)
47
sinclude(config/ac-macros/large_file.m4)
48
sinclude(config/ac-macros/misc.m4)
49
sinclude(config/ac-macros/readline.m4)
50
sinclude(config/ac-macros/ssl.m4)
51
sinclude(config/ac-macros/pkg.m4)
53
# Remember to add a directory server/share/LANGUAGE
54
AVAILABLE_LANGUAGES="\
55
czech danish dutch english estonian french german greek hungarian \
56
italian japanese korean norwegian norwegian-ny polish portuguese \
57
romanian russian serbian slovak spanish swedish ukrainian"
62
AC_SUBST(MYSQL_NO_DASH_VERSION)
63
AC_SUBST(MYSQL_BASE_VERSION)
64
AC_SUBST(MYSQL_VERSION_ID)
65
AC_SUBST(MYSQL_PREVIOUS_BASE_VERSION)
83
66
AC_SUBST(PROTOCOL_VERSION)
84
67
AC_DEFINE_UNQUOTED([PROTOCOL_VERSION], [$PROTOCOL_VERSION],
85
68
[mysql client protocol version])
90
73
AC_SUBST(SHARED_LIB_VERSION)
91
74
AC_SUBST(AVAILABLE_LANGUAGES)
94
AC_DEFINE([IO_SIZE], [4096], [Io buffer size; Must be a power of 2 and
95
a multiple of 512. May be
96
smaller what the disk page size. This influences the speed of the
97
isam btree library. eg to big to slow.])
98
AC_DEFINE([SC_MAXWIDTH],[256], [Max width of screen (for error messages)])
99
AC_DEFINE([FN_LEN],[256 ], [Max file name len ])
100
AC_DEFINE([FN_HEADLEN],[253], [Max length of filepart of file name ])
101
AC_DEFINE([FN_EXTLEN],[20], [Max length of extension (part of FN_LEN) ])
102
AC_DEFINE([FN_REFLEN],[512], [Max length of full path-name ])
103
AC_DEFINE([FN_EXTCHAR],['.'], [File extension character])
104
AC_DEFINE([FN_HOMELIB],['~'], [~/ is used as abbrev for home dir ])
105
AC_DEFINE([FN_CURLIB],['.'], [./ is used as abbrev for current dir ])
106
AC_DEFINE([FN_PARENTDIR],[".."], [Parent directory; Must be a string ])
108
AC_DEFINE([MASTER],[1],[Compile without unireg])
110
AH_VERBATIM([QUOTE_ARG],[
111
/* Quote argument (before cpp) */
113
# define QUOTE_ARG(x) #x
115
/* Quote argument, (after cpp) */
116
#ifndef STRINGIFY_ARG
117
# define STRINGIFY_ARG(x) QUOTE_ARG(x)
121
AH_VERBATIM([builtin_expect],[
123
* The macros below are borrowed from include/linux/compiler.h in the
124
* Linux kernel. Use them to indicate the likelyhood of the truthfulness
125
* of a condition. This serves two purposes - newer versions of gcc will be
126
* able to optimize for branch predication, which could yield siginficant
127
* performance gains in frequently executed sections of the code, and the
128
* other reason to use them is for documentation
130
#if !defined(__GNUC__)
131
#define __builtin_expect(x, expected_value) (x)
134
#define likely(x) __builtin_expect((x),1)
135
#define unlikely(x) __builtin_expect((x),0)
138
dnl InnoDB depends on some Drizzle's internals which other plugins should not
139
dnl need. This is because of InnoDB's foreign key support, "safe" binlog
140
dnl truncation, and other similar legacy features.
142
dnl We define accessors for these internals unconditionally, but do not
143
dnl expose them in mysql/plugin.h. They are declared in ha_innodb.h for
146
AC_DEFINE([INNODB_COMPATIBILITY_HOOKS],[1],[TODO: Remove the need for this])
147
dnl TODO: Make a test for when this needs to be set.
148
AC_DEFINE([_REENTRANT],[1],[Some thread libraries require this])
150
AH_VERBATIM([posix_pthread],[
151
/* We want posix threads */
152
#ifndef _POSIX_PTHREAD_SEMANTICS
153
#define _POSIX_PTHREAD_SEMANTICS
158
77
# Canonicalize the configuration name.
210
148
################ End of section to be done before AC_PROG_CC #################
150
# The following hack should ensure that configure doesn't add optimizing
151
# or debugging flags to CFLAGS or CXXFLAGS
152
# C_EXTRA_FLAGS are flags that are automaticly added to both
153
# CFLAGS and CXXFLAGS
154
CFLAGS="$CFLAGS $C_EXTRA_FLAGS "
155
CXXFLAGS="$CXXFLAGS $C_EXTRA_FLAGS "
212
157
dnl Checks for programs.
214
ifdef([AC_PROG_CC_C99],[
215
dnl TODO: Need to fix this to use c99 instead of gnu99
216
AC_PROG_CC_C99([],[AC_MSG_ERROR([C99 support required for compiling Drizzle])])
218
],[C99_SUPPORT_HACK="-std=gnu99"])
220
AC_CXX_HEADER_STDCXX_98
221
if test "$ac_cv_cxx_stdcxx_98" = "no"
223
AC_MSG_ERROR([C++ Compiler required to compile Drizzle])
233
164
# Print version of CC and CXX compiler (if they support --version)
234
165
case $SYSTEM_TYPE in
236
AC_DEFINE([TARGET_OS_OSX], [1], [Whether we build for OSX])
167
CC_VERSION=`$CC -version | grep -i version`
239
170
CC_VERSION=`$CC --version | sed 1q`
271
188
AC_PATH_PROG(AS, as, as)
274
dnl TODO: This needs to go away and be replaced with _ISOC99_SOURCE
275
if test "$ac_cv_compiler_gnu" = "yes" -o "$target_os" = "linux-gnu"
277
AC_DEFINE([_GNU_SOURCE],[1],[Fix problem with S_ISLNK() on Linux])
280
dnl Solaris 9 include file <sys/feature_tests.h> refers to X/Open document
282
dnl System Interfaces and Headers, Issue 5
284
dnl saying we should define _XOPEN_SOURCE=500 to get POSIX.1c prototypes,
285
dnl but apparently other systems (namely FreeBSD) don't agree.
287
dnl On a newer Solaris 10, the above file recognizes also _XOPEN_SOURCE=600.
288
dnl Furthermore, it tests that if a program requires older standard
289
dnl (_XOPEN_SOURCE<600 or _POSIX_C_SOURCE<200112L) it cannot be
290
dnl run on a new compiler (that defines _STDC_C99) and issues an #error.
291
dnl It's also an #error if a program requires new standard (_XOPEN_SOURCE=600
292
dnl or _POSIX_C_SOURCE=200112L) and a compiler does not define _STDC_C99.
294
dnl To add more to this mess, Sun Studio C compiler defines _STDC_C99 while
295
dnl C++ compiler does not!
297
dnl TODO: Can _ISOC99_SOURCE be defined on all platforms and remove the
298
dnl Need for all of this?
301
dnl Do we need both of these?
302
CXXFLAGS="${CXXFLAGS} -D__C99FEATURES__"
303
CFLAGS="${CFLAGS} -D_XOPEN_SOURCE=600"
304
AC_DEFINE([__EXTENSIONS__],[1],[Turn on needed extensions on Solaris])
191
# Still need ranlib for readline; local static use only so no libtool.
310
194
#AC_LIBTOOL_WIN32_DLL
379
263
if test "$GCC" = "yes"
265
# mysqld requires -fno-implicit-templates.
381
266
# Disable exceptions as they seams to create problems with gcc and threads.
382
# drizzled doesn't use run-time-type-checking, so we disable it.
383
AM_CXXFLAGS="${AM_CXXFLAGS} -fno-exceptions"
267
# mysqld doesn't use run-time-type-checking, so we disable it.
268
# We should use -Wno-invalid-offsetof flag to disable some warnings from gcc
269
# regarding offset() usage in C++ which are done in a safe manner in the
271
CXXFLAGS="$CXXFLAGS -fno-implicit-templates -fno-exceptions -fno-rtti"
272
AC_DEFINE([HAVE_EXPLICIT_TEMPLATE_INSTANTIATION],
273
[1], [Defined by configure. Use explicit template instantiation.])
388
# libdrizzle versioning when linked with GNU ld.
278
# libmysqlclient versioning when linked with GNU ld.
389
279
if $LD --version 2>/dev/null|grep -q GNU; then
390
LD_VERSION_SCRIPT="-Wl,--version-script=\$(top_srcdir)/libdrizzle/libdrizzle.ver"
280
LD_VERSION_SCRIPT="-Wl,--version-script=\$(top_builddir)/libdrizzle/libdrizzle.ver"
281
AC_CONFIG_FILES(libdrizzle/libdrizzle.ver)
392
283
AC_SUBST(LD_VERSION_SCRIPT)
394
285
#--------------------------------------------------------------------
395
# Check for Google Proto Buffers
396
#--------------------------------------------------------------------
399
AC_CHECK_HEADERS([google/protobuf/message.h])
400
if test "x$ac_cv_header_google_protobuf_message_h" != "xyes"
402
AC_MSG_ERROR([Couldn't find message.h. Try installing Google Protocol Buffer development packages])
405
save_CFLAGS="$CFLAGS"
410
AC_CACHE_CHECK([for Message in libprotobuf], ac_libprotobuf_works, [
412
#include <google/protobuf/descriptor.pb.h>
414
google::protobuf::FileDescriptorProto testFdp;
415
], ac_libprotobuf_works=yes, [
416
AC_ERROR([could not find Google's libprotobuf])
421
PROTOBUF_LIBS="${LIBS}"
422
AC_SUBST(PROTOBUF_LIBS)
423
CFLAGS="$save_CFLAGS"
427
#--------------------------------------------------------------------
428
286
# Check for libevent
429
287
#--------------------------------------------------------------------
431
AC_MSG_CHECKING(for libevent)
432
AC_ARG_WITH(libevent,
433
[AS_HELP_STRING([--with-libevent],
434
[Use libevent build directory])],
435
[ with_libevent=$withval ],
436
[ with_libevent=yes ])
438
if test "$with_libevent" = "yes"
289
AC_CHECK_HEADERS(event.h)
290
if test "x$ac_cv_header_event_h" != "xyes"
440
AC_CHECK_HEADERS(event.h)
441
if test "x$ac_cv_header_event_h" != "xyes"
443
AC_MSG_ERROR([Couldn't find event.h. Try installing libevent development packages])
447
AC_CHECK_LIB(event, event_loop, [], [AC_MSG_ERROR(could not find libevent)])
448
LIBEVENT_LIBS="${LIBS}"
449
LIBS="${my_save_LIBS}"
452
AC_MSG_RESULT($withval)
453
if test -f $withval/event.h -a -f $withval/libevent.a; then
455
if cd $withval; then withval=`pwd`; cd $owd; fi
456
LIBEVENT_CFLAGS="-I$withval"
457
LIBEVENT_LIBS="-L$withval -levent"
458
elif test -f $withval/include/event.h -a -f $withval/lib/libevent.a; then
460
if cd $withval; then withval=`pwd`; cd $owd; fi
461
LIBEVENT_CFLAGS="-I$withval/include"
462
LIBEVENT_LIBS="-L$withval/lib -levent"
464
AC_MSG_ERROR([event.h or libevent.a not found in $withval])
292
AC_MSG_ERROR([Couldn't find event.h. Try installing libevent development packages])
468
AC_SUBST(LIBEVENT_CFLAGS)
469
AC_SUBST(LIBEVENT_LIBS)
471
AC_CACHE_CHECK([for bufferevent in libevent], ac_libevent_works, [
472
save_CFLAGS="$CFLAGS"
474
CFLAGS="$LIBEVENT_CFLAGS"
475
LIBS="$LIBEVENT_LIBS"
477
#include <sys/types.h>
478
#include <sys/time.h>
480
#include <event.h>],[
481
struct bufferevent bev;
482
bufferevent_settimeout(&bev, 1, 1);
483
], ac_libevent_works=yes, [
484
AC_ERROR([you need to install a more recent version of libevent,
485
check http://www.monkey.org/~provos/libevent/])
488
CFLAGS="$save_CFLAGS"
294
AC_CHECK_LIB(event, event_loop, [], [AC_MSG_ERROR(could not find libevent)])
493
296
#--------------------------------------------------------------------
494
297
# Check for libpthread
502
305
AC_CHECK_LIB(pthread, pthread_create, [], [AC_MSG_ERROR(could not find libpthread)])
504
307
#--------------------------------------------------------------------
506
#--------------------------------------------------------------------
508
AC_ARG_ENABLE([tcmalloc],
509
[AS_HELP_STRING([--enable-tcmalloc],
510
[Enable linking with tcmalloc @<:@default=off@:>@])],
511
[ac_enable_tcmalloc="$enableval"],
512
[ac_enable_tcmalloc="no"])
514
if test "x$ac_enable_tcmalloc" = "xyes"
516
AC_CHECK_LIB(tcmalloc,malloc,[],[])
519
#--------------------------------------------------------------------
521
309
#--------------------------------------------------------------------
525
311
AC_CHECK_HEADERS(zlib.h)
526
312
if test "x$ac_cv_header_zlib_h" != "xyes"
528
314
AC_MSG_ERROR([Couldn't find zlib.h. Try installing zlib development packages])
530
316
AC_CHECK_LIB(z, crc32, [], [AC_MSG_ERROR(could not find libz)])
536
#--------------------------------------------------------------------
537
# Check for libreadline or compatible (libedit on Mac OS X)
538
#--------------------------------------------------------------------
540
AC_CHECK_HEADERS(readline/history.h readline/readline.h)
319
AC_CHECK_HEADERS([readline/readline.h])
541
320
if test "x$ac_cv_header_readline_readline_h" != "xyes"
543
322
AC_MSG_ERROR([Couldn't find readline/readline.h. Try installing readline development packages.])
545
AC_CHECK_TYPES([HIST_ENTRY], [], [], [AC_INCLUDES_DEFAULT[
546
#ifdef HAVE_READLINE_HISTORY_H
547
#include <readline/history.h>
549
#include <readline/readline.h>
551
AC_CHECK_DECLS([completion_matches], [], [], [AC_INCLUDES_DEFAULT[
552
#ifdef HAVE_READLINE_HISTORY_H
553
#include <readline/history.h>
555
#include <readline/readline.h>
558
DRIZZLE_CHECK_NEW_RL_INTERFACE
562
AC_CHECK_LIB(readline, rl_initialize, [],
563
[AC_CHECK_LIB(ncurses, tgetent, [], [AC_MSG_ERROR(Couldn't find ncurses)])
564
AC_SEARCH_LIBS(rl_initialize, readline, [],
565
[AC_MSG_ERROR(Couldn't find libreadline.)])])
566
READLINE_LIBS="$LIBS"
568
AC_SUBST(READLINE_LIBS)
571
325
#--------------------------------------------------------------------
572
326
# Check for libpcre
575
329
AC_LANG_PUSH([C++])
576
330
AC_PATH_PROG(PKG_CONFIG, pkg-config, AC_MSG_ERROR([pkg-config wasn't found.]))
577
PKG_CHECK_MODULES(PCRE, [libpcrecpp >= 3], [found_pcre="yes"],[found_pcre="no"])
579
if test "$found_pcre" = "no"
331
PKG_CHECK_MODULES(PCRE, [libpcrecpp >= 3], [found_pcre="yes"],[
581
332
dnl Only check the header here, because autoconf can't handle
582
333
dnl checking for C++ methods without C linkages
583
334
AC_CHECK_HEADERS(pcrecpp.h)
584
if test "x$ac_cv_header_pcrecpp_h" != "xyes"
335
if test "x$ac_cv_header_prcecpp_h" = "xno"
340
# We can't search for these well, but we sure do need them!
341
PCRE_LIBS="-lpcrecpp -lpcre"
344
if test "x$found_pcre" != "xyes"
586
346
AC_MSG_ERROR([Couldn't find pcrecpp.h. Try installing the development package associated with libpcre on your system.])
588
# Found headers, now see if we can link
589
AC_MSG_CHECKING(for libpcrecpp)
590
save_LDFLAGS="$LDFLAGS"
591
LDFLAGS="-lpcrecpp -lpcre"
595
[pcrecpp::RE_Options opt;],
597
[AC_MSG_ERROR([Couldn't link libpcrecpp])])
600
LDFLAGS="$save_LDFLAGS"
605
349
AC_SUBST(PCRE_LIBS)
606
350
AC_SUBST(PCRE_CFLAGS)
353
# Avoid bug in fcntl on some versions of linux
354
AC_MSG_CHECKING([if we should use 'skip-external-locking' as default for $target_os])
355
# Any variation of Linux
356
if expr "$target_os" : "[[Ll]]inux.*" > /dev/null
358
MYSQLD_DEFAULT_SWITCHES="--skip-external-locking"
361
AC_DEFINE([TARGET_OS_LINUX], [1], [Whether we build for Linux])
363
MYSQLD_DEFAULT_SWITCHES=""
367
AC_SUBST(MYSQLD_DEFAULT_SWITCHES)
368
AC_SUBST(TARGET_LINUX)
608
370
dnl Find paths to some shell programs
609
371
AC_PATH_PROG(LN, ln, ln)
610
372
# This must be able to take a -f flag like normal unix ln.
750
511
[ with_named_curses=no ]
514
# compile with strings functions in assembler
515
AC_ARG_ENABLE([assembler],
516
[AS_HELP_STRING([--enable-assembler],
517
[Use assembler versions of some string functions if available.])],
518
[ ENABLE_ASSEMBLER=$enableval ],
519
[ ENABLE_ASSEMBLER=no ]
522
AC_MSG_CHECKING(if we should use assembler functions)
523
# For now we only support assembler on i386 and sparc systems
524
AM_CONDITIONAL(ASSEMBLER_x86, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "i386" && $AS strings/strings-x86.s -o checkassembler >/dev/null 2>&1 && test -f checkassembler && (rm -f checkassembler; exit 0;))
525
AM_CONDITIONAL(ASSEMBLER_sparc32, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "sparc")
526
AM_CONDITIONAL(ASSEMBLER_sparc64, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "sparcv9")
527
AM_CONDITIONAL(ASSEMBLER, test "$ASSEMBLER_x86_TRUE" = "" -o "$ASSEMBLER_sparc32_TRUE" = "")
529
if test "$ASSEMBLER_TRUE" = ""
537
AC_MSG_CHECKING(if SHOW PROFILE should be enabled.)
538
AC_ARG_ENABLE([profiling],
539
[AS_HELP_STRING([--enable-profiling],
540
[Build a version with query profiling code])],
541
[ ENABLED_PROFILING=$enableval ],
542
[ ENABLED_PROFILING=no ])
544
if test "$ENABLED_PROFILING" = "yes"
546
AC_DEFINE([ENABLED_PROFILING], [1],
547
[If SHOW PROFILE should be enabled])
753
553
AC_ARG_WITH([tcp-port],
754
554
[AS_HELP_STRING([--with-tcp-port=port-number],
755
[Which port to use for Drizzle services @<:@default=4427@:>@])],
756
[ DRIZZLE_TCP_PORT=$withval ],
757
[ DRIZZLE_TCP_PORT=$DRIZZLE_TCP_PORT_DEFAULT
555
[Which port to use for Drizzle services @<:@default=3306@:>@])],
556
[ MYSQL_TCP_PORT=$withval ],
557
[ MYSQL_TCP_PORT=$MYSQL_TCP_PORT_DEFAULT
758
558
# if we actually defaulted (as opposed to the pathological case of
759
# --with-tcp-port=<DRIZZLE_TCP_PORT_DEFAULT> which might in theory
559
# --with-tcp-port=<MYSQL_TCP_PORT_DEFAULT> which might in theory
760
560
# happen if whole batch of servers was built from a script), set
761
561
# the default to zero to indicate that; we don't lose information
762
562
# that way, because 0 obviously indicates that we can get the
763
# default value from DRIZZLE_TCP_PORT. this seems really evil, but
764
# testing for DRIZZLE_TCP_PORT==DRIZZLE_TCP_PORT_DEFAULT would make a
765
# a port of DRIZZLE_TCP_PORT_DEFAULT magic even if the builder did not
563
# default value from MYSQL_TCP_PORT. this seems really evil, but
564
# testing for MYSQL_TCP_PORT==MYSQL_TCP_PORT_DEFAULT would make a
565
# a port of MYSQL_TCP_PORT_DEFAULT magic even if the builder did not
766
566
# intend it to mean "use the default, in fact, look up a good default
767
# from /etc/services if you can", but really, really meant 4427 when
768
# they passed in 4427. When they pass in a specific value, let them
567
# from /etc/services if you can", but really, really meant 3306 when
568
# they passed in 3306. When they pass in a specific value, let them
769
569
# have it; don't second guess user and think we know better, this will
770
570
# just make people cross. this makes the the logic work like this
771
571
# (which is complicated enough):
773
573
# - if a port was set during build, use that as a default.
775
575
# - otherwise, try to look up a port in /etc/services; if that fails,
776
# use DRIZZLE_TCP_PORT_DEFAULT (at the time of this writing 4427)
576
# use MYSQL_TCP_PORT_DEFAULT (at the time of this writing 3306)
778
# - allow the DRIZZLE_TCP_PORT environment variable to override that.
578
# - allow the MYSQL_TCP_PORT environment variable to override that.
780
580
# - allow command-line parameters to override all of the above.
782
# the top-most DRIZZLE_TCP_PORT_DEFAULT is read from win/configure.js,
582
# the top-most MYSQL_TCP_PORT_DEFAULT is read from win/configure.js,
783
583
# so don't mess with that.
784
DRIZZLE_TCP_PORT_DEFAULT=0 ]
584
MYSQL_TCP_PORT_DEFAULT=0 ]
786
AC_SUBST(DRIZZLE_TCP_PORT)
586
AC_SUBST(MYSQL_TCP_PORT)
787
587
# We might want to document the assigned port in the manual.
788
AC_SUBST(DRIZZLE_TCP_PORT_DEFAULT)
588
AC_SUBST(MYSQL_TCP_PORT_DEFAULT)
790
590
# Use this to set the place used for unix socket used to local communication.
791
591
AC_ARG_WITH([mysqld-user],
845
644
#--------------------------------------------------------------------
847
646
AC_CHECK_LIB(m, floor, [], AC_CHECK_LIB(m, __infinity))
849
AC_CHECK_FUNC(setsockopt, [], [AC_CHECK_LIB(socket, setsockopt)])
850
AC_CHECK_FUNC(yp_get_default_domain, [],
851
[AC_CHECK_LIB(nsl, yp_get_default_domain)])
852
AC_CHECK_FUNC(p2open, [], [AC_CHECK_LIB(gen, p2open)])
649
AC_CHECK_FUNC(setsockopt, , AC_CHECK_LIB(socket, setsockopt))
650
AC_CHECK_FUNC(yp_get_default_domain, ,
651
AC_CHECK_LIB(nsl, yp_get_default_domain))
652
AC_CHECK_FUNC(p2open, , AC_CHECK_LIB(gen, p2open))
853
653
# This may get things to compile even if bind-8 is installed
854
AC_CHECK_FUNC(bind, [], [AC_CHECK_LIB(bind, bind)])
654
AC_CHECK_FUNC(bind, , AC_CHECK_LIB(bind, bind))
855
655
# Check if crypt() exists in libc or libcrypt, sets LIBS if needed
856
656
AC_SEARCH_LIBS(crypt, crypt, AC_DEFINE(HAVE_CRYPT, 1, [crypt]))
859
659
AC_CHECK_LIB(rt, aio_read)
861
661
# For the sched_yield() function on Solaris
862
AC_CHECK_FUNC(sched_yield, [],
863
[AC_CHECK_LIB(posix4, [sched_yield],
864
[AC_DEFINE(HAVE_SCHED_YIELD) LIBS="$LIBS -lposix4"])])
662
AC_CHECK_FUNC(sched_yield, , AC_CHECK_LIB(posix4, sched_yield,
663
[AC_DEFINE(HAVE_SCHED_YIELD) LIBS="$LIBS -lposix4"]))
866
665
if test "$ac_cv_header_termio_h" = "no" -a "$ac_cv_header_termios_h" = "no"
868
AC_CHECK_FUNC(gtty, [], [AC_CHECK_LIB(compat, gtty)])
667
AC_CHECK_FUNC(gtty, , AC_CHECK_LIB(compat, gtty))
670
AC_CHECK_TYPES([int8, uint8, int16, uint16, int32, uint32, int64, uint64,
671
uchar, uint, ulong],[],[], [
672
#include <sys/types.h>
871
674
AC_CHECK_TYPES([fp_except], [], [], [
872
675
#include <sys/types.h>
873
676
#include <ieeefp.h>
876
680
my_save_LIBS="$LIBS"
878
682
AC_CHECK_LIB(dl,dlopen)
879
689
AC_CHECK_FUNCS(dlopen dlerror)
880
if test "$ac_cv_func_dlopen" != "yes"
882
AC_MSG_ERROR([Drizzle requires dlopen])
885
690
LIBS="$my_save_LIBS"
888
692
AC_CHECK_FUNCS(strtok_r)
694
# Build optimized or debug version ?
695
# First check for gcc and g++
696
if test "$ac_cv_c_compiler_gnu" = "yes"
698
SYMBOLS_CFLAGS="-ggdb3"
699
DEBUG_OPTIMIZE_CC="-O0"
700
OPTIMIZE_CFLAGS="-O2"
706
if test "$ac_cv_prog_cxx_g" = "yes"
708
SYMBOLS_CXXFLAGS="-ggdb3"
709
DEBUG_OPTIMIZE_CXX="-O0"
710
OPTIMIZE_CXXFLAGS="-O2"
712
SYMBOLS_CXXFLAGS="-g"
713
DEBUG_OPTIMIZE_CXX=""
714
OPTIMIZE_CXXFLAGS="-O"
717
# If the user specified CFLAGS, we won't add any optimizations
718
if test -n "$SAVE_CFLAGS"
724
if test -n "$SAVE_CXXFLAGS"
727
DEBUG_OPTIMIZE_CXX=""
730
CFLAGS="${SYMBOLS_CFLAGS} ${CFLAGS}"
731
CXXFLAGS="${SYMBOLS_CXXFLAGS} ${CXXFLAGS}"
734
[AS_HELP_STRING([--with-debug],
735
[Add debug code (yes|no|full) @<:@default=no@:>@
736
Full adds memory checked, very slow.])],
737
[with_debug=$withval],
739
AM_CONDITIONAL(BUILD_DBUG, test "$with_debug" != "no")
740
if test "$with_debug" = "yes"
743
AC_DEFINE([DBUG_ON], [1], [Use libdbug])
744
CFLAGS="$DEBUG_OPTIMIZE_CC $CFLAGS"
745
CXXFLAGS="$DEBUG_OPTIMIZE_CXX $CXXFLAGS"
747
# Optimized version. No debug
748
AC_DEFINE([DBUG_OFF], [1], [Dont use libdbug])
749
CFLAGS="$OPTIMIZE_CFLAGS $CFLAGS"
750
CXXFLAGS="$OPTIMIZE_CXXFLAGS $CXXFLAGS"
753
# If we should allow error injection tests
754
AC_ARG_WITH([error-inject],
755
[AS_HELP_STRING([--with-error-inject],
756
[Enable error injection in Drizzle Server @<:@default=off@:>@])],
757
[ with_error_inject=$withval ],
758
[ with_error_inject=no ])
760
if test $with_debug != "no"
762
if test "$with_error_inject" = "yes"
764
AC_DEFINE([ERROR_INJECT_SUPPORT], [1],
765
[Enable error injection in Drizzle Server])
892
769
AC_ARG_WITH([fast-mutexes],
893
770
[AS_HELP_STRING([--with-fast-mutexes],
898
775
if test "$with_fast_mutexes" != "no"
900
AC_DEFINE([MY_PTHREAD_FASTMUTEX], [1],
901
[Define to 1 if you want to use fast mutexes])
777
if test "$with_debug" != "no"
779
AC_MSG_WARN(['--with-fast-mutexes' ignored when '--with-debug' is given])
781
AC_DEFINE([MY_PTHREAD_FASTMUTEX], [1],
782
[Define to 1 if you want to use fast mutexes])
904
AM_CONDITIONAL(BUILD_FAST_MUTEX,[test "$with_fast_mutexes" != "no"])
906
786
AC_ARG_WITH([comment],
907
787
[AS_HELP_STRING([--with-comment],
908
788
[Comment about compilation environment. @<:@default=off@:>@])],
917
797
AC_SUBST(COMPILATION_COMMENT)
919
if expr "$target_os" : "[[Ll]]inux.*" > /dev/null
799
AC_MSG_CHECKING("need of special linking flags")
800
if test "$TARGET_LINUX" = "true" -a "$ac_cv_c_compiler_gnu" = "yes" -a "$all_is_static" != "yes"
922
AC_DEFINE([TARGET_OS_LINUX], [1], [Whether we build for Linux])
802
LDFLAGS="$LDFLAGS -rdynamic"
803
AC_MSG_RESULT("-rdynamic")
805
case "$SYSTEM_TYPE$with_mysqld_ldflags " in
806
*freebsd*"-all-static "*|*dragonfly*"-all-static "*)
807
AC_MSG_RESULT("none")
809
*freebsd*|*dragonfly*)
810
MYSQLD_EXTRA_LDFLAGS="$MYSQLD_EXTRA_LDFLAGS -export-dynamic"
811
AC_MSG_RESULT("-export-dynamic")
814
AC_MSG_RESULT("none")
927
819
dnl Checks for typedefs, structures, and compiler characteristics.
825
MYSQL_NEEDS_MYSYS_NEW
826
# AC_CHECK_SIZEOF return 0 when it does not find the size of a
827
# type. We want a error instead.
828
AC_CHECK_SIZEOF(char, 1)
829
if test "$ac_cv_sizeof_char" -eq 0
831
AC_MSG_ERROR([No size for char type.])
833
AC_CHECK_SIZEOF(char*, 4)
834
AC_CHECK_SIZEOF(short, 2)
835
AC_CHECK_SIZEOF(int, 4)
836
if test "$ac_cv_sizeof_int" -eq 0
838
AC_MSG_ERROR("No size for int type.")
840
AC_CHECK_SIZEOF(long, 4)
841
if test "$ac_cv_sizeof_long" -eq 0
843
AC_MSG_ERROR("No size for long type.")
845
AC_CHECK_SIZEOF(long long, 8)
846
if test "$ac_cv_sizeof_long_long" -eq 0
848
AC_MSG_ERROR("Drizzle needs a long long type.")
933
850
# off_t is not a builtin type
934
851
AC_CHECK_SIZEOF(off_t, 4)
935
852
if test "$ac_cv_sizeof_off_t" -eq 0
941
858
dnl check if time_t is unsigned
864
# do we need #pragma interface/#pragma implementation ?
865
# yes if it's gcc 2.x, and not icc pretending to be gcc, and not cygwin
866
AC_MSG_CHECKING(the need for @%:@pragma interface/implementation)
867
# instead of trying to match SYSTEM_TYPE and CC_VERSION (that doesn't
868
# follow any standard), we'll use well-defined preprocessor macros:
869
AC_PREPROC_IFELSE([AC_LANG_SOURCE([[
870
#if !defined(__CYGWIN__) && !defined(__INTEL_COMPILER) && defined(__GNUC__) && (__GNUC__ < 3)
871
#error USE_PRAGMA_IMPLEMENTATION
873
]])],[AC_MSG_RESULT(no) ],[AC_MSG_RESULT(yes) ; CXXFLAGS="$CXXFLAGS -DUSE_PRAGMA_IMPLEMENTATION"])
947
875
# This always gives a warning. Ignore it unless you are cross compiling
949
877
#---START: Used in for client configure
950
878
# Check base type of last arg to accept
953
881
# Figure out what type of struct rlimit to use with setrlimit
954
DRIZZLE_TYPE_STRUCT_RLIMIT
882
MYSQL_TYPE_STRUCT_RLIMIT
955
883
# Find where the stack goes
956
DRIZZLE_STACK_DIRECTION
884
MYSQL_STACK_DIRECTION
957
885
# We want to skip alloca on irix unconditionally. It may work on some version..
959
887
# Do struct timespec have members tv_sec or ts_sec
961
889
# Do we have the tzname variable
963
891
# Do the c++ compiler have a bool type
965
893
AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
966
894
AC_CHECK_TYPES([size_t], [], [], [#include <stdio.h>])
968
DRIZZLE_PTHREAD_YIELD
895
AC_CHECK_TYPES([u_int32_t])
899
######################################################################
900
# For readline/libedit (We simply move the mimimum amount of stuff from
901
# the readline/libedit configure.in here)
971
903
dnl Checks for header files.
972
904
AC_CHECK_HEADERS(malloc.h sys/cdefs.h)
1060
992
AC_MSG_ERROR("Drizzle requires fcntl.")
1063
AC_CONFIG_LIBOBJ_DIR([mystrings])
1065
AC_CHECK_FUNCS(bsearch \
995
AC_CHECK_FUNCS(bcmp bfill bmove bsearch bzero \
1066
996
cuserid fchmod \
1067
997
fdatasync finite fpresetsticky fpsetmask fsync ftruncate \
1068
getcwd getpassphrase getpwnam \
998
getcwd getpass getpassphrase getpwnam \
1069
999
getpwuid getrlimit getrusage getwd index initgroups isnan \
1070
1000
localtime_r gethrtime gmtime_r \
1071
locking longjmp lrand48 madvise mallinfo \
1073
mkstemp mlockall perror poll pread pthread_attr_create mmap mmap64 \
1001
locking longjmp lrand48 madvise mallinfo memcpy memmove \
1002
mkstemp mlockall perror poll pread pthread_attr_create mmap mmap64 getpagesize \
1074
1003
pthread_attr_getstacksize pthread_attr_setprio pthread_attr_setschedparam \
1075
1004
pthread_attr_setstacksize pthread_condattr_create pthread_getsequence_np \
1076
1005
pthread_key_delete pthread_rwlock_rdlock pthread_setprio \
1077
1006
pthread_setprio_np pthread_setschedparam pthread_sigmask readlink \
1078
realpath rename rwlock_init setupterm \
1007
realpath rename rint rwlock_init setupterm \
1079
1008
shmget shmat shmdt shmctl sigaction sigemptyset sigaddset \
1080
1009
sighold sigset sigthreadmask port_create sleep \
1081
snprintf socket strcasecmp strerror strsignal strpbrk \
1082
tell tempnam vidattr \
1010
snprintf socket stpcpy strcasecmp strerror strsignal strnlen strpbrk strstr \
1011
strtol strtoll strtoul strtoull tell tempnam vidattr \
1083
1012
posix_fallocate backtrace backtrace_symbols backtrace_symbols_fd)
1086
# Test whether madvise() is declared in C++ code -- it is not on some
1087
# systems, such as Solaris
1088
AC_CHECK_DECLS([madvise], [], [], [AC_INCLUDES_DEFAULT[
1090
#include <sys/types.h>
1091
#include <sys/mman.h>
1097
AM_CONDITIONAL(BUILD_THR_RWLOCK,[test "$ac_cv_func_rwlock_init" -a "$ac_cv_funn_pthread_rwlock_rdlock"])
1099
1014
# Check that isinf() is available in math.h and can be used in both C and C++
1101
1016
AC_MSG_CHECKING(for isinf in math.h)
1136
1051
# Check definition of pthread_getspecific
1137
AC_CACHE_CHECK([args to pthread_getspecific], [mysql_cv_getspecific_args],
1138
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#if !defined(_REENTRANT)
1052
AC_CACHE_CHECK("args to pthread_getspecific", mysql_cv_getspecific_args,
1053
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#if !defined(_REENTRANT)
1139
1054
#define _REENTRANT
1141
1056
#define _POSIX_PTHREAD_SEMANTICS
1142
1057
#include <pthread.h> ]], [[ void *pthread_getspecific(pthread_key_t key);
1143
pthread_getspecific((pthread_key_t) NULL); ]])],
1144
[mysql_cv_getspecific_args=POSIX],
1145
[mysql_cv_getspecific_args=other])])
1058
pthread_getspecific((pthread_key_t) NULL); ]])],[mysql_cv_getspecific_args=POSIX],[mysql_cv_getspecific_args=other]))
1146
1059
if test "$mysql_cv_getspecific_args" = "other"
1148
1061
AC_DEFINE([HAVE_NONPOSIX_PTHREAD_GETSPECIFIC], [1],
1152
1065
# Check definition of pthread_mutex_init
1153
AC_CACHE_CHECK([args to pthread_mutex_init], [mysql_cv_mutex_init_args],
1154
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#define _REENTRANT
1066
AC_CACHE_CHECK("args to pthread_mutex_init", mysql_cv_mutex_init_args,
1067
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#define _REENTRANT
1155
1068
#define _POSIX_PTHREAD_SEMANTICS
1156
1069
#include <pthread.h> ]], [[
1157
1070
pthread_mutexattr_t attr;
1158
1071
pthread_mutex_t mp;
1159
pthread_mutex_init(&mp,&attr); ]])],
1160
[mysql_cv_mutex_init_args=POSIX],
1161
[mysql_cv_mutex_init_args=other])])
1072
pthread_mutex_init(&mp,&attr); ]])],[mysql_cv_mutex_init_args=POSIX],[mysql_cv_mutex_init_args=other]))
1162
1073
if test "$mysql_cv_mutex_init_args" = "other"
1164
1075
AC_DEFINE([HAVE_NONPOSIX_PTHREAD_MUTEX_INIT], [1],
1169
1080
#---START: Used in for client configure
1170
1081
# Check definition of readdir_r
1171
AC_CACHE_CHECK([args to readdir_r], [mysql_cv_readdir_r],
1172
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define _REENTRANT
1082
AC_CACHE_CHECK("args to readdir_r", mysql_cv_readdir_r,
1083
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define _REENTRANT
1173
1084
#define _POSIX_PTHREAD_SEMANTICS
1174
1085
#include <pthread.h>
1175
1086
#include <dirent.h>]], [[ int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);
1176
readdir_r((DIR *) NULL, (struct dirent *) NULL, (struct dirent **) NULL); ]])],
1177
[mysql_cv_readdir_r=POSIX],
1178
[mysql_cv_readdir_r=other])])
1087
readdir_r((DIR *) NULL, (struct dirent *) NULL, (struct dirent **) NULL); ]])],[mysql_cv_readdir_r=POSIX],[mysql_cv_readdir_r=other]))
1179
1088
if test "$mysql_cv_readdir_r" = "POSIX"
1181
1090
AC_DEFINE([HAVE_READDIR_R], [1], [POSIX readdir_r])
1184
1093
# Check definition of posix sigwait()
1185
AC_CACHE_CHECK([style of sigwait], [mysql_cv_sigwait],
1186
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1094
AC_CACHE_CHECK("style of sigwait", mysql_cv_sigwait,
1095
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define _REENTRANT
1188
1096
#define _POSIX_PTHREAD_SEMANTICS
1189
1097
#include <pthread.h>
1098
#include <signal.h>]], [[#ifndef _AIX
1195
1101
sigwait(&set,&sig);
1198
[mysql_cv_sigwait=POSIX],
1199
[mysql_cv_sigwait=other])])
1102
#endif]])],[mysql_cv_sigwait=POSIX],[mysql_cv_sigwait=other]))
1200
1103
if test "$mysql_cv_sigwait" = "POSIX"
1202
1105
AC_DEFINE([HAVE_SIGWAIT], [1], [POSIX sigwait])
1207
1110
unset mysql_cv_sigwait
1208
1111
# Check definition of posix sigwait()
1209
AC_CACHE_CHECK([style of sigwait], [mysql_cv_sigwait],
1210
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1112
AC_CACHE_CHECK("style of sigwait", mysql_cv_sigwait,
1113
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define _REENTRANT
1212
1114
#define _POSIX_PTHREAD_SEMANTICS
1213
1115
#include <pthread.h>
1116
#include <signal.h>]], [[sigset_t set;
1220
[mysql_cv_sigwait=NONPOSIX],
1221
[mysql_cv_sigwait=other])])
1118
sigwait(&set);]])],[mysql_cv_sigwait=NONPOSIX],[mysql_cv_sigwait=other]))
1222
1119
if test "$mysql_cv_sigwait" = "NONPOSIX"
1224
1121
AC_DEFINE([HAVE_NONPOSIX_SIGWAIT], [1], [sigwait with one argument])
1229
1126
# Check if pthread_attr_setscope() exists
1230
AC_CACHE_CHECK([for pthread_attr_setscope], [mysql_cv_pthread_attr_setscope],
1231
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1127
AC_CACHE_CHECK("for pthread_attr_setscope", mysql_cv_pthread_attr_setscope,
1128
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define _REENTRANT
1233
1129
#define _POSIX_PTHREAD_SEMANTICS
1234
#include <pthread.h>
1236
pthread_attr_t thr_attr;
1237
pthread_attr_setscope(&thr_attr,0);
1239
[mysql_cv_pthread_attr_setscope=yes],
1240
[mysql_cv_pthread_attr_setscope=no])])
1130
#include <pthread.h>]], [[pthread_attr_t thr_attr;
1131
pthread_attr_setscope(&thr_attr,0);]])],[mysql_cv_pthread_attr_setscope=yes],[mysql_cv_pthread_attr_setscope=no]))
1241
1132
if test "$mysql_cv_pthread_attr_setscope" = "yes"
1243
1134
AC_DEFINE([HAVE_PTHREAD_ATTR_SETSCOPE], [1], [pthread_attr_setscope])
1285
1176
# functions tested above
1286
1177
#--------------------------------------------------------------------
1288
DRIZZLE_CONFIGURE_PLUGINS([none])
1179
MYSQL_CONFIGURE_PLUGINS([none])
1290
1181
AC_SUBST(mysql_plugin_dirs)
1291
1182
AC_SUBST(mysql_plugin_libs)
1292
1183
AC_SUBST(mysql_plugin_defs)
1294
# Build optimized or debug version ?
1295
# First check for gcc and g++
1296
if test "$ac_cv_c_compiler_gnu" = "yes"
1298
SYMBOLS_CFLAGS="-ggdb3"
1299
DEBUG_OPTIMIZE_CC="-O0"
1300
OPTIMIZE_CFLAGS="-O3"
1303
DEBUG_OPTIMIZE_CC=""
1304
OPTIMIZE_CFLAGS="-O"
1306
if test "$ac_cv_prog_cxx_g" = "yes"
1308
SYMBOLS_CXXFLAGS="-ggdb3"
1309
DEBUG_OPTIMIZE_CXX="-O0"
1310
OPTIMIZE_CXXFLAGS="-O3"
1312
SYMBOLS_CXXFLAGS="-g"
1313
DEBUG_OPTIMIZE_CXX=""
1314
OPTIMIZE_CXXFLAGS="-O"
1317
dnl TODO: Remove this define once we are using 2.61 across the board.
1320
# Check whether to enable assertions.
1321
AC_DEFUN([AX_HEADER_ASSERT],
1323
AC_MSG_CHECKING([whether to enable assertions])
1324
AC_ARG_ENABLE([assert],
1325
[AS_HELP_STRING([--disable-assert],
1326
[Turn off assertions])],
1327
[ac_cv_assert="no"],
1328
[ac_cv_assert="yes"])
1329
AC_MSG_RESULT([$ac_cv_assert])
1334
CFLAGS="${SYMBOLS_CFLAGS} ${CFLAGS}"
1335
CXXFLAGS="${SYMBOLS_CXXFLAGS} ${CXXFLAGS}"
1336
#CXXFLAGS="${SYMBOLS_CXXFLAGS} ${CXXFLAGS} -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS"
1338
AC_ARG_WITH([debug],
1339
[AS_HELP_STRING([--with-debug],
1340
[Add debug code/turns off optimizations (yes|no) @<:@default=no@:>@])],
1341
[with_debug=$withval],
1343
if test "$with_debug" = "yes"
1346
CFLAGS="$DEBUG_OPTIMIZE_CC -DDEBUG $CFLAGS ${SAVE_CFLAGS}"
1347
CXXFLAGS="$DEBUG_OPTIMIZE_CXX -DDEBUG $CXXFLAGS ${SAVE_CXXFLAGS}"
1349
# Optimized version. No debug
1350
CFLAGS="${OPTIMIZE_CFLAGS} ${CFLAGS} ${SAVE_CFLAGS}"
1351
CXXFLAGS="$OPTIMIZE_CXXFLAGS $CXXFLAGS ${SAVE_CXXFLAGS}"
1354
AC_ARG_ENABLE([profiling],
1355
[AS_HELP_STRING([--enable-profiling],
1356
[Toggle profiling @<:@default=off@:>@])],
1357
[ac_profiling="$enableval"],
1358
[ac_profiling="no"])
1360
AC_ARG_ENABLE([coverage],
1361
[AS_HELP_STRING([--enable-coverage],
1362
[Toggle coverage @<:@default=off@:>@])],
1363
[ac_coverage="$enableval"],
1366
1185
AC_ARG_ENABLE([pedantic-warnings],
1367
1186
[AS_HELP_STRING([--disable-pedantic-warnings],
1368
1187
[Toggle pedanticness @<:@default=on@:>@])],
1381
1200
[ac_warn_unreachable="$enableval"],
1382
1201
[ac_warn_unreachable="no"])
1384
AC_ARG_ENABLE([longlong-warnings],
1385
[AS_HELP_STRING([--enable-longlong-warnings],
1386
[Enable warnings about longlong in C++ @<:@default=off@:>@])],
1387
[ac_warn_longlong="$enableval"],
1388
[ac_warn_longlong="no"])
1390
AC_ARG_ENABLE([strict-aliasing],
1391
[AS_HELP_STRING([--enable-strict-aliasing],
1392
[Enable warnings about stict-aliasing @<:@default=off@:>@])],
1393
[ac_warn_strict_aliasing="$enableval"],
1394
[ac_warn_strict_aliasing="no"])
1396
AC_ARG_ENABLE([cast-warnings],
1397
[AS_HELP_STRING([--enable-cast-warnings],
1398
[Enable warnings about use of old C-style casts @<:@default=off@:>@])],
1399
[ac_warn_cast="$enableval"],
1400
[ac_warn_cast="no"])
1402
AC_ARG_ENABLE([effective-style],
1403
[AS_HELP_STRING([--enable-effective-style],
1404
[Enable warnings violating Effective C++ Style Guidelines @<:@default=off@:>@])],
1405
[ac_warn_effc="$enableval"],
1406
[ac_warn_effc="no"])
1408
AC_ARG_ENABLE([go-crazy],
1409
[AS_HELP_STRING([--enable-go-crazy],
1410
[Enables extra little warnings that might be too much @<:@default=off@:>@])],
1411
[ac_warn_go_crazy="$enableval"],
1412
[ac_warn_go_crazy="no"])
1415
1204
if test "$GCC" = "yes"
1418
if test "$ac_warn_longlong" = "yes"
1420
W_LONGLONG="-Wlong-long"
1422
W_LONGLONG="-Wno-long-long"
1425
if test "$ac_warn_strict_aliasing" = "yes"
1427
W_STRICT_ALIASING="-Wstrict-aliasing"
1429
W_STRICT_ALIASING="-Wno-strict-aliasing"
1432
if test "$ac_profiling" = "yes"
1434
GPROF_PROFILING="-pg"
1439
if test "$ac_coverage" = "yes"
1441
GPROF_COVERAGE="-fprofile-arcs -ftest-coverage"
1207
GCC_WARNINGS="-W -Wall -Wextra"
1208
GXX_WARNINGS="${GCC_WARNINGS}"
1446
1211
if test "$ac_warn_pedantic" = "yes"
1448
GCC_PEDANTIC="-pedantic -Wundef -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls ${W_STRICT_ALIASING}"
1449
GXX_PEDANTIC="-pedantic -Wundef -Wredundant-decls ${W_LONGLONG} ${W_STRICT_ALIASING}"
1213
GCC_WARNINGS="${GCC_WARNINGS} -std=gnu99 -pedantic -Wundef -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wno-strict-aliasing "
1214
GXX_WARNINGS="${GXX_WARNINGS} -std=gnu++98 -pedantic -Wundef -Wredundant-decls -Wno-long-long -Wno-strict-aliasing"
1452
1217
if test "$ac_warn_unreachable" = "yes"
1454
W_UNREACHABLE="-Wunreachable-code"
1219
GCC_WARNINGS="${GCC_WARNINGS} -Wunreachable-code"
1220
GXX_WARNINGS="${GXX_WARNINGS} -Wunreachable-code"
1457
1223
if test "$ac_warn_fail" = "yes"
1462
if test "$ac_warn_cast" = "yes"
1464
W_CAST="-Wold-style-cast"
1467
if test "$ac_warn_effc" = "yes"
1472
if test "$ac_warn_gocrazy" = "yes"
1474
W_CRAZY="-Wshadow -Wconversion -Winvalid-pch"
1477
BASE_WARNINGS="-W -Wall -Wextra -Wunused-macros"
1478
GCC_WARNINGS="${C99_SUPPORT_HACK} ${BASE_WARNINGS} ${GCC_PEDANTIC} ${W_UNREACHABLE} ${W_FAIL} ${GPROF_PROFILING} ${GPROF_COVERAGE} ${W_CRAZY}"
1479
GXX_WARNINGS="${BASE_WARNINGS} ${GXX_PEDANTIC} ${W_UNREACHABLE} ${W_FAIL} ${GPROF_PROFILING} ${GPROF_COVERAGE} ${W_CAST} ${W_EFFC} ${W_CRAZY}"
1481
AM_CXXFLAGS="${GXX_WARNINGS} ${AM_CXXFLAGS}"
1482
AM_CFLAGS="${GCC_WARNINGS} ${AM_CFLAGS}"
1225
GCC_WARNINGS="${GCC_WARNINGS} -Werror"
1226
GXX_WARNINGS="${GXX_WARNINGS} -Werror"
1229
CXXFLAGS="$CXXFLAGS ${GXX_WARNINGS}"
1230
CFLAGS="$CFLAGS ${GCC_WARNINGS} "
1485
AC_SUBST([GLOBAL_CPPFLAGS],['-I$(top_srcdir) -I$(top_builddir)'])
1486
AC_SUBST([AM_CPPFLAGS],['${GLOBAL_CPPFLAGS}'])
1487
AC_SUBST([AM_CFLAGS])
1488
AC_SUBST([AM_CXXFLAGS])
1490
1233
# Some usefull subst
1503
1246
AC_SUBST(MAKE_BINARY_DISTRIBUTION_OPTIONS)
1505
dnl GCC Precompiled Header Support
1506
AM_CONDITIONAL([GCC_PCH],[test "x$GCC" = "xyes"])
1508
AC_CONFIG_FILES(Makefile extra/Makefile mysys/Makefile dnl
1509
mystrings/Makefile storage/Makefile dnl
1510
vio/Makefile po/Makefile.in dnl
1248
AC_CONFIG_FILES(Makefile extra/Makefile mysys/Makefile mysys/tests/Makefile dnl
1249
strings/Makefile strings/tests/Makefile storage/Makefile dnl
1511
1251
libdrizzle/Makefile client/Makefile dnl
1512
drizzled/Makefile dnl
1513
drizzled/field/Makefile dnl
1514
drizzled/serialize/Makefile dnl
1515
drizzled/functions/Makefile dnl
1516
drizzled/util/Makefile dnl
1517
drizzled/sql_builtin.cc dnl
1252
server/Makefile server/share/Makefile dnl
1253
server/sql_builtin.cc dnl
1254
dbug/Makefile include/Makefile dnl
1518
1255
support-files/Makefile dnl
1519
1256
tests/Makefile tests/install_test_db dnl
1520
drizzled/version.h plugin/Makefile dnl
1521
drizzled/drizzled_safe support-files/libdrizzle.pc dnl
1257
include/drizzle_version.h plugin/Makefile dnl
1258
server/drizzled_safe support-files/libdrizzle.pc dnl
1522
1259
support-files/drizzle.server support-files/drizzle-log-rotate)
1524
1261
AC_CONFIG_COMMANDS([default], , test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h)
1526
1263
# Ensure that table handlers gets all modifications to CFLAGS/CXXFLAGS
1527
AC_CONFIG_COMMANDS_POST(ac_configure_args="$ac_configure_args CFLAGS='$CFLAGS' CXXFLAGS='$CXXFLAGS' AM_CFLAGS='$AM_CFLAGS' AM_CXXFLAGS='$AM_CXXFLAGS'")
1264
AC_CONFIG_COMMANDS_POST(ac_configure_args="$ac_configure_args CFLAGS='$CFLAGS' CXXFLAGS='$CXXFLAGS'")
1532
echo "Configuration summary for $PACKAGE_NAME version $VERSION"
1534
echo " * Installation prefix: $prefix"
1535
echo " * System type: $SYSTEM_TYPE"
1536
echo " * Host CPU: $host_cpu"
1537
echo " * C Compiler: $CC_VERSION"
1538
echo " * C++ Compiler: $CXX"
1539
echo " * Build auth_pam: $ac_cv_header_security_pam_appl_h"
1540
echo " * Assertions enabled: $ac_cv_assert"
1541
echo " * Debug enabled: $with_debug"
1542
echo " * Profiling enabled: $ac_profiling"
1543
echo " * Coverage enabled: $ac_coverage"
1544
echo " * Warnings as failure: $ac_warn_fail"
1545
echo " * C++ cstdint location: $ac_cv_cxx_cstdint"
1546
echo " * C++ hash_map location: $ac_cv_cxx_hash_map"
1547
echo " * C++ hash namespace: $ac_cv_cxx_hash_namespace"
1548
echo " * C++ cmath location: $ac_cv_cxx_cmath"
1549
echo " * C++ cmath namespace: $ac_cv_cxx_cmath_namespace"