~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to configure.ac

  • Committer: Monty Taylor
  • Date: 2008-07-09 19:33:54 UTC
  • mto: (77.6.1 glibclient-merge)
  • mto: This revision was merged to the branch mainline in revision 124.
  • Revision ID: monty@inaugust.com-20080709193354-vi0pemwf40galnll
First step of sql-common removal (the cheap way) 

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
dnl -*- ksh -*-
2
2
dnl Process this file with autoconf to produce a configure script.
3
3
 
4
 
AC_PREREQ(2.59)dnl              Minimum Autoconf version required.
 
4
AC_PREREQ(2.61)dnl              Minimum Autoconf version required.
5
5
 
6
 
AC_INIT(drizzle, [7.0.0], [http://bugs.launchpad.net/drizzle])
7
 
AC_CONFIG_SRCDIR([drizzled/drizzled.cc])
 
6
AC_INIT
 
7
AC_CONFIG_SRCDIR([server/drizzled.cc])
8
8
AC_CONFIG_AUX_DIR(config)
9
 
AC_CONFIG_HEADERS([config.h])
10
 
 
11
 
# Save some variables and the command line options for mysqlbug
12
 
SAVE_CC="$CC"
13
 
SAVE_CXX="$CXX"
14
 
SAVE_ASFLAGS="$ASFLAGS"
15
 
SAVE_CFLAGS="$CFLAGS"
16
 
SAVE_CXXFLAGS="$CXXFLAGS"
17
 
SAVE_LDFLAGS="$LDFLAGS"
18
 
SAVE_CXXLDFLAGS="$CXXLDFLAGS"
19
 
CONF_COMMAND="$0 $ac_configure_args"
20
 
AC_SUBST(CONF_COMMAND)
21
 
AC_SUBST(SAVE_CC)
22
 
AC_SUBST(SAVE_CXX)
23
 
AC_SUBST(SAVE_ASFLAGS)
24
 
AC_SUBST(SAVE_CFLAGS)
25
 
AC_SUBST(SAVE_CXXFLAGS)
26
 
AC_SUBST(SAVE_LDFLAGS)
27
 
AC_SUBST(SAVE_CXXLDFLAGS)
28
 
AC_SUBST(CXXLDFLAGS)
29
 
 
 
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)
32
12
 
33
13
PROTOCOL_VERSION=10
34
14
DOT_FRM_VERSION=6
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
38
18
 
39
19
 
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"
43
 
then
44
 
  CFLAGS=
45
 
fi
46
 
if test "x${CXXFLAGS}" = "x-g -O2"
47
 
then
48
 
  CXXFLAGS=
49
 
fi
50
 
 
51
20
 
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
55
24
#
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
61
30
#
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}'`
67
36
 
68
37
# The port should be constant for a LONG time
69
 
DRIZZLE_TCP_PORT_DEFAULT=4427
70
 
 
71
 
sinclude(m4/dtrace.m4)
72
 
sinclude(m4/character_sets.m4)
73
 
 
74
 
AM_GNU_GETTEXT([external])
75
 
AM_GNU_GETTEXT_VERSION(0.17)
76
 
 
77
 
AM_CONDITIONAL([BUILD_GETTEXT],[test "x$MSGMERGE" != "x" -a "x$MSGMERGE" != "x:"])
78
 
 
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
 
39
 
 
40
dnl Include m4 
 
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
 
 
52
# Remember to add a directory server/share/LANGUAGE
 
53
AVAILABLE_LANGUAGES="\
 
54
czech danish dutch english estonian french german greek hungarian \
 
55
italian japanese korean norwegian norwegian-ny polish portuguese \
 
56
romanian russian serbian slovak spanish swedish ukrainian"
 
57
 
 
58
#####
 
59
#####
 
60
 
 
61
AC_SUBST(MYSQL_NO_DASH_VERSION)
 
62
AC_SUBST(MYSQL_BASE_VERSION)
 
63
AC_SUBST(MYSQL_VERSION_ID)
 
64
AC_SUBST(MYSQL_PREVIOUS_BASE_VERSION)
83
65
AC_SUBST(PROTOCOL_VERSION)
84
66
AC_DEFINE_UNQUOTED([PROTOCOL_VERSION], [$PROTOCOL_VERSION],
85
67
                   [mysql client protocol version])
90
72
AC_SUBST(SHARED_LIB_VERSION)
91
73
AC_SUBST(AVAILABLE_LANGUAGES)
92
74
 
93
 
# General Constants
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 ])
107
 
 
108
 
AC_DEFINE([MASTER],[1],[Compile without unireg])
109
 
 
110
 
AH_VERBATIM([QUOTE_ARG],[
111
 
/* Quote argument (before cpp) */
112
 
#ifndef QUOTE_ARG
113
 
# define QUOTE_ARG(x) #x
114
 
#endif
115
 
/* Quote argument, (after cpp) */
116
 
#ifndef STRINGIFY_ARG
117
 
# define STRINGIFY_ARG(x) QUOTE_ARG(x)
118
 
#endif
119
 
])
120
 
 
121
 
AH_VERBATIM([builtin_expect],[
122
 
/*
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
129
 
 */
130
 
#if !defined(__GNUC__)
131
 
#define __builtin_expect(x, expected_value) (x)
132
 
#endif
133
 
 
134
 
#define likely(x)  __builtin_expect((x),1)
135
 
#define unlikely(x)  __builtin_expect((x),0)
136
 
])
137
 
 
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.
141
 
 
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
144
 
dnl  InnoDB's use.
145
 
 
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])
149
 
 
150
 
AH_VERBATIM([posix_pthread],[
151
 
/* We want posix threads */
152
 
#ifndef _POSIX_PTHREAD_SEMANTICS
153
 
#define _POSIX_PTHREAD_SEMANTICS
154
 
#endif
155
 
])
156
 
 
157
75
 
158
76
# Canonicalize the configuration name.
159
77
 
181
99
  i?86) BASE_MACHINE_TYPE=i386 ;;
182
100
esac
183
101
 
 
102
# Save some variables and the command line options for mysqlbug
 
103
SAVE_CC="$CC"
 
104
SAVE_CXX="$CXX"
 
105
SAVE_ASFLAGS="$ASFLAGS"
 
106
SAVE_CFLAGS="$CFLAGS"
 
107
SAVE_CXXFLAGS="$CXXFLAGS"
 
108
SAVE_LDFLAGS="$LDFLAGS"
 
109
SAVE_CXXLDFLAGS="$CXXLDFLAGS"
 
110
CONF_COMMAND="$0 $ac_configure_args"
 
111
AC_SUBST(CONF_COMMAND)
 
112
AC_SUBST(SAVE_CC)
 
113
AC_SUBST(SAVE_CXX)
 
114
AC_SUBST(SAVE_ASFLAGS)
 
115
AC_SUBST(SAVE_CFLAGS)
 
116
AC_SUBST(SAVE_CXXFLAGS)
 
117
AC_SUBST(SAVE_LDFLAGS)
 
118
AC_SUBST(SAVE_CXXLDFLAGS)
 
119
AC_SUBST(CXXLDFLAGS)
 
120
 
184
121
AM_SANITY_CHECK
185
122
# This is needed is SUBDIRS is set
186
123
AC_PROG_MAKE_SET
209
146
 
210
147
################ End of section to be done before AC_PROG_CC #################
211
148
 
 
149
# The following hack should ensure that configure doesn't add optimizing
 
150
# or debugging flags to CFLAGS or CXXFLAGS
 
151
# C_EXTRA_FLAGS are flags that are automaticly added to both
 
152
# CFLAGS and CXXFLAGS
 
153
CFLAGS="$CFLAGS $C_EXTRA_FLAGS "
 
154
CXXFLAGS="$CXXFLAGS $C_EXTRA_FLAGS "
 
155
 
212
156
dnl Checks for programs.
 
157
AC_PROG_AWK
213
158
AC_PROG_CC
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])])
217
 
  C99_SUPPORT_HACK=""
218
 
],[C99_SUPPORT_HACK="-std=gnu99"])
219
159
AC_PROG_CXX
220
 
AC_CXX_HEADER_STDCXX_98
221
 
if test "$ac_cv_cxx_stdcxx_98" = "no"
222
 
then
223
 
  AC_MSG_ERROR([C++ Compiler required to compile Drizzle])
224
 
fi
225
160
AC_PROG_CPP
226
161
AM_PROG_CC_C_O
227
162
 
228
 
AC_CXX_STL_HASH
229
 
AC_CXX_CSTDINT
230
 
AC_CXX_CINTTYPES
231
 
AC_CXX_CMATH
232
 
 
233
163
# Print version of CC and CXX compiler (if they support --version)
234
164
case $SYSTEM_TYPE in
235
 
  *apple-darwin*)
236
 
    AC_DEFINE([TARGET_OS_OSX], [1], [Whether we build for OSX])
 
165
  *netware*)
 
166
CC_VERSION=`$CC -version | grep -i version`
237
167
    ;;
238
168
  *)
239
169
CC_VERSION=`$CC --version | sed 1q`
247
177
CC_VERSION=""
248
178
fi
249
179
AC_SUBST(CC_VERSION)
250
 
 
251
 
dnl AC_CANONICAL_HOST thinks it's a good idea to just set CFLAGS to 
252
 
dnl -g -O2 if you're running gcc. We would like to use something else, thanks.
253
 
if test "x${CFLAGS}" = "x-g -O2"
254
 
then
255
 
  CFLAGS=
256
 
fi
257
 
if test "x${CXXFLAGS}" = "x-g -O2"
258
 
then
259
 
  CXXFLAGS=
260
 
fi
261
 
 
262
 
DRIZZLE_CHECK_CXX_VERSION
263
 
 
264
 
AC_PROG_AWK
 
180
MYSQL_CHECK_CXX_VERSION
265
181
 
266
182
if test "$ac_cv_c_compiler_gnu" = "yes"
267
183
then
271
187
  AC_PATH_PROG(AS, as, as)
272
188
fi
273
189
 
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"
276
 
then
277
 
  AC_DEFINE([_GNU_SOURCE],[1],[Fix problem with S_ISLNK() on Linux])
278
 
fi
279
 
 
280
 
dnl  Solaris 9 include file <sys/feature_tests.h> refers to X/Open document
281
 
 
282
 
dnl  System Interfaces and Headers, Issue 5
283
 
 
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.
286
 
 
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.
293
 
 
294
 
dnl  To add more to this mess, Sun Studio C compiler defines _STDC_C99 while
295
 
dnl  C++ compiler does not!
296
 
 
297
 
dnl TODO: Can _ISOC99_SOURCE be defined on all platforms and remove the 
298
 
dnl       Need for all of this? 
299
 
case "$target_os" in
300
 
  *solaris*)
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])
305
 
  ;;
306
 
esac
307
 
 
308
 
 
 
190
# Still need ranlib for readline; local static use only so no libtool.
 
191
AC_PROG_RANLIB
309
192
# We use libtool
310
193
#AC_LIBTOOL_WIN32_DLL
311
194
AC_PROG_LIBTOOL
322
205
 
323
206
# Not critical since the generated file is distributed
324
207
AC_CHECK_PROGS(YACC, ['bison -y -p MYSQL'])
325
 
if test -z "$YACC" && test -d ".bzr"
326
 
then
327
 
  AC_MSG_ERROR(["bison is required for Drizzle to build from a bzr branch"])
328
 
fi
329
208
 
330
209
AC_PATH_PROG(uname_prog, uname, no)
331
210
 
359
238
then
360
239
  case "$host_cpu" in
361
240
    *ppc* | *powerpc*)
362
 
      AM_CFLAGS="$CFLAGS -mno-fused-madd"
363
 
      AM_CXXFLAGS="$CXXFLAGS -mno-fused-madd"
 
241
      CFLAGS="$CFLAGS -mno-fused-madd"
 
242
      CXXFLAGS="$CXXFLAGS -mno-fused-madd"
364
243
    ;;
365
244
  esac
366
245
fi
378
257
 
379
258
if test "$GCC" = "yes"
380
259
then
 
260
  # mysqld requires -fno-implicit-templates.
381
261
  # 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"
 
262
  # mysqld doesn't use run-time-type-checking, so we disable it.
 
263
  # We should use -Wno-invalid-offsetof flag to disable some warnings from gcc
 
264
  # regarding offset() usage in C++ which are done in a safe manner in the
 
265
  # server
 
266
  CXXFLAGS="$CXXFLAGS ${GCC_WARNINGS} -fno-implicit-templates -fno-exceptions -fno-rtti"
 
267
  CFLAGS="$CFLAGS ${GCC_WARNINGS} "
 
268
  AC_DEFINE([HAVE_EXPLICIT_TEMPLATE_INSTANTIATION],
 
269
    [1], [Defined by configure. Use explicit template instantiation.])
384
270
fi
385
271
 
386
 
DRIZZLE_PROG_AR
 
272
MYSQL_PROG_AR
387
273
 
388
 
# libdrizzle versioning when linked with GNU ld.
 
274
# libmysqlclient versioning when linked with GNU ld.
389
275
if $LD --version 2>/dev/null|grep -q GNU; then
390
 
  LD_VERSION_SCRIPT="-Wl,--version-script=\$(top_srcdir)/libdrizzle/libdrizzle.ver"
 
276
  LD_VERSION_SCRIPT="-Wl,--version-script=\$(top_builddir)/libdrizzle/libdrizzle.ver"
 
277
  AC_CONFIG_FILES(libdrizzle/libdrizzle.ver)
391
278
fi
392
279
AC_SUBST(LD_VERSION_SCRIPT)
393
280
 
394
 
#--------------------------------------------------------------------
395
 
# Check for Google Proto Buffers
396
 
#--------------------------------------------------------------------
397
 
 
398
 
AC_LANG_PUSH([C++])
399
 
AC_CHECK_HEADERS([google/protobuf/message.h])
400
 
if test "x$ac_cv_header_google_protobuf_message_h" != "xyes"
401
 
then
402
 
  AC_MSG_ERROR([Couldn't find message.h. Try installing Google Protocol Buffer development packages])
403
 
fi
404
 
 
405
 
save_CFLAGS="$CFLAGS"
406
 
save_LIBS="$LIBS"
407
 
CFLAGS=""
408
 
LIBS="-lprotobuf"
409
 
 
410
 
AC_CACHE_CHECK([for Message in libprotobuf], ac_libprotobuf_works, [
411
 
  AC_TRY_LINK([
412
 
#include <google/protobuf/descriptor.pb.h>
413
 
  ],[
414
 
    google::protobuf::FileDescriptorProto testFdp;
415
 
  ], ac_libprotobuf_works=yes, [
416
 
        AC_ERROR([could not find Google's libprotobuf])
417
 
  ])
418
 
 
419
 
])
420
 
 
421
 
PROTOBUF_LIBS="${LIBS}"
422
 
AC_SUBST(PROTOBUF_LIBS)
423
 
CFLAGS="$save_CFLAGS"
424
 
LIBS="$save_LIBS"
425
 
AC_LANG_POP()
426
 
 
427
 
#--------------------------------------------------------------------
428
 
# Check for libevent
429
 
#--------------------------------------------------------------------
430
 
 
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 ])
437
 
 
438
 
if test "$with_libevent" = "yes"
439
 
then
440
 
    AC_CHECK_HEADERS(event.h)
441
 
    if test "x$ac_cv_header_event_h" != "xyes"
442
 
    then
443
 
      AC_MSG_ERROR([Couldn't find event.h. Try installing libevent development packages])
444
 
    fi
445
 
    my_save_LIBS="$LIBS"
446
 
    LIBS=""
447
 
    AC_CHECK_LIB(event, event_loop, [], [AC_MSG_ERROR(could not find libevent)])
448
 
    LIBEVENT_LIBS="${LIBS}"
449
 
    LIBS="${my_save_LIBS}"
450
 
    LIBEVENT_CFLAGS=""
 
281
 
 
282
# Avoid bug in fcntl on some versions of linux
 
283
AC_MSG_CHECKING([if we should use 'skip-external-locking' as default for $target_os])
 
284
# Any variation of Linux
 
285
if expr "$target_os" : "[[Ll]]inux.*" > /dev/null
 
286
then
 
287
  MYSQLD_DEFAULT_SWITCHES="--skip-external-locking"
 
288
  TARGET_LINUX="true"
 
289
  AC_MSG_RESULT([yes])
 
290
  AC_DEFINE([TARGET_OS_LINUX], [1], [Whether we build for Linux])
451
291
else
452
 
    AC_MSG_RESULT($withval)
453
 
    if test -f $withval/event.h -a -f $withval/libevent.a; then
454
 
       owd=`pwd`
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
459
 
       owd=`pwd`
460
 
       if cd $withval; then withval=`pwd`; cd $owd; fi
461
 
       LIBEVENT_CFLAGS="-I$withval/include"
462
 
       LIBEVENT_LIBS="-L$withval/lib -levent"
463
 
    else
464
 
       AC_MSG_ERROR([event.h or libevent.a not found in $withval])
465
 
    fi
466
 
fi
467
 
 
468
 
AC_SUBST(LIBEVENT_CFLAGS)
469
 
AC_SUBST(LIBEVENT_LIBS)
470
 
 
471
 
AC_CACHE_CHECK([for bufferevent in libevent], ac_libevent_works, [
472
 
  save_CFLAGS="$CFLAGS"
473
 
  save_LIBS="$LIBS"
474
 
  CFLAGS="$LIBEVENT_CFLAGS"
475
 
  LIBS="$LIBEVENT_LIBS"
476
 
  AC_TRY_LINK([
477
 
#include <sys/types.h>
478
 
#include <sys/time.h>
479
 
#include <stdlib.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/])
486
 
  ])
487
 
 
488
 
  CFLAGS="$save_CFLAGS"
489
 
  LIBS="$save_LIBS"
490
 
])
491
 
 
492
 
 
493
 
#--------------------------------------------------------------------
494
 
# Check for libpthread
495
 
#--------------------------------------------------------------------
496
 
 
497
 
AC_CHECK_HEADERS(pthread.h)
498
 
if test "x$ac_cv_header_pthread_h" != "xyes"
499
 
then
500
 
  AC_MSG_ERROR([Couldn't find pthread.h.])
501
 
fi
502
 
AC_CHECK_LIB(pthread, pthread_create, [], [AC_MSG_ERROR(could not find libpthread)])
503
 
 
504
 
#--------------------------------------------------------------------
505
 
# Check for tcmalloc
506
 
#--------------------------------------------------------------------
507
 
 
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"])
513
 
 
514
 
if test "x$ac_enable_tcmalloc" = "xyes"
515
 
then
516
 
  AC_CHECK_LIB(tcmalloc,malloc,[],[])
517
 
fi
518
 
 
519
 
#--------------------------------------------------------------------
520
 
# Check for libz
521
 
#--------------------------------------------------------------------
522
 
 
523
 
my_save_LIBS="$LIBS"
524
 
LIBS=""
525
 
AC_CHECK_HEADERS(zlib.h)
526
 
if test "x$ac_cv_header_zlib_h" != "xyes"
527
 
then
528
 
  AC_MSG_ERROR([Couldn't find zlib.h. Try installing zlib development packages])
529
 
fi
530
 
AC_CHECK_LIB(z, crc32, [], [AC_MSG_ERROR(could not find libz)])
531
 
ZLIB_LIBS="$LIBS"
532
 
LIBS="$my_save_LIBS"
533
 
AC_SUBST(ZLIB_LIBS)
534
 
 
535
 
 
536
 
#--------------------------------------------------------------------
537
 
# Check for libreadline or compatible (libedit on Mac OS X)
538
 
#--------------------------------------------------------------------
539
 
 
540
 
AC_CHECK_HEADERS(readline/history.h readline/readline.h)
541
 
if test "x$ac_cv_header_readline_readline_h" != "xyes"
542
 
then
543
 
  AC_MSG_ERROR([Couldn't find readline/readline.h. Try installing readline development packages.])
544
 
fi
545
 
AC_CHECK_TYPES([HIST_ENTRY], [], [], [AC_INCLUDES_DEFAULT[
546
 
#ifdef HAVE_READLINE_HISTORY_H
547
 
#include <readline/history.h>
548
 
#endif
549
 
#include <readline/readline.h>
550
 
]])
551
 
AC_CHECK_DECLS([completion_matches], [], [], [AC_INCLUDES_DEFAULT[
552
 
#ifdef HAVE_READLINE_HISTORY_H
553
 
#include <readline/history.h>
554
 
#endif
555
 
#include <readline/readline.h>
556
 
]])
557
 
 
558
 
DRIZZLE_CHECK_NEW_RL_INTERFACE
559
 
 
560
 
my_save_LIBS="$LIBS"
561
 
LIBS=""
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"
567
 
LIBS="$my_save_LIBS"
568
 
AC_SUBST(READLINE_LIBS)
569
 
 
570
 
 
571
 
#--------------------------------------------------------------------
572
 
# Check for libpcre
573
 
#--------------------------------------------------------------------
574
 
 
575
 
AC_LANG_PUSH([C++])
576
 
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"])
578
 
 
579
 
if test "$found_pcre" = "no"
580
 
then
581
 
  dnl Only check the header here, because autoconf can't handle
582
 
  dnl checking for C++ methods without C linkages
583
 
  AC_CHECK_HEADERS(pcrecpp.h)
584
 
  if test "x$ac_cv_header_pcrecpp_h" != "xyes" 
585
 
  then
586
 
    AC_MSG_ERROR([Couldn't find pcrecpp.h. Try installing the development package associated with libpcre on your system.])
587
 
  else
588
 
    # Found headers, now see if we can link
589
 
    AC_MSG_CHECKING(for libpcrecpp)
590
 
    save_LDFLAGS="$LDFLAGS"
591
 
    LDFLAGS="-lpcrecpp -lpcre"
592
 
    AC_TRY_LINK([
593
 
#include <pcrecpp.h>
594
 
    ],
595
 
    [pcrecpp::RE_Options opt;],
596
 
    [found_pcre="yes"],
597
 
    [AC_MSG_ERROR([Couldn't link libpcrecpp])])
598
 
 
599
 
    PCRE_LIBS="$LDFLAGS"
600
 
    LDFLAGS="$save_LDFLAGS"
601
 
    AC_MSG_RESULT([yes])
602
 
  fi
603
 
fi
604
 
AC_LANG_POP([])
605
 
AC_SUBST(PCRE_LIBS)
606
 
AC_SUBST(PCRE_CFLAGS)
 
292
  MYSQLD_DEFAULT_SWITCHES=""
 
293
  TARGET_LINUX="false"
 
294
  AC_MSG_RESULT([no])
 
295
fi
 
296
AC_SUBST(MYSQLD_DEFAULT_SWITCHES)
 
297
AC_SUBST(TARGET_LINUX)
607
298
 
608
299
dnl Find paths to some shell programs
609
300
AC_PATH_PROG(LN, ln, ln)
687
378
  FIND_PROC="$PS \$\$PID | grep -v grep | grep \$\$MYSQLD > /dev/null"
688
379
else
689
380
  case $SYSTEM_TYPE in
690
 
    *freebsd*|*dragonfly*|*cygwin*)
 
381
    *freebsd*|*dragonfly*)
691
382
      FIND_PROC="$PS p \$\$PID | grep -v grep | grep \$\$MYSQLD > /dev/null"
692
383
      ;;
693
384
    *darwin*)
695
386
      ;;
696
387
    *)
697
388
      AC_MSG_ERROR([Could not find the right ps switches. Which OS is this ?. See the Installation chapter in the Reference Manual.])
698
 
      ;;
699
389
  esac
700
390
fi
701
391
AC_SUBST(FIND_PROC)
736
426
AC_ARG_WITH([server-suffix],
737
427
    [AS_HELP_STRING([--with-server-suffix],
738
428
      [Append value to the version string.])],
739
 
    [ DRIZZLE_SERVER_SUFFIX=`echo "$withval" | sed -e  's/^\(...................................\)..*$/\1/'` ],
740
 
    [ DRIZZLE_SERVER_SUFFIX= ]
 
429
    [ MYSQL_SERVER_SUFFIX=`echo "$withval" | sed -e  's/^\(...................................\)..*$/\1/'` ],
 
430
    [ MYSQL_SERVER_SUFFIX= ]
741
431
    )
742
 
AC_SUBST(DRIZZLE_SERVER_SUFFIX)
 
432
AC_SUBST(MYSQL_SERVER_SUFFIX)
743
433
 
744
434
# Force use of a curses libs
745
435
AC_ARG_WITH([named-curses-libs],
750
440
    [ with_named_curses=no ]
751
441
    )
752
442
 
 
443
# compile with strings functions in assembler
 
444
AC_ARG_ENABLE([assembler],
 
445
    [AS_HELP_STRING([--enable-assembler],
 
446
            [Use assembler versions of some string functions if available.])],
 
447
    [ ENABLE_ASSEMBLER=$enableval ],
 
448
    [ ENABLE_ASSEMBLER=no ]
 
449
    )
 
450
 
 
451
AC_MSG_CHECKING(if we should use assembler functions)
 
452
# For now we only support assembler on i386 and sparc systems
 
453
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;))
 
454
AM_CONDITIONAL(ASSEMBLER_sparc32, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "sparc")
 
455
AM_CONDITIONAL(ASSEMBLER_sparc64, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "sparcv9")
 
456
AM_CONDITIONAL(ASSEMBLER, test "$ASSEMBLER_x86_TRUE" = "" -o "$ASSEMBLER_sparc32_TRUE" = "")
 
457
 
 
458
if test "$ASSEMBLER_TRUE" = ""
 
459
then
 
460
  AC_MSG_RESULT([yes])
 
461
else
 
462
  AC_MSG_RESULT([no])
 
463
fi
 
464
 
 
465
# Add query profiler
 
466
AC_MSG_CHECKING(if SHOW PROFILE should be enabled.)
 
467
AC_ARG_ENABLE([profiling],
 
468
    [AS_HELP_STRING([--enable-profiling], 
 
469
            [Build a version with query profiling code])],
 
470
    [ ENABLED_PROFILING=$enableval ],
 
471
    [ ENABLED_PROFILING=no ])
 
472
 
 
473
if test "$ENABLED_PROFILING" = "yes"
 
474
then
 
475
  AC_DEFINE([ENABLED_PROFILING], [1],
 
476
            [If SHOW PROFILE should be enabled])
 
477
  AC_MSG_RESULT([yes]) 
 
478
else
 
479
  AC_MSG_RESULT([no])
 
480
fi
 
481
 
753
482
AC_ARG_WITH([tcp-port],
754
483
    [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
 
484
            [Which port to use for Drizzle services @<:@default=3306@:>@])],
 
485
    [ MYSQL_TCP_PORT=$withval ],
 
486
    [ MYSQL_TCP_PORT=$MYSQL_TCP_PORT_DEFAULT
758
487
      # if we actually defaulted (as opposed to the pathological case of
759
 
      # --with-tcp-port=<DRIZZLE_TCP_PORT_DEFAULT> which might in theory
 
488
      # --with-tcp-port=<MYSQL_TCP_PORT_DEFAULT> which might in theory
760
489
      # happen if whole batch of servers was built from a script), set
761
490
      # the default to zero to indicate that; we don't lose information
762
491
      # 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
 
492
      # default value from MYSQL_TCP_PORT. this seems really evil, but
 
493
      # testing for MYSQL_TCP_PORT==MYSQL_TCP_PORT_DEFAULT would make a
 
494
      # a port of MYSQL_TCP_PORT_DEFAULT magic even if the builder did not
766
495
      # 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
 
496
      # from /etc/services if you can", but really, really meant 3306 when
 
497
      # they passed in 3306. When they pass in a specific value, let them
769
498
      # have it; don't second guess user and think we know better, this will
770
499
      # just make people cross.  this makes the the logic work like this
771
500
      # (which is complicated enough):
773
502
      # - if a port was set during build, use that as a default.
774
503
      #
775
504
      # - 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)
 
505
      #   use MYSQL_TCP_PORT_DEFAULT (at the time of this writing 3306)
777
506
      #
778
 
      # - allow the DRIZZLE_TCP_PORT environment variable to override that.
 
507
      # - allow the MYSQL_TCP_PORT environment variable to override that.
779
508
      #
780
509
      # - allow command-line parameters to override all of the above.
781
510
      #
782
 
      # the top-most DRIZZLE_TCP_PORT_DEFAULT is read from win/configure.js,
 
511
      # the top-most MYSQL_TCP_PORT_DEFAULT is read from win/configure.js,
783
512
      # so don't mess with that.
784
 
      DRIZZLE_TCP_PORT_DEFAULT=0 ]
 
513
      MYSQL_TCP_PORT_DEFAULT=0 ]
785
514
    )
786
 
AC_SUBST(DRIZZLE_TCP_PORT)
 
515
AC_SUBST(MYSQL_TCP_PORT)
787
516
# We might want to document the assigned port in the manual.
788
 
AC_SUBST(DRIZZLE_TCP_PORT_DEFAULT)
 
517
AC_SUBST(MYSQL_TCP_PORT_DEFAULT)
789
518
 
790
519
# Use this to set the place used for unix socket used to local communication.
791
520
AC_ARG_WITH([mysqld-user],
813
542
  AC_MSG_RESULT([no])
814
543
fi
815
544
 
816
 
AC_SYS_LARGEFILE
817
 
AC_FUNC_FSEEKO
 
545
MYSQL_SYS_LARGEFILE
818
546
 
819
547
# Types that must be checked AFTER large file support is checked
820
548
AC_TYPE_SIZE_T
831
559
AC_CHECK_HEADERS(limits.h pwd.h select.h linux/config.h)
832
560
AC_CHECK_HEADERS(sys/fpu.h utime.h sys/utime.h )
833
561
AC_CHECK_HEADERS(synch.h sys/mman.h sys/socket.h netinet/in.h arpa/inet.h)
834
 
AC_CHECK_HEADERS(sys/timeb.h sys/vadvise.h sys/wait.h term.h)
835
 
AC_CHECK_HEADERS(termio.h termios.h sched.h alloca.h)
 
562
AC_CHECK_HEADERS(sys/timeb.h ys/un.h sys/vadvise.h sys/wait.h term.h)
 
563
AC_CHECK_HEADERS(termio.h termios.h sched.h crypt.h alloca.h)
836
564
AC_CHECK_HEADERS(sys/ioctl.h malloc.h sys/malloc.h sys/ipc.h sys/shm.h)
837
565
AC_CHECK_HEADERS(sys/prctl.h sys/resource.h sys/param.h port.h ieeefp.h)
838
566
AC_CHECK_HEADERS(execinfo.h)
839
567
 
840
568
AC_CHECK_HEADERS([xfs/xfs.h])
 
569
#--------------------------------------------------------------------
 
570
# Check for libevent
 
571
#--------------------------------------------------------------------
 
572
 
 
573
AC_CHECK_LIB(event, event_loop, [], [AC_MSG_ERROR(could not find libevent)])
 
574
 
 
575
#--------------------------------------------------------------------
 
576
# Check for libpthread
 
577
#--------------------------------------------------------------------
 
578
 
 
579
AC_CHECK_LIB(pthread, pthread_create, [], [AC_MSG_ERROR(could not find libpthread)])
 
580
 
 
581
#--------------------------------------------------------------------
 
582
# Check for libpcre
 
583
#--------------------------------------------------------------------
 
584
 
 
585
AC_PATH_PROG(PKG_CONFIG, pkg-config, AC_MSG_ERROR([pkg-config wasn't found.]))
 
586
PKG_CHECK_MODULES(PCRE, [libpcrecpp >= 3], [found_pcre="yes"],[
 
587
  AC_CHECK_LIB(pcrecpp, [DoMatch], [found_pcre="no"])
 
588
  AC_CHECK_HEADERS(pcrecpp.h)
 
589
  if test "x$ac_cv_header_prcecpp_h" = "xno" 
 
590
  then
 
591
    found_pcre="no"
 
592
  fi
 
593
  ])
 
594
if test "x$found_pcre" != "xyes"
 
595
then
 
596
    AC_MSG_ERROR([Couldn't find pcrecpp.h. Try installing the development package associated with libpcre on your system.])
 
597
fi
 
598
AC_SUBST(PCRE_LIBS)
 
599
AC_SUBST(PCRE_CFLAGS)
841
600
 
842
601
#--------------------------------------------------------------------
843
602
# Check for system libraries. Adds the library to $LIBS
845
604
#--------------------------------------------------------------------
846
605
 
847
606
AC_CHECK_LIB(m, floor, [], AC_CHECK_LIB(m, __infinity))
 
607
AC_CHECK_FUNCS(log2)
848
608
 
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)])
 
609
AC_CHECK_FUNC(setsockopt, , AC_CHECK_LIB(socket, setsockopt))
 
610
AC_CHECK_FUNC(yp_get_default_domain, ,
 
611
  AC_CHECK_LIB(nsl, yp_get_default_domain))
 
612
AC_CHECK_FUNC(p2open, , AC_CHECK_LIB(gen, p2open))
853
613
# This may get things to compile even if bind-8 is installed
854
 
AC_CHECK_FUNC(bind, [], [AC_CHECK_LIB(bind, bind)])
 
614
AC_CHECK_FUNC(bind, , AC_CHECK_LIB(bind, bind))
855
615
# Check if crypt() exists in libc or libcrypt, sets LIBS if needed
856
616
AC_SEARCH_LIBS(crypt, crypt, AC_DEFINE(HAVE_CRYPT, 1, [crypt]))
857
617
 
859
619
AC_CHECK_LIB(rt, aio_read)
860
620
 
861
621
# 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"])])
 
622
AC_CHECK_FUNC(sched_yield, , AC_CHECK_LIB(posix4, sched_yield,
 
623
[AC_DEFINE(HAVE_SCHED_YIELD) LIBS="$LIBS -lposix4"]))
865
624
 
866
625
if test "$ac_cv_header_termio_h" = "no" -a "$ac_cv_header_termios_h" = "no"
867
626
then
868
 
  AC_CHECK_FUNC(gtty, [], [AC_CHECK_LIB(compat, gtty)])
 
627
  AC_CHECK_FUNC(gtty, , AC_CHECK_LIB(compat, gtty))
869
628
fi
870
629
 
 
630
AC_CHECK_TYPES([int8, uint8, int16, uint16, int32, uint32, int64, uint64,
 
631
                uchar, uint, ulong],[],[], [
 
632
#include <sys/types.h>
 
633
])
871
634
AC_CHECK_TYPES([fp_except], [], [], [
872
635
#include <sys/types.h>
873
636
#include <ieeefp.h>
874
637
])
875
638
 
 
639
 
876
640
my_save_LIBS="$LIBS"
877
641
LIBS=""
878
642
AC_CHECK_LIB(dl,dlopen)
 
643
LIBDL=$LIBS
 
644
LIBS="$my_save_LIBS"
 
645
AC_SUBST(LIBDL)
 
646
 
 
647
my_save_LIBS="$LIBS"
 
648
LIBS="$LIBS $LIBDL"
879
649
AC_CHECK_FUNCS(dlopen dlerror)
880
 
if test "$ac_cv_func_dlopen" != "yes"
881
 
then
882
 
  AC_MSG_ERROR([Drizzle requires dlopen])
883
 
fi
884
 
LIBDL_LIBS="$LIBS"
885
650
LIBS="$my_save_LIBS"
886
 
AC_SUBST(LIBDL_LIBS)
887
651
 
888
652
AC_CHECK_FUNCS(strtok_r)
889
653
 
890
 
 
 
654
# Build optimized or debug version ?
 
655
# First check for gcc and g++
 
656
if test "$ac_cv_c_compiler_gnu" = "yes"
 
657
then
 
658
  DEBUG_CFLAGS="-g"
 
659
  DEBUG_OPTIMIZE_CC="-O"
 
660
  OPTIMIZE_CFLAGS="$MAX_C_OPTIMIZE"
 
661
else
 
662
  DEBUG_CFLAGS="-g"
 
663
  DEBUG_OPTIMIZE_CC=""
 
664
  OPTIMIZE_CFLAGS="-O"
 
665
fi
 
666
if test "$ac_cv_prog_cxx_g" = "yes"
 
667
then
 
668
  DEBUG_CXXFLAGS="-g"
 
669
  DEBUG_OPTIMIZE_CXX="-O"
 
670
  OPTIMIZE_CXXFLAGS="$MAX_CXX_OPTIMIZE"
 
671
else
 
672
  DEBUG_CXXFLAGS="-g"
 
673
  DEBUG_OPTIMIZE_CXX=""
 
674
  OPTIMIZE_CXXFLAGS="-O"
 
675
fi
 
676
 
 
677
# If the user specified CFLAGS, we won't add any optimizations
 
678
if test -n "$SAVE_CFLAGS"
 
679
then
 
680
  OPTIMIZE_CFLAGS=""
 
681
  DEBUG_OPTIMIZE_CC=""
 
682
fi
 
683
# Ditto for CXXFLAGS
 
684
if test -n "$SAVE_CXXFLAGS"
 
685
then
 
686
  OPTIMIZE_CXXFLAGS=""
 
687
  DEBUG_OPTIMIZE_CXX=""
 
688
fi
 
689
 
 
690
AC_ARG_WITH([debug],
 
691
    [AS_HELP_STRING([--with-debug],
 
692
            [Add debug code (yes|no|full) @<:@default=no@:>@ 
 
693
            Full adds memory checked, very slow.])],
 
694
    [with_debug=$withval],
 
695
    [with_debug=no])
 
696
AM_CONDITIONAL(BUILD_DBUG, test "$with_debug" != "no")
 
697
if test "$with_debug" = "yes"
 
698
then
 
699
  # Medium debug.
 
700
  AC_DEFINE([DBUG_ON], [1], [Use libdbug])
 
701
  CFLAGS="$DEBUG_CFLAGS $DEBUG_OPTIMIZE_CC $CFLAGS"
 
702
  CXXFLAGS="$DEBUG_CXXFLAGS $DEBUG_OPTIMIZE_CXX $CXXFLAGS"
 
703
  
 
704
elif test "$with_debug" = "full"
 
705
then
 
706
  # Full debug. Very slow in some cases
 
707
  AC_DEFINE([DBUG_ON], [1], [Use libdbug])
 
708
  CFLAGS="$DEBUG_CFLAGS $CFLAGS"
 
709
  CXXFLAGS="$DEBUG_CXXFLAGS $CXXFLAGS"
 
710
else
 
711
  # Optimized version. No debug
 
712
  AC_DEFINE([DBUG_OFF], [1], [Dont use libdbug])
 
713
  CFLAGS="$OPTIMIZE_CFLAGS $CFLAGS"
 
714
  CXXFLAGS="$OPTIMIZE_CXXFLAGS $CXXFLAGS"
 
715
fi
 
716
 
 
717
# If we should allow error injection tests
 
718
AC_ARG_WITH([error-inject],
 
719
    [AS_HELP_STRING([--with-error-inject],
 
720
            [Enable error injection in Drizzle Server @<:@default=off@:>@])],
 
721
    [ with_error_inject=$withval ],
 
722
    [ with_error_inject=no ])
 
723
 
 
724
if test $with_debug != "no"
 
725
then
 
726
  if test "$with_error_inject" = "yes"
 
727
  then
 
728
    AC_DEFINE([ERROR_INJECT_SUPPORT], [1],
 
729
              [Enable error injection in Drizzle Server])
 
730
  fi
 
731
fi
891
732
 
892
733
AC_ARG_WITH([fast-mutexes],
893
734
    [AS_HELP_STRING([--with-fast-mutexes],
897
738
 
898
739
if test "$with_fast_mutexes" != "no"
899
740
then
900
 
        AC_DEFINE([MY_PTHREAD_FASTMUTEX], [1], 
901
 
                        [Define to 1 if you want to use fast mutexes])
 
741
  if test "$with_debug" != "no"
 
742
  then
 
743
    AC_MSG_WARN(['--with-fast-mutexes' ignored when '--with-debug' is given])
 
744
  else
 
745
    AC_DEFINE([MY_PTHREAD_FASTMUTEX], [1], 
 
746
              [Define to 1 if you want to use fast mutexes])
 
747
  fi
902
748
fi
903
749
 
904
 
AM_CONDITIONAL(BUILD_FAST_MUTEX,[test "$with_fast_mutexes" != "no"])
905
 
 
906
750
AC_ARG_WITH([comment],
907
751
    [AS_HELP_STRING([--with-comment],
908
752
            [Comment about compilation environment. @<:@default=off@:>@])],
916
760
fi
917
761
AC_SUBST(COMPILATION_COMMENT)
918
762
 
919
 
if expr "$target_os" : "[[Ll]]inux.*" > /dev/null
 
763
AC_MSG_CHECKING("need of special linking flags")
 
764
if test "$TARGET_LINUX" = "true" -a "$ac_cv_c_compiler_gnu" = "yes" -a "$all_is_static" != "yes"
920
765
then
921
 
  TARGET_LINUX="true"
922
 
  AC_DEFINE([TARGET_OS_LINUX], [1], [Whether we build for Linux])
 
766
  LDFLAGS="$LDFLAGS -rdynamic"
 
767
  AC_MSG_RESULT("-rdynamic")
923
768
else
924
 
  TARGET_LINUX="false"
 
769
  case "$SYSTEM_TYPE$with_mysqld_ldflags " in
 
770
  *freebsd*"-all-static "*|*dragonfly*"-all-static "*)
 
771
    AC_MSG_RESULT("none")
 
772
    ;;
 
773
  *freebsd*|*dragonfly*)
 
774
    MYSQLD_EXTRA_LDFLAGS="$MYSQLD_EXTRA_LDFLAGS -export-dynamic"
 
775
    AC_MSG_RESULT("-export-dynamic")
 
776
    ;;
 
777
  *)
 
778
    AC_MSG_RESULT("none")
 
779
    ;;
 
780
  esac
925
781
fi
926
782
 
927
783
dnl Checks for typedefs, structures, and compiler characteristics.
930
786
AC_TYPE_OFF_T
931
787
AC_HEADER_TIME
932
788
AC_STRUCT_TM
 
789
MYSQL_NEEDS_MYSYS_NEW
 
790
# AC_CHECK_SIZEOF return 0 when it does not find the size of a
 
791
# type. We want a error instead.
 
792
AC_CHECK_SIZEOF(char, 1)
 
793
if test "$ac_cv_sizeof_char" -eq 0
 
794
then
 
795
  AC_MSG_ERROR([No size for char type.])
 
796
fi
 
797
AC_CHECK_SIZEOF(char*, 4)
 
798
AC_CHECK_SIZEOF(short, 2)
 
799
AC_CHECK_SIZEOF(int, 4)
 
800
if test "$ac_cv_sizeof_int" -eq 0
 
801
then
 
802
  AC_MSG_ERROR("No size for int type.")
 
803
fi
 
804
AC_CHECK_SIZEOF(long, 4)
 
805
if test "$ac_cv_sizeof_long" -eq 0
 
806
then
 
807
  AC_MSG_ERROR("No size for long type.")
 
808
fi
 
809
AC_CHECK_SIZEOF(long long, 8)
 
810
if test "$ac_cv_sizeof_long_long" -eq 0
 
811
then
 
812
  AC_MSG_ERROR("Drizzle needs a long long type.")
 
813
fi
933
814
# off_t is not a builtin type
934
815
AC_CHECK_SIZEOF(off_t, 4)
935
816
if test "$ac_cv_sizeof_off_t" -eq 0
941
822
dnl check if time_t is unsigned
942
823
dnl
943
824
 
944
 
DRIZZLE_CHECK_TIME_T
945
 
 
 
825
MYSQL_CHECK_TIME_T
 
826
 
 
827
 
 
828
# do we need #pragma interface/#pragma implementation ?
 
829
# yes if it's gcc 2.x, and not icc pretending to be gcc, and not cygwin
 
830
AC_MSG_CHECKING(the need for @%:@pragma interface/implementation)
 
831
# instead of trying to match SYSTEM_TYPE and CC_VERSION (that doesn't
 
832
# follow any standard), we'll use well-defined preprocessor macros:
 
833
AC_PREPROC_IFELSE([AC_LANG_SOURCE([[
 
834
#if !defined(__CYGWIN__) && !defined(__INTEL_COMPILER) && defined(__GNUC__) && (__GNUC__ < 3)
 
835
#error USE_PRAGMA_IMPLEMENTATION
 
836
#endif
 
837
]])],[AC_MSG_RESULT(no) ],[AC_MSG_RESULT(yes) ; CXXFLAGS="$CXXFLAGS -DUSE_PRAGMA_IMPLEMENTATION"])
946
838
 
947
839
# This always gives a warning. Ignore it unless you are cross compiling
948
840
AC_C_BIGENDIAN
949
841
#---START: Used in for client configure
950
842
# Check base type of last arg to accept
951
 
DRIZZLE_TYPE_ACCEPT
 
843
MYSQL_TYPE_ACCEPT
952
844
#---END:
953
845
# Figure out what type of struct rlimit to use with setrlimit
954
 
DRIZZLE_TYPE_STRUCT_RLIMIT
 
846
MYSQL_TYPE_STRUCT_RLIMIT
955
847
# Find where the stack goes
956
 
DRIZZLE_STACK_DIRECTION
 
848
MYSQL_STACK_DIRECTION
957
849
# We want to skip alloca on irix unconditionally. It may work on some version..
958
 
DRIZZLE_FUNC_ALLOCA
 
850
MYSQL_FUNC_ALLOCA
959
851
# Do struct timespec have members tv_sec or ts_sec
960
 
DRIZZLE_TIMESPEC_TS
 
852
MYSQL_TIMESPEC_TS
961
853
# Do we have the tzname variable
962
 
DRIZZLE_TZNAME
 
854
MYSQL_TZNAME
963
855
# Do the c++ compiler have a bool type
964
 
DRIZZLE_CXX_BOOL
 
856
MYSQL_CXX_BOOL
965
857
AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
966
858
AC_CHECK_TYPES([size_t], [], [], [#include <stdio.h>])
967
 
 
968
 
DRIZZLE_PTHREAD_YIELD
969
 
 
 
859
AC_CHECK_TYPES([u_int32_t])
 
860
 
 
861
MYSQL_PTHREAD_YIELD
 
862
 
 
863
######################################################################
 
864
# For readline/libedit (We simply move the mimimum amount of stuff from
 
865
# the readline/libedit configure.in here)
970
866
 
971
867
dnl Checks for header files.
972
868
AC_CHECK_HEADERS(malloc.h sys/cdefs.h)
994
890
AC_SUBST(MAKE_SHELL)
995
891
 
996
892
# Already-done: stdlib.h string.h unistd.h termios.h
997
 
AC_CHECK_HEADERS(stdarg.h dirent.h locale.h ndir.h sys/dir.h \
 
893
AC_CHECK_HEADERS(varargs.h stdarg.h dirent.h locale.h ndir.h sys/dir.h \
998
894
 sys/file.h sys/ndir.h sys/ptem.h sys/pte.h sys/select.h sys/stream.h \
999
895
 sys/mman.h curses.h termcap.h termio.h termbits.h asm/termbits.h grp.h \
1000
896
paths.h semaphore.h)
1003
899
AC_CHECK_FUNCS(lstat putenv select setenv setlocale strcoll tcgetattr)
1004
900
 
1005
901
AC_HEADER_STAT
1006
 
DRIZZLE_SIGNAL_CHECK
1007
 
DRIZZLE_CHECK_GETPW_FUNCS
1008
 
DRIZZLE_HAVE_TIOCGWINSZ
1009
 
DRIZZLE_HAVE_FIONREAD
1010
 
DRIZZLE_HAVE_TIOCSTAT
1011
 
DRIZZLE_STRUCT_DIRENT_D_INO
1012
 
DRIZZLE_STRUCT_DIRENT_D_NAMLEN
1013
 
DRIZZLE_TYPE_SIGHANDLER
1014
 
DRIZZLE_CHECK_MULTIBYTE
 
902
MYSQL_SIGNAL_CHECK
 
903
MYSQL_CHECK_GETPW_FUNCS
 
904
MYSQL_HAVE_TIOCGWINSZ
 
905
MYSQL_HAVE_FIONREAD
 
906
MYSQL_HAVE_TIOCSTAT
 
907
MYSQL_STRUCT_DIRENT_D_INO
 
908
MYSQL_STRUCT_DIRENT_D_NAMLEN
 
909
MYSQL_TYPE_SIGHANDLER
 
910
MYSQL_CHECK_MULTIBYTE
1015
911
if test "$with_named_curses" = "no"
1016
912
then
1017
 
  DRIZZLE_CHECK_LIB_TERMCAP
 
913
  MYSQL_CHECK_LIB_TERMCAP
1018
914
else
1019
 
  TERMCAP_LIBS="$with_named_curses"
 
915
  TERMCAP_LIB="$with_named_curses"
1020
916
fi
1021
 
AC_SUBST(TERMCAP_LIBS)
 
917
AC_SUBST(TERMCAP_LIB)
1022
918
 
1023
919
# Check if the termcap function 'tgoto' is already declared in
1024
920
# system header files or if it need to be declared locally
1050
946
 
1051
947
#AC_FUNC_MMAP
1052
948
AC_TYPE_SIGNAL
1053
 
DRIZZLE_TYPE_QSORT
 
949
MYSQL_TYPE_QSORT
1054
950
AC_FUNC_UTIME_NULL
1055
951
AC_FUNC_VPRINTF
1056
952
 
1060
956
  AC_MSG_ERROR("Drizzle requires fcntl.")
1061
957
fi
1062
958
 
1063
 
AC_CONFIG_LIBOBJ_DIR([mystrings])
1064
 
 
1065
 
AC_CHECK_FUNCS(bsearch \
 
959
AC_CHECK_FUNCS(bcmp bfill bmove bsearch bzero \
1066
960
  cuserid fchmod \
1067
961
  fdatasync finite fpresetsticky fpsetmask fsync ftruncate \
1068
 
  getcwd getpassphrase getpwnam \
 
962
  getcwd getpass getpassphrase getpwnam \
1069
963
  getpwuid getrlimit getrusage getwd index initgroups isnan \
1070
964
  localtime_r gethrtime gmtime_r \
1071
 
  locking longjmp lrand48 madvise mallinfo \
1072
 
  memmove \
1073
 
  mkstemp mlockall perror poll pread pthread_attr_create mmap mmap64 \
 
965
  locking longjmp lrand48 madvise mallinfo memcpy memmove \
 
966
  mkstemp mlockall perror poll pread pthread_attr_create mmap mmap64 getpagesize \
1074
967
  pthread_attr_getstacksize pthread_attr_setprio pthread_attr_setschedparam \
1075
968
  pthread_attr_setstacksize pthread_condattr_create pthread_getsequence_np \
1076
969
  pthread_key_delete pthread_rwlock_rdlock pthread_setprio \
1077
970
  pthread_setprio_np pthread_setschedparam pthread_sigmask readlink \
1078
 
  realpath rename rwlock_init setupterm \
 
971
  realpath rename rint rwlock_init setupterm \
1079
972
  shmget shmat shmdt shmctl sigaction sigemptyset sigaddset \
1080
973
  sighold sigset sigthreadmask port_create sleep \
1081
 
  snprintf socket strcasecmp strerror strsignal strpbrk \
1082
 
  tell tempnam vidattr \
 
974
  snprintf socket stpcpy strcasecmp strerror strsignal strnlen strpbrk strstr \
 
975
  strtol strtoll strtoul strtoull tell tempnam vidattr \
1083
976
  posix_fallocate backtrace backtrace_symbols backtrace_symbols_fd)
1084
977
 
1085
 
AC_LANG_PUSH(C++)
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[
1089
 
#if HAVE_SYS_MMAN_H
1090
 
#include <sys/types.h>
1091
 
#include <sys/mman.h>
1092
 
#endif
1093
 
]])
1094
 
AC_LANG_POP()
1095
 
 
1096
 
 
1097
 
AM_CONDITIONAL(BUILD_THR_RWLOCK,[test "$ac_cv_func_rwlock_init" -a "$ac_cv_funn_pthread_rwlock_rdlock"])
1098
 
 
1099
978
# Check that isinf() is available in math.h and can be used in both C and C++
1100
979
# code
1101
980
AC_MSG_CHECKING(for isinf in math.h)
1134
1013
)
1135
1014
 
1136
1015
# 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)
 
1016
AC_CACHE_CHECK("args to pthread_getspecific", mysql_cv_getspecific_args,
 
1017
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#if !defined(_REENTRANT)
1139
1018
#define _REENTRANT
1140
1019
#endif
1141
1020
#define _POSIX_PTHREAD_SEMANTICS 
1142
1021
#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])])
 
1022
pthread_getspecific((pthread_key_t) NULL); ]])],[mysql_cv_getspecific_args=POSIX],[mysql_cv_getspecific_args=other]))
1146
1023
  if test "$mysql_cv_getspecific_args" = "other"
1147
1024
  then
1148
1025
    AC_DEFINE([HAVE_NONPOSIX_PTHREAD_GETSPECIFIC], [1],
1150
1027
  fi
1151
1028
 
1152
1029
  # 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
 
1030
  AC_CACHE_CHECK("args to pthread_mutex_init", mysql_cv_mutex_init_args,
 
1031
  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#define _REENTRANT
1155
1032
#define _POSIX_PTHREAD_SEMANTICS 
1156
1033
#include <pthread.h> ]], [[ 
1157
1034
  pthread_mutexattr_t attr;
1158
1035
  pthread_mutex_t mp;
1159
 
  pthread_mutex_init(&mp,&attr); ]])],
1160
 
      [mysql_cv_mutex_init_args=POSIX],
1161
 
      [mysql_cv_mutex_init_args=other])])
 
1036
  pthread_mutex_init(&mp,&attr); ]])],[mysql_cv_mutex_init_args=POSIX],[mysql_cv_mutex_init_args=other]))
1162
1037
  if test "$mysql_cv_mutex_init_args" = "other"
1163
1038
  then
1164
1039
    AC_DEFINE([HAVE_NONPOSIX_PTHREAD_MUTEX_INIT], [1],
1168
1043
 
1169
1044
#---START: Used in for client configure
1170
1045
# 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
 
1046
AC_CACHE_CHECK("args to readdir_r", mysql_cv_readdir_r,
 
1047
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define _REENTRANT
1173
1048
#define _POSIX_PTHREAD_SEMANTICS 
1174
1049
#include <pthread.h>
1175
1050
#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])])
 
1051
readdir_r((DIR *) NULL, (struct dirent *) NULL, (struct dirent **) NULL); ]])],[mysql_cv_readdir_r=POSIX],[mysql_cv_readdir_r=other]))
1179
1052
if test "$mysql_cv_readdir_r" = "POSIX"
1180
1053
then
1181
1054
  AC_DEFINE([HAVE_READDIR_R], [1], [POSIX readdir_r])
1182
1055
fi
1183
1056
 
1184
1057
# Check definition of posix sigwait()
1185
 
AC_CACHE_CHECK([style of sigwait], [mysql_cv_sigwait],
1186
 
  [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1187
 
#define _REENTRANT
 
1058
AC_CACHE_CHECK("style of sigwait", mysql_cv_sigwait,
 
1059
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define _REENTRANT
1188
1060
#define _POSIX_PTHREAD_SEMANTICS 
1189
1061
#include <pthread.h>
1190
 
#include <signal.h>
1191
 
      ]], [[
1192
 
#ifndef _AIX
 
1062
#include <signal.h>]], [[#ifndef _AIX
1193
1063
sigset_t set;
1194
1064
int sig;
1195
1065
sigwait(&set,&sig);
1196
 
#endif
1197
 
      ]])],
1198
 
    [mysql_cv_sigwait=POSIX],
1199
 
    [mysql_cv_sigwait=other])])
 
1066
#endif]])],[mysql_cv_sigwait=POSIX],[mysql_cv_sigwait=other]))
1200
1067
if test "$mysql_cv_sigwait" = "POSIX"
1201
1068
then
1202
1069
  AC_DEFINE([HAVE_SIGWAIT], [1], [POSIX sigwait])
1206
1073
then
1207
1074
unset mysql_cv_sigwait
1208
1075
# Check definition of posix sigwait()
1209
 
AC_CACHE_CHECK([style of sigwait], [mysql_cv_sigwait],
1210
 
  [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1211
 
#define _REENTRANT
 
1076
AC_CACHE_CHECK("style of sigwait", mysql_cv_sigwait,
 
1077
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define _REENTRANT
1212
1078
#define _POSIX_PTHREAD_SEMANTICS 
1213
1079
#include <pthread.h>
1214
 
#include <signal.h>
1215
 
      ]], [[
1216
 
sigset_t set;
 
1080
#include <signal.h>]], [[sigset_t set;
1217
1081
int sig;
1218
 
sigwait(&set);
1219
 
      ]])],
1220
 
    [mysql_cv_sigwait=NONPOSIX],
1221
 
    [mysql_cv_sigwait=other])])
 
1082
sigwait(&set);]])],[mysql_cv_sigwait=NONPOSIX],[mysql_cv_sigwait=other]))
1222
1083
if test "$mysql_cv_sigwait" = "NONPOSIX"
1223
1084
then
1224
1085
  AC_DEFINE([HAVE_NONPOSIX_SIGWAIT], [1], [sigwait with one argument])
1227
1088
#---END:
1228
1089
 
1229
1090
# 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([[
1232
 
#define _REENTRANT
 
1091
AC_CACHE_CHECK("for pthread_attr_setscope", mysql_cv_pthread_attr_setscope,
 
1092
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define _REENTRANT
1233
1093
#define _POSIX_PTHREAD_SEMANTICS 
1234
 
#include <pthread.h>
1235
 
      ]], [[
1236
 
pthread_attr_t thr_attr;
1237
 
pthread_attr_setscope(&thr_attr,0);
1238
 
      ]])],
1239
 
    [mysql_cv_pthread_attr_setscope=yes],
1240
 
    [mysql_cv_pthread_attr_setscope=no])])
 
1094
#include <pthread.h>]], [[pthread_attr_t thr_attr;
 
1095
pthread_attr_setscope(&thr_attr,0);]])],[mysql_cv_pthread_attr_setscope=yes],[mysql_cv_pthread_attr_setscope=no]))
1241
1096
if test "$mysql_cv_pthread_attr_setscope" = "yes"
1242
1097
then
1243
1098
  AC_DEFINE([HAVE_PTHREAD_ATTR_SETSCOPE], [1], [pthread_attr_setscope])
1275
1130
# Check for requested features
1276
1131
#--------------------------------------------------------------------
1277
1132
 
1278
 
DRIZZLE_CHECK_BIG_TABLES
1279
 
DRIZZLE_CHECK_MAX_INDEXES
1280
 
DRIZZLE_CHECK_VIO
 
1133
MYSQL_CHECK_BIG_TABLES
 
1134
MYSQL_CHECK_MAX_INDEXES
 
1135
MYSQL_CHECK_VIO
1281
1136
 
1282
1137
#--------------------------------------------------------------------
1283
1138
# Declare our plugin modules
1285
1140
# functions tested above
1286
1141
#--------------------------------------------------------------------
1287
1142
 
1288
 
DRIZZLE_CONFIGURE_PLUGINS([none])
 
1143
MYSQL_CONFIGURE_PLUGINS([none])
 
1144
 
 
1145
AC_SUBST(CLIENT_LIBS)
1289
1146
 
1290
1147
AC_SUBST(mysql_plugin_dirs)
1291
1148
AC_SUBST(mysql_plugin_libs)
1292
1149
AC_SUBST(mysql_plugin_defs)
1293
1150
 
1294
 
# Build optimized or debug version ?
1295
 
# First check for gcc and g++
1296
 
if test "$ac_cv_c_compiler_gnu" = "yes"
1297
 
then
1298
 
  SYMBOLS_CFLAGS="-ggdb3"
1299
 
  DEBUG_OPTIMIZE_CC="-O0"
1300
 
  OPTIMIZE_CFLAGS="-O3"
1301
 
else
1302
 
  SYMBOLS_CFLAGS="-g"
1303
 
  DEBUG_OPTIMIZE_CC=""
1304
 
  OPTIMIZE_CFLAGS="-O"
1305
 
fi
1306
 
if test "$ac_cv_prog_cxx_g" = "yes"
1307
 
then
1308
 
  SYMBOLS_CXXFLAGS="-ggdb3"
1309
 
  DEBUG_OPTIMIZE_CXX="-O0"
1310
 
  OPTIMIZE_CXXFLAGS="-O3"
1311
 
else
1312
 
  SYMBOLS_CXXFLAGS="-g"
1313
 
  DEBUG_OPTIMIZE_CXX=""
1314
 
  OPTIMIZE_CXXFLAGS="-O"
1315
 
fi
1316
 
 
1317
 
dnl TODO: Remove this define once we are using 2.61 across the board.
1318
 
# AX_HEADER_ASSERT
1319
 
# ----------------
1320
 
# Check whether to enable assertions.
1321
 
AC_DEFUN([AX_HEADER_ASSERT],
1322
 
[
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])
1330
 
])
1331
 
 
1332
 
AX_HEADER_ASSERT
1333
 
 
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"
1337
 
 
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],
1342
 
    [with_debug=no])
1343
 
if test "$with_debug" = "yes"
1344
 
then
1345
 
  # Medium debug.
1346
 
  CFLAGS="$DEBUG_OPTIMIZE_CC -DDEBUG $CFLAGS ${SAVE_CFLAGS}"
1347
 
  CXXFLAGS="$DEBUG_OPTIMIZE_CXX -DDEBUG $CXXFLAGS ${SAVE_CXXFLAGS}"
1348
 
else
1349
 
  # Optimized version. No debug
1350
 
  CFLAGS="${OPTIMIZE_CFLAGS} ${CFLAGS} ${SAVE_CFLAGS}"
1351
 
  CXXFLAGS="$OPTIMIZE_CXXFLAGS $CXXFLAGS ${SAVE_CXXFLAGS}"
1352
 
fi
1353
 
 
1354
 
AC_ARG_ENABLE([profiling],
1355
 
    [AS_HELP_STRING([--enable-profiling],
1356
 
       [Toggle profiling @<:@default=off@:>@])],
1357
 
    [ac_profiling="$enableval"],
1358
 
    [ac_profiling="no"])
1359
 
 
1360
 
AC_ARG_ENABLE([coverage],
1361
 
    [AS_HELP_STRING([--enable-coverage],
1362
 
       [Toggle coverage @<:@default=off@:>@])],
1363
 
    [ac_coverage="$enableval"],
1364
 
    [ac_coverage="no"])
1365
 
 
1366
1151
AC_ARG_ENABLE([pedantic-warnings],
1367
1152
    [AS_HELP_STRING([--disable-pedantic-warnings],
1368
1153
       [Toggle pedanticness @<:@default=on@:>@])],
1370
1155
    [ac_warn_pedantic="yes"])
1371
1156
 
1372
1157
AC_ARG_ENABLE([fail],
1373
 
    [AS_HELP_STRING([--disable-fail],
1374
 
       [Turn warnings into failures @<:@default=on@:>@])],
 
1158
    [AS_HELP_STRING([--enable-fail],
 
1159
       [Turn warnings into failures @<:@default=off@:>@])],
1375
1160
    [ac_warn_fail="$enableval"],
1376
 
    [ac_warn_fail="yes"])
 
1161
    [ac_warn_fail="no"])
1377
1162
 
1378
1163
AC_ARG_ENABLE([unreachable],
1379
1164
    [AS_HELP_STRING([--enable-unreachable],
1381
1166
    [ac_warn_unreachable="$enableval"],
1382
1167
    [ac_warn_unreachable="no"])
1383
1168
 
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"])
1389
 
 
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"])
1395
 
 
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"])
1401
 
 
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"])
1407
 
 
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"])
1413
 
 
1414
1169
 
1415
1170
if test "$GCC" = "yes"
1416
1171
then
1417
1172
 
1418
 
  if test "$ac_warn_longlong" = "yes"
1419
 
  then
1420
 
    W_LONGLONG="-Wlong-long"
1421
 
  else
1422
 
    W_LONGLONG="-Wno-long-long"
1423
 
  fi
1424
 
 
1425
 
  if test "$ac_warn_strict_aliasing" = "yes"
1426
 
  then
1427
 
    W_STRICT_ALIASING="-Wstrict-aliasing"
1428
 
  else
1429
 
    W_STRICT_ALIASING="-Wno-strict-aliasing"
1430
 
  fi
1431
 
 
1432
 
  if test "$ac_profiling" = "yes"
1433
 
  then
1434
 
    GPROF_PROFILING="-pg"
1435
 
  else
1436
 
    GPROF_PROFILING=" "
1437
 
  fi
1438
 
 
1439
 
  if test "$ac_coverage" = "yes"
1440
 
  then
1441
 
    GPROF_COVERAGE="-fprofile-arcs -ftest-coverage"
1442
 
  else
1443
 
    GPROF_COVERAGE=" "
1444
 
  fi
 
1173
  GCC_WARNINGS="-W -Wall"
 
1174
  GXX_WARNINGS="${GCC_WARNINGS}"
 
1175
 
1445
1176
 
1446
1177
  if test "$ac_warn_pedantic" = "yes"
1447
1178
  then
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}"
 
1179
    GCC_WARNINGS="${GCC_WARNINGS}  -std=gnu99 -pedantic -Wundef -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls  "
 
1180
    GXX_WARNINGS="${GXX_WARNINGS}  -std=gnu++98 -pedantic -Wundef -Wredundant-decls -Wno-long-long "
1450
1181
  fi
1451
1182
 
1452
1183
  if test "$ac_warn_unreachable" = "yes"
1453
1184
  then
1454
 
    W_UNREACHABLE="-Wunreachable-code"
 
1185
    GCC_WARNINGS="${GCC_WARNINGS} -Wunreachable-code"
 
1186
    GXX_WARNINGS="${GXX_WARNINGS} -Wunreachable-code"
1455
1187
  fi
1456
1188
 
1457
1189
  if test "$ac_warn_fail" = "yes"
1458
1190
  then
1459
 
    W_FAIL="-Werror"
1460
 
  fi
1461
 
 
1462
 
  if test "$ac_warn_cast" = "yes"
1463
 
  then
1464
 
    W_CAST="-Wold-style-cast"
1465
 
  fi
1466
 
 
1467
 
  if test "$ac_warn_effc" = "yes"
1468
 
  then
1469
 
    W_EFFC="-Weffc++"
1470
 
  fi
1471
 
 
1472
 
  if test "$ac_warn_gocrazy" = "yes"
1473
 
  then
1474
 
    W_CRAZY="-Wshadow -Wconversion -Winvalid-pch"
1475
 
  fi
1476
 
 
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}"
1480
 
 
1481
 
  AM_CXXFLAGS="${GXX_WARNINGS} ${AM_CXXFLAGS}"
1482
 
  AM_CFLAGS="${GCC_WARNINGS} ${AM_CFLAGS}"
 
1191
    GCC_WARNINGS="${GCC_WARNINGS} -Werror"
 
1192
    GXX_WARNINGS="${GXX_WARNINGS} -Werror"
 
1193
  fi
 
1194
 
 
1195
    CXXFLAGS="$CXXFLAGS ${GXX_WARNINGS}"
 
1196
    CFLAGS="$CFLAGS ${GCC_WARNINGS} "
1483
1197
fi
1484
1198
 
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])
1489
 
 
1490
1199
# Some usefull subst
1491
1200
AC_SUBST(CC)
1492
1201
AC_SUBST(GXX)
1502
1211
esac
1503
1212
AC_SUBST(MAKE_BINARY_DISTRIBUTION_OPTIONS)
1504
1213
 
1505
 
dnl GCC Precompiled Header Support
1506
 
AM_CONDITIONAL([GCC_PCH],[test "x$GCC" = "xyes"])
1507
 
 
1508
 
AC_CONFIG_FILES(Makefile extra/Makefile mysys/Makefile dnl
1509
 
 mystrings/Makefile storage/Makefile dnl
1510
 
 vio/Makefile po/Makefile.in dnl
 
1214
AC_CONFIG_FILES(Makefile extra/Makefile mysys/Makefile mysys/tests/Makefile dnl
 
1215
 strings/Makefile strings/tests/Makefile storage/Makefile dnl
 
1216
 vio/Makefile dnl
1511
1217
 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
 
1218
 server/Makefile server/share/Makefile dnl
 
1219
 server/sql_builtin.cc sql-common/Makefile dnl
 
1220
 dbug/Makefile include/Makefile dnl
1518
1221
 support-files/Makefile dnl
1519
1222
 tests/Makefile tests/install_test_db dnl
1520
 
 drizzled/version.h plugin/Makefile dnl
1521
 
 drizzled/drizzled_safe support-files/libdrizzle.pc dnl
 
1223
 include/drizzle_version.h plugin/Makefile dnl
 
1224
 server/drizzled_safe support-files/libdrizzle.pc dnl
1522
1225
 support-files/drizzle.server support-files/drizzle-log-rotate)
1523
1226
 
1524
1227
AC_CONFIG_COMMANDS([default], , test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h)
1525
1228
 
1526
1229
# 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'")
 
1230
AC_CONFIG_COMMANDS_POST(ac_configure_args="$ac_configure_args CFLAGS='$CFLAGS' CXXFLAGS='$CXXFLAGS'")
1528
1231
 
1529
1232
AC_OUTPUT
1530
 
 
1531
 
echo "---"
1532
 
echo "Configuration summary for $PACKAGE_NAME version $VERSION"
1533
 
echo ""
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"
1550
 
echo ""
1551
 
echo "---"