~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to configure.ac

  • Committer: Brian Aker
  • Date: 2008-07-16 01:30:24 UTC
  • Revision ID: brian@tangent.org-20080716013024-nmnogwdpa459jrch
First pass of cleanup

Show diffs side-by-side

added added

removed removed

Lines of Context:
3
3
 
4
4
AC_PREREQ(2.59)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=4427
 
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
sinclude(config/ac-macros/pkg.m4)
 
52
 
 
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"
 
58
 
 
59
#####
 
60
#####
 
61
 
 
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)
92
75
 
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
76
 
158
77
# Canonicalize the configuration name.
159
78
 
181
100
  i?86) BASE_MACHINE_TYPE=i386 ;;
182
101
esac
183
102
 
 
103
# Save some variables and the command line options for mysqlbug
 
104
SAVE_CC="$CC"
 
105
SAVE_CXX="$CXX"
 
106
SAVE_ASFLAGS="$ASFLAGS"
 
107
SAVE_CFLAGS="$CFLAGS"
 
108
SAVE_CXXFLAGS="$CXXFLAGS"
 
109
SAVE_LDFLAGS="$LDFLAGS"
 
110
SAVE_CXXLDFLAGS="$CXXLDFLAGS"
 
111
CONF_COMMAND="$0 $ac_configure_args"
 
112
AC_SUBST(CONF_COMMAND)
 
113
AC_SUBST(SAVE_CC)
 
114
AC_SUBST(SAVE_CXX)
 
115
AC_SUBST(SAVE_ASFLAGS)
 
116
AC_SUBST(SAVE_CFLAGS)
 
117
AC_SUBST(SAVE_CXXFLAGS)
 
118
AC_SUBST(SAVE_LDFLAGS)
 
119
AC_SUBST(SAVE_CXXLDFLAGS)
 
120
AC_SUBST(CXXLDFLAGS)
 
121
 
184
122
AM_SANITY_CHECK
185
123
# This is needed is SUBDIRS is set
186
124
AC_PROG_MAKE_SET
209
147
 
210
148
################ End of section to be done before AC_PROG_CC #################
211
149
 
 
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 "
 
156
 
212
157
dnl Checks for programs.
 
158
AC_PROG_AWK
213
159
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
160
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
161
AC_PROG_CPP
226
162
AM_PROG_CC_C_O
227
163
 
228
 
AC_CXX_STL_HASH
229
 
AC_CXX_CSTDINT
230
 
AC_CXX_CINTTYPES
231
 
AC_CXX_CMATH
232
 
 
233
164
# Print version of CC and CXX compiler (if they support --version)
234
165
case $SYSTEM_TYPE in
235
 
  *apple-darwin*)
236
 
    AC_DEFINE([TARGET_OS_OSX], [1], [Whether we build for OSX])
 
166
  *netware*)
 
167
CC_VERSION=`$CC -version | grep -i version`
237
168
    ;;
238
169
  *)
239
170
CC_VERSION=`$CC --version | sed 1q`
247
178
CC_VERSION=""
248
179
fi
249
180
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
 
181
MYSQL_CHECK_CXX_VERSION
265
182
 
266
183
if test "$ac_cv_c_compiler_gnu" = "yes"
267
184
then
271
188
  AC_PATH_PROG(AS, as, as)
272
189
fi
273
190
 
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
 
 
 
191
# Still need ranlib for readline; local static use only so no libtool.
 
192
AC_PROG_RANLIB
309
193
# We use libtool
310
194
#AC_LIBTOOL_WIN32_DLL
311
195
AC_PROG_LIBTOOL
359
243
then
360
244
  case "$host_cpu" in
361
245
    *ppc* | *powerpc*)
362
 
      AM_CFLAGS="$CFLAGS -mno-fused-madd"
363
 
      AM_CXXFLAGS="$CXXFLAGS -mno-fused-madd"
 
246
      CFLAGS="$CFLAGS -mno-fused-madd"
 
247
      CXXFLAGS="$CXXFLAGS -mno-fused-madd"
364
248
    ;;
365
249
  esac
366
250
fi
378
262
 
379
263
if test "$GCC" = "yes"
380
264
then
 
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
 
270
  # server
 
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.])
384
274
fi
385
275
 
386
 
DRIZZLE_PROG_AR
 
276
MYSQL_PROG_AR
387
277
 
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)
391
282
fi
392
283
AC_SUBST(LD_VERSION_SCRIPT)
393
284
 
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
285
 
427
286
#--------------------------------------------------------------------
428
287
# Check for libevent
429
288
#--------------------------------------------------------------------
430
289
 
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"
 
290
AC_CHECK_HEADERS(event.h)
 
291
if test "x$ac_cv_header_event_h" != "xyes"
439
292
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=""
451
 
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
 
293
  AC_MSG_ERROR([Couldn't find event.h. Try installing libevent development packages])
466
294
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
 
 
 
295
AC_CHECK_LIB(event, event_loop, [], [AC_MSG_ERROR(could not find libevent)])
492
296
 
493
297
#--------------------------------------------------------------------
494
298
# Check for libpthread
508
312
AC_ARG_ENABLE([tcmalloc],
509
313
    [AS_HELP_STRING([--enable-tcmalloc],
510
314
       [Enable linking with tcmalloc @<:@default=off@:>@])],
511
 
    [ac_enable_tcmalloc="$enableval"],
512
 
    [ac_enable_tcmalloc="no"])
 
315
    [ac_warn_strict_aliasing="$enableval"],
 
316
    [ac_warn_strict_aliasing="no"])
513
317
 
514
 
if test "x$ac_enable_tcmalloc" = "xyes"
 
318
if test "x$ac_warn_strict_aliasing" = "xyes"
515
319
then
516
320
  AC_CHECK_LIB(tcmalloc,malloc,[],[])
517
321
fi
520
324
# Check for libz
521
325
#--------------------------------------------------------------------
522
326
 
523
 
my_save_LIBS="$LIBS"
524
 
LIBS=""
525
327
AC_CHECK_HEADERS(zlib.h)
526
328
if test "x$ac_cv_header_zlib_h" != "xyes"
527
329
then
528
330
  AC_MSG_ERROR([Couldn't find zlib.h. Try installing zlib development packages])
529
331
fi
530
332
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)
 
333
 
 
334
 
 
335
AC_CHECK_HEADERS([readline/readline.h])
541
336
if test "x$ac_cv_header_readline_readline_h" != "xyes"
542
337
then
543
338
  AC_MSG_ERROR([Couldn't find readline/readline.h. Try installing readline development packages.])
544
339
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
340
 
571
341
#--------------------------------------------------------------------
572
342
# Check for libpcre
574
344
 
575
345
AC_LANG_PUSH([C++])
576
346
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
 
347
PKG_CHECK_MODULES(PCRE, [libpcrecpp >= 3], [found_pcre="yes"],[
581
348
  dnl Only check the header here, because autoconf can't handle
582
349
  dnl checking for C++ methods without C linkages
583
350
  AC_CHECK_HEADERS(pcrecpp.h)
584
351
  if test "x$ac_cv_header_pcrecpp_h" != "xyes" 
585
352
  then
 
353
    found_pcre="no"
 
354
  else
 
355
    found_pcre="yes"
 
356
    # We can't search for these well, but we sure do need them!
 
357
    PCRE_LIBS="-lpcrecpp -lpcre"
 
358
  fi
 
359
  ])
 
360
if test "x$found_pcre" != "xyes"
 
361
then
586
362
    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
363
fi
604
364
AC_LANG_POP([])
605
365
AC_SUBST(PCRE_LIBS)
687
447
  FIND_PROC="$PS \$\$PID | grep -v grep | grep \$\$MYSQLD > /dev/null"
688
448
else
689
449
  case $SYSTEM_TYPE in
690
 
    *freebsd*|*dragonfly*|*cygwin*)
 
450
    *freebsd*|*dragonfly*)
691
451
      FIND_PROC="$PS p \$\$PID | grep -v grep | grep \$\$MYSQLD > /dev/null"
692
452
      ;;
693
453
    *darwin*)
695
455
      ;;
696
456
    *)
697
457
      AC_MSG_ERROR([Could not find the right ps switches. Which OS is this ?. See the Installation chapter in the Reference Manual.])
698
 
      ;;
699
458
  esac
700
459
fi
701
460
AC_SUBST(FIND_PROC)
736
495
AC_ARG_WITH([server-suffix],
737
496
    [AS_HELP_STRING([--with-server-suffix],
738
497
      [Append value to the version string.])],
739
 
    [ DRIZZLE_SERVER_SUFFIX=`echo "$withval" | sed -e  's/^\(...................................\)..*$/\1/'` ],
740
 
    [ DRIZZLE_SERVER_SUFFIX= ]
 
498
    [ MYSQL_SERVER_SUFFIX=`echo "$withval" | sed -e  's/^\(...................................\)..*$/\1/'` ],
 
499
    [ MYSQL_SERVER_SUFFIX= ]
741
500
    )
742
 
AC_SUBST(DRIZZLE_SERVER_SUFFIX)
 
501
AC_SUBST(MYSQL_SERVER_SUFFIX)
743
502
 
744
503
# Force use of a curses libs
745
504
AC_ARG_WITH([named-curses-libs],
750
509
    [ with_named_curses=no ]
751
510
    )
752
511
 
 
512
# compile with strings functions in assembler
 
513
AC_ARG_ENABLE([assembler],
 
514
    [AS_HELP_STRING([--enable-assembler],
 
515
            [Use assembler versions of some string functions if available.])],
 
516
    [ ENABLE_ASSEMBLER=$enableval ],
 
517
    [ ENABLE_ASSEMBLER=no ]
 
518
    )
 
519
 
 
520
AC_MSG_CHECKING(if we should use assembler functions)
 
521
# For now we only support assembler on i386 and sparc systems
 
522
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;))
 
523
AM_CONDITIONAL(ASSEMBLER_sparc32, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "sparc")
 
524
AM_CONDITIONAL(ASSEMBLER_sparc64, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "sparcv9")
 
525
AM_CONDITIONAL(ASSEMBLER, test "$ASSEMBLER_x86_TRUE" = "" -o "$ASSEMBLER_sparc32_TRUE" = "")
 
526
 
 
527
if test "$ASSEMBLER_TRUE" = ""
 
528
then
 
529
  AC_MSG_RESULT([yes])
 
530
else
 
531
  AC_MSG_RESULT([no])
 
532
fi
 
533
 
 
534
# Add query profiler
 
535
AC_MSG_CHECKING(if SHOW PROFILE should be enabled.)
 
536
AC_ARG_ENABLE([profiling],
 
537
    [AS_HELP_STRING([--enable-profiling], 
 
538
            [Build a version with query profiling code])],
 
539
    [ ENABLED_PROFILING=$enableval ],
 
540
    [ ENABLED_PROFILING=no ])
 
541
 
 
542
if test "$ENABLED_PROFILING" = "yes"
 
543
then
 
544
  AC_DEFINE([ENABLED_PROFILING], [1],
 
545
            [If SHOW PROFILE should be enabled])
 
546
  AC_MSG_RESULT([yes]) 
 
547
else
 
548
  AC_MSG_RESULT([no])
 
549
fi
 
550
 
753
551
AC_ARG_WITH([tcp-port],
754
552
    [AS_HELP_STRING([--with-tcp-port=port-number],
755
553
            [Which port to use for Drizzle services @<:@default=4427@:>@])],
756
 
    [ DRIZZLE_TCP_PORT=$withval ],
757
 
    [ DRIZZLE_TCP_PORT=$DRIZZLE_TCP_PORT_DEFAULT
 
554
    [ MYSQL_TCP_PORT=$withval ],
 
555
    [ MYSQL_TCP_PORT=$MYSQL_TCP_PORT_DEFAULT
758
556
      # if we actually defaulted (as opposed to the pathological case of
759
 
      # --with-tcp-port=<DRIZZLE_TCP_PORT_DEFAULT> which might in theory
 
557
      # --with-tcp-port=<MYSQL_TCP_PORT_DEFAULT> which might in theory
760
558
      # happen if whole batch of servers was built from a script), set
761
559
      # the default to zero to indicate that; we don't lose information
762
560
      # 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
 
561
      # default value from MYSQL_TCP_PORT. this seems really evil, but
 
562
      # testing for MYSQL_TCP_PORT==MYSQL_TCP_PORT_DEFAULT would make a
 
563
      # a port of MYSQL_TCP_PORT_DEFAULT magic even if the builder did not
766
564
      # intend it to mean "use the default, in fact, look up a good default
767
565
      # from /etc/services if you can", but really, really meant 4427 when
768
566
      # they passed in 4427. When they pass in a specific value, let them
773
571
      # - if a port was set during build, use that as a default.
774
572
      #
775
573
      # - 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)
 
574
      #   use MYSQL_TCP_PORT_DEFAULT (at the time of this writing 4427)
777
575
      #
778
 
      # - allow the DRIZZLE_TCP_PORT environment variable to override that.
 
576
      # - allow the MYSQL_TCP_PORT environment variable to override that.
779
577
      #
780
578
      # - allow command-line parameters to override all of the above.
781
579
      #
782
 
      # the top-most DRIZZLE_TCP_PORT_DEFAULT is read from win/configure.js,
 
580
      # the top-most MYSQL_TCP_PORT_DEFAULT is read from win/configure.js,
783
581
      # so don't mess with that.
784
 
      DRIZZLE_TCP_PORT_DEFAULT=0 ]
 
582
      MYSQL_TCP_PORT_DEFAULT=0 ]
785
583
    )
786
 
AC_SUBST(DRIZZLE_TCP_PORT)
 
584
AC_SUBST(MYSQL_TCP_PORT)
787
585
# We might want to document the assigned port in the manual.
788
 
AC_SUBST(DRIZZLE_TCP_PORT_DEFAULT)
 
586
AC_SUBST(MYSQL_TCP_PORT_DEFAULT)
789
587
 
790
588
# Use this to set the place used for unix socket used to local communication.
791
589
AC_ARG_WITH([mysqld-user],
813
611
  AC_MSG_RESULT([no])
814
612
fi
815
613
 
816
 
AC_SYS_LARGEFILE
817
 
AC_FUNC_FSEEKO
 
614
MYSQL_SYS_LARGEFILE
818
615
 
819
616
# Types that must be checked AFTER large file support is checked
820
617
AC_TYPE_SIZE_T
832
629
AC_CHECK_HEADERS(sys/fpu.h utime.h sys/utime.h )
833
630
AC_CHECK_HEADERS(synch.h sys/mman.h sys/socket.h netinet/in.h arpa/inet.h)
834
631
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)
 
632
AC_CHECK_HEADERS(termio.h termios.h sched.h crypt.h alloca.h)
836
633
AC_CHECK_HEADERS(sys/ioctl.h malloc.h sys/malloc.h sys/ipc.h sys/shm.h)
837
634
AC_CHECK_HEADERS(sys/prctl.h sys/resource.h sys/param.h port.h ieeefp.h)
838
635
AC_CHECK_HEADERS(execinfo.h)
845
642
#--------------------------------------------------------------------
846
643
 
847
644
AC_CHECK_LIB(m, floor, [], AC_CHECK_LIB(m, __infinity))
 
645
AC_CHECK_FUNCS(log2)
848
646
 
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)])
 
647
AC_CHECK_FUNC(setsockopt, , AC_CHECK_LIB(socket, setsockopt))
 
648
AC_CHECK_FUNC(yp_get_default_domain, ,
 
649
  AC_CHECK_LIB(nsl, yp_get_default_domain))
 
650
AC_CHECK_FUNC(p2open, , AC_CHECK_LIB(gen, p2open))
853
651
# This may get things to compile even if bind-8 is installed
854
 
AC_CHECK_FUNC(bind, [], [AC_CHECK_LIB(bind, bind)])
 
652
AC_CHECK_FUNC(bind, , AC_CHECK_LIB(bind, bind))
855
653
# Check if crypt() exists in libc or libcrypt, sets LIBS if needed
856
654
AC_SEARCH_LIBS(crypt, crypt, AC_DEFINE(HAVE_CRYPT, 1, [crypt]))
857
655
 
859
657
AC_CHECK_LIB(rt, aio_read)
860
658
 
861
659
# 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"])])
 
660
AC_CHECK_FUNC(sched_yield, , AC_CHECK_LIB(posix4, sched_yield,
 
661
[AC_DEFINE(HAVE_SCHED_YIELD) LIBS="$LIBS -lposix4"]))
865
662
 
866
663
if test "$ac_cv_header_termio_h" = "no" -a "$ac_cv_header_termios_h" = "no"
867
664
then
868
 
  AC_CHECK_FUNC(gtty, [], [AC_CHECK_LIB(compat, gtty)])
 
665
  AC_CHECK_FUNC(gtty, , AC_CHECK_LIB(compat, gtty))
869
666
fi
870
667
 
 
668
AC_CHECK_TYPES([int8, uint8, int16, uint16, int32, uint32, int64, uint64,
 
669
                uchar, uint, ulong],[],[], [
 
670
#include <sys/types.h>
 
671
])
871
672
AC_CHECK_TYPES([fp_except], [], [], [
872
673
#include <sys/types.h>
873
674
#include <ieeefp.h>
874
675
])
875
676
 
 
677
 
876
678
my_save_LIBS="$LIBS"
877
679
LIBS=""
878
680
AC_CHECK_LIB(dl,dlopen)
 
681
LIBDL=$LIBS
 
682
LIBS="$my_save_LIBS"
 
683
AC_SUBST(LIBDL)
 
684
 
 
685
my_save_LIBS="$LIBS"
 
686
LIBS="$LIBS $LIBDL"
879
687
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
688
LIBS="$my_save_LIBS"
886
 
AC_SUBST(LIBDL_LIBS)
887
689
 
888
690
AC_CHECK_FUNCS(strtok_r)
889
691
 
890
 
 
 
692
# Build optimized or debug version ?
 
693
# First check for gcc and g++
 
694
if test "$ac_cv_c_compiler_gnu" = "yes"
 
695
then
 
696
  SYMBOLS_CFLAGS="-ggdb3"
 
697
  DEBUG_OPTIMIZE_CC="-O0"
 
698
  OPTIMIZE_CFLAGS="-O2"
 
699
else
 
700
  SYMBOLS_CFLAGS="-g"
 
701
  DEBUG_OPTIMIZE_CC=""
 
702
  OPTIMIZE_CFLAGS="-O"
 
703
fi
 
704
if test "$ac_cv_prog_cxx_g" = "yes"
 
705
then
 
706
  SYMBOLS_CXXFLAGS="-ggdb3"
 
707
  DEBUG_OPTIMIZE_CXX="-O0"
 
708
  OPTIMIZE_CXXFLAGS="-O2"
 
709
else
 
710
  SYMBOLS_CXXFLAGS="-g"
 
711
  DEBUG_OPTIMIZE_CXX=""
 
712
  OPTIMIZE_CXXFLAGS="-O"
 
713
fi
 
714
 
 
715
# If the user specified CFLAGS, we won't add any optimizations
 
716
if test -n "$SAVE_CFLAGS"
 
717
then
 
718
  OPTIMIZE_CFLAGS=""
 
719
  DEBUG_OPTIMIZE_CC=""
 
720
fi
 
721
# Ditto for CXXFLAGS
 
722
if test -n "$SAVE_CXXFLAGS"
 
723
then
 
724
  OPTIMIZE_CXXFLAGS=""
 
725
  DEBUG_OPTIMIZE_CXX=""
 
726
fi
 
727
 
 
728
CFLAGS="${SYMBOLS_CFLAGS} ${CFLAGS}"
 
729
CXXFLAGS="${SYMBOLS_CXXFLAGS} ${CXXFLAGS}"
 
730
 
 
731
AC_ARG_WITH([debug],
 
732
    [AS_HELP_STRING([--with-debug],
 
733
            [Add debug code (yes|no|full) @<:@default=no@:>@ 
 
734
            Full adds memory checked, very slow.])],
 
735
    [with_debug=$withval],
 
736
    [with_debug=no])
 
737
AM_CONDITIONAL(BUILD_DBUG, test "$with_debug" != "no")
 
738
if test "$with_debug" = "yes"
 
739
then
 
740
  # Medium debug.
 
741
  AC_DEFINE([DBUG_ON], [1], [Use libdbug])
 
742
  CFLAGS="$DEBUG_OPTIMIZE_CC $CFLAGS"
 
743
  CXXFLAGS="$DEBUG_OPTIMIZE_CXX $CXXFLAGS"
 
744
else
 
745
  # Optimized version. No debug
 
746
  AC_DEFINE([DBUG_OFF], [1], [Dont use libdbug])
 
747
  CFLAGS="$OPTIMIZE_CFLAGS $CFLAGS"
 
748
  CXXFLAGS="$OPTIMIZE_CXXFLAGS $CXXFLAGS"
 
749
fi
 
750
 
 
751
# If we should allow error injection tests
 
752
AC_ARG_WITH([error-inject],
 
753
    [AS_HELP_STRING([--with-error-inject],
 
754
            [Enable error injection in Drizzle Server @<:@default=off@:>@])],
 
755
    [ with_error_inject=$withval ],
 
756
    [ with_error_inject=no ])
 
757
 
 
758
if test $with_debug != "no"
 
759
then
 
760
  if test "$with_error_inject" = "yes"
 
761
  then
 
762
    AC_DEFINE([ERROR_INJECT_SUPPORT], [1],
 
763
              [Enable error injection in Drizzle Server])
 
764
  fi
 
765
fi
891
766
 
892
767
AC_ARG_WITH([fast-mutexes],
893
768
    [AS_HELP_STRING([--with-fast-mutexes],
897
772
 
898
773
if test "$with_fast_mutexes" != "no"
899
774
then
900
 
        AC_DEFINE([MY_PTHREAD_FASTMUTEX], [1], 
901
 
                        [Define to 1 if you want to use fast mutexes])
 
775
  if test "$with_debug" != "no"
 
776
  then
 
777
    AC_MSG_WARN(['--with-fast-mutexes' ignored when '--with-debug' is given])
 
778
  else
 
779
    AC_DEFINE([MY_PTHREAD_FASTMUTEX], [1], 
 
780
              [Define to 1 if you want to use fast mutexes])
 
781
  fi
902
782
fi
903
783
 
904
 
AM_CONDITIONAL(BUILD_FAST_MUTEX,[test "$with_fast_mutexes" != "no"])
905
 
 
906
784
AC_ARG_WITH([comment],
907
785
    [AS_HELP_STRING([--with-comment],
908
786
            [Comment about compilation environment. @<:@default=off@:>@])],
924
802
  TARGET_LINUX="false"
925
803
fi
926
804
 
 
805
AC_MSG_CHECKING("need of special linking flags")
 
806
if test "$TARGET_LINUX" = "true" -a "$ac_cv_c_compiler_gnu" = "yes" -a "$all_is_static" != "yes"
 
807
then
 
808
  LDFLAGS="$LDFLAGS -rdynamic"
 
809
  AC_MSG_RESULT("-rdynamic")
 
810
else
 
811
  case "$SYSTEM_TYPE$with_mysqld_ldflags " in
 
812
  *freebsd*"-all-static "*|*dragonfly*"-all-static "*)
 
813
    AC_MSG_RESULT("none")
 
814
    ;;
 
815
  *freebsd*|*dragonfly*)
 
816
    MYSQLD_EXTRA_LDFLAGS="$MYSQLD_EXTRA_LDFLAGS -export-dynamic"
 
817
    AC_MSG_RESULT("-export-dynamic")
 
818
    ;;
 
819
  *)
 
820
    AC_MSG_RESULT("none")
 
821
    ;;
 
822
  esac
 
823
fi
 
824
 
927
825
dnl Checks for typedefs, structures, and compiler characteristics.
928
826
AC_C_CONST
929
827
AC_C_INLINE
930
828
AC_TYPE_OFF_T
931
829
AC_HEADER_TIME
932
830
AC_STRUCT_TM
 
831
MYSQL_NEEDS_MYSYS_NEW
 
832
# AC_CHECK_SIZEOF return 0 when it does not find the size of a
 
833
# type. We want a error instead.
 
834
AC_CHECK_SIZEOF(char, 1)
 
835
if test "$ac_cv_sizeof_char" -eq 0
 
836
then
 
837
  AC_MSG_ERROR([No size for char type.])
 
838
fi
 
839
AC_CHECK_SIZEOF(char*, 4)
 
840
AC_CHECK_SIZEOF(short, 2)
 
841
AC_CHECK_SIZEOF(int, 4)
 
842
if test "$ac_cv_sizeof_int" -eq 0
 
843
then
 
844
  AC_MSG_ERROR("No size for int type.")
 
845
fi
 
846
AC_CHECK_SIZEOF(long, 4)
 
847
if test "$ac_cv_sizeof_long" -eq 0
 
848
then
 
849
  AC_MSG_ERROR("No size for long type.")
 
850
fi
 
851
AC_CHECK_SIZEOF(long long, 8)
 
852
if test "$ac_cv_sizeof_long_long" -eq 0
 
853
then
 
854
  AC_MSG_ERROR("Drizzle needs a long long type.")
 
855
fi
933
856
# off_t is not a builtin type
934
857
AC_CHECK_SIZEOF(off_t, 4)
935
858
if test "$ac_cv_sizeof_off_t" -eq 0
941
864
dnl check if time_t is unsigned
942
865
dnl
943
866
 
944
 
DRIZZLE_CHECK_TIME_T
945
 
 
 
867
MYSQL_CHECK_TIME_T
 
868
 
 
869
 
 
870
# do we need #pragma interface/#pragma implementation ?
 
871
# yes if it's gcc 2.x, and not icc pretending to be gcc, and not cygwin
 
872
AC_MSG_CHECKING(the need for @%:@pragma interface/implementation)
 
873
# instead of trying to match SYSTEM_TYPE and CC_VERSION (that doesn't
 
874
# follow any standard), we'll use well-defined preprocessor macros:
 
875
AC_PREPROC_IFELSE([AC_LANG_SOURCE([[
 
876
#if !defined(__CYGWIN__) && !defined(__INTEL_COMPILER) && defined(__GNUC__) && (__GNUC__ < 3)
 
877
#error USE_PRAGMA_IMPLEMENTATION
 
878
#endif
 
879
]])],[AC_MSG_RESULT(no) ],[AC_MSG_RESULT(yes) ; CXXFLAGS="$CXXFLAGS -DUSE_PRAGMA_IMPLEMENTATION"])
946
880
 
947
881
# This always gives a warning. Ignore it unless you are cross compiling
948
882
AC_C_BIGENDIAN
949
883
#---START: Used in for client configure
950
884
# Check base type of last arg to accept
951
 
DRIZZLE_TYPE_ACCEPT
 
885
MYSQL_TYPE_ACCEPT
952
886
#---END:
953
887
# Figure out what type of struct rlimit to use with setrlimit
954
 
DRIZZLE_TYPE_STRUCT_RLIMIT
 
888
MYSQL_TYPE_STRUCT_RLIMIT
955
889
# Find where the stack goes
956
 
DRIZZLE_STACK_DIRECTION
 
890
MYSQL_STACK_DIRECTION
957
891
# We want to skip alloca on irix unconditionally. It may work on some version..
958
 
DRIZZLE_FUNC_ALLOCA
 
892
MYSQL_FUNC_ALLOCA
959
893
# Do struct timespec have members tv_sec or ts_sec
960
 
DRIZZLE_TIMESPEC_TS
 
894
MYSQL_TIMESPEC_TS
961
895
# Do we have the tzname variable
962
 
DRIZZLE_TZNAME
 
896
MYSQL_TZNAME
963
897
# Do the c++ compiler have a bool type
964
 
DRIZZLE_CXX_BOOL
 
898
MYSQL_CXX_BOOL
965
899
AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
966
900
AC_CHECK_TYPES([size_t], [], [], [#include <stdio.h>])
967
 
 
968
 
DRIZZLE_PTHREAD_YIELD
969
 
 
 
901
AC_CHECK_TYPES([u_int32_t])
 
902
 
 
903
MYSQL_PTHREAD_YIELD
 
904
 
 
905
######################################################################
 
906
# For readline/libedit (We simply move the mimimum amount of stuff from
 
907
# the readline/libedit configure.in here)
970
908
 
971
909
dnl Checks for header files.
972
910
AC_CHECK_HEADERS(malloc.h sys/cdefs.h)
994
932
AC_SUBST(MAKE_SHELL)
995
933
 
996
934
# 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 \
 
935
AC_CHECK_HEADERS(varargs.h stdarg.h dirent.h locale.h ndir.h sys/dir.h \
998
936
 sys/file.h sys/ndir.h sys/ptem.h sys/pte.h sys/select.h sys/stream.h \
999
937
 sys/mman.h curses.h termcap.h termio.h termbits.h asm/termbits.h grp.h \
1000
938
paths.h semaphore.h)
1003
941
AC_CHECK_FUNCS(lstat putenv select setenv setlocale strcoll tcgetattr)
1004
942
 
1005
943
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
 
944
MYSQL_SIGNAL_CHECK
 
945
MYSQL_CHECK_GETPW_FUNCS
 
946
MYSQL_HAVE_TIOCGWINSZ
 
947
MYSQL_HAVE_FIONREAD
 
948
MYSQL_HAVE_TIOCSTAT
 
949
MYSQL_STRUCT_DIRENT_D_INO
 
950
MYSQL_STRUCT_DIRENT_D_NAMLEN
 
951
MYSQL_TYPE_SIGHANDLER
 
952
MYSQL_CHECK_MULTIBYTE
1015
953
if test "$with_named_curses" = "no"
1016
954
then
1017
 
  DRIZZLE_CHECK_LIB_TERMCAP
 
955
  MYSQL_CHECK_LIB_TERMCAP
1018
956
else
1019
 
  TERMCAP_LIBS="$with_named_curses"
 
957
  TERMCAP_LIB="$with_named_curses"
1020
958
fi
1021
 
AC_SUBST(TERMCAP_LIBS)
 
959
AC_SUBST(TERMCAP_LIB)
1022
960
 
1023
961
# Check if the termcap function 'tgoto' is already declared in
1024
962
# system header files or if it need to be declared locally
1050
988
 
1051
989
#AC_FUNC_MMAP
1052
990
AC_TYPE_SIGNAL
1053
 
DRIZZLE_TYPE_QSORT
 
991
MYSQL_TYPE_QSORT
1054
992
AC_FUNC_UTIME_NULL
1055
993
AC_FUNC_VPRINTF
1056
994
 
1060
998
  AC_MSG_ERROR("Drizzle requires fcntl.")
1061
999
fi
1062
1000
 
1063
 
AC_CONFIG_LIBOBJ_DIR([mystrings])
1064
 
 
1065
 
AC_CHECK_FUNCS(bsearch \
 
1001
AC_CHECK_FUNCS(bcmp bfill bmove bsearch bzero \
1066
1002
  cuserid fchmod \
1067
1003
  fdatasync finite fpresetsticky fpsetmask fsync ftruncate \
1068
 
  getcwd getpassphrase getpwnam \
 
1004
  getcwd getpass getpassphrase getpwnam \
1069
1005
  getpwuid getrlimit getrusage getwd index initgroups isnan \
1070
1006
  localtime_r gethrtime gmtime_r \
1071
 
  locking longjmp lrand48 madvise mallinfo \
1072
 
  memmove \
1073
 
  mkstemp mlockall perror poll pread pthread_attr_create mmap mmap64 \
 
1007
  locking longjmp lrand48 madvise mallinfo memcpy memmove \
 
1008
  mkstemp mlockall perror poll pread pthread_attr_create mmap mmap64 getpagesize \
1074
1009
  pthread_attr_getstacksize pthread_attr_setprio pthread_attr_setschedparam \
1075
1010
  pthread_attr_setstacksize pthread_condattr_create pthread_getsequence_np \
1076
1011
  pthread_key_delete pthread_rwlock_rdlock pthread_setprio \
1077
1012
  pthread_setprio_np pthread_setschedparam pthread_sigmask readlink \
1078
 
  realpath rename rwlock_init setupterm \
 
1013
  realpath rename rint rwlock_init setupterm \
1079
1014
  shmget shmat shmdt shmctl sigaction sigemptyset sigaddset \
1080
1015
  sighold sigset sigthreadmask port_create sleep \
1081
 
  snprintf socket strcasecmp strerror strsignal strpbrk \
1082
 
  tell tempnam vidattr \
 
1016
  snprintf socket stpcpy strcasecmp strerror strsignal strnlen strpbrk strstr \
 
1017
  strtol strtoll strtoul strtoull tell tempnam vidattr \
1083
1018
  posix_fallocate backtrace backtrace_symbols backtrace_symbols_fd)
1084
1019
 
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
1020
# Check that isinf() is available in math.h and can be used in both C and C++
1100
1021
# code
1101
1022
AC_MSG_CHECKING(for isinf in math.h)
1134
1055
)
1135
1056
 
1136
1057
# 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)
 
1058
AC_CACHE_CHECK("args to pthread_getspecific", mysql_cv_getspecific_args,
 
1059
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#if !defined(_REENTRANT)
1139
1060
#define _REENTRANT
1140
1061
#endif
1141
1062
#define _POSIX_PTHREAD_SEMANTICS 
1142
1063
#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])])
 
1064
pthread_getspecific((pthread_key_t) NULL); ]])],[mysql_cv_getspecific_args=POSIX],[mysql_cv_getspecific_args=other]))
1146
1065
  if test "$mysql_cv_getspecific_args" = "other"
1147
1066
  then
1148
1067
    AC_DEFINE([HAVE_NONPOSIX_PTHREAD_GETSPECIFIC], [1],
1150
1069
  fi
1151
1070
 
1152
1071
  # 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
 
1072
  AC_CACHE_CHECK("args to pthread_mutex_init", mysql_cv_mutex_init_args,
 
1073
  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#define _REENTRANT
1155
1074
#define _POSIX_PTHREAD_SEMANTICS 
1156
1075
#include <pthread.h> ]], [[ 
1157
1076
  pthread_mutexattr_t attr;
1158
1077
  pthread_mutex_t mp;
1159
 
  pthread_mutex_init(&mp,&attr); ]])],
1160
 
      [mysql_cv_mutex_init_args=POSIX],
1161
 
      [mysql_cv_mutex_init_args=other])])
 
1078
  pthread_mutex_init(&mp,&attr); ]])],[mysql_cv_mutex_init_args=POSIX],[mysql_cv_mutex_init_args=other]))
1162
1079
  if test "$mysql_cv_mutex_init_args" = "other"
1163
1080
  then
1164
1081
    AC_DEFINE([HAVE_NONPOSIX_PTHREAD_MUTEX_INIT], [1],
1168
1085
 
1169
1086
#---START: Used in for client configure
1170
1087
# 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
 
1088
AC_CACHE_CHECK("args to readdir_r", mysql_cv_readdir_r,
 
1089
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define _REENTRANT
1173
1090
#define _POSIX_PTHREAD_SEMANTICS 
1174
1091
#include <pthread.h>
1175
1092
#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])])
 
1093
readdir_r((DIR *) NULL, (struct dirent *) NULL, (struct dirent **) NULL); ]])],[mysql_cv_readdir_r=POSIX],[mysql_cv_readdir_r=other]))
1179
1094
if test "$mysql_cv_readdir_r" = "POSIX"
1180
1095
then
1181
1096
  AC_DEFINE([HAVE_READDIR_R], [1], [POSIX readdir_r])
1182
1097
fi
1183
1098
 
1184
1099
# 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
 
1100
AC_CACHE_CHECK("style of sigwait", mysql_cv_sigwait,
 
1101
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define _REENTRANT
1188
1102
#define _POSIX_PTHREAD_SEMANTICS 
1189
1103
#include <pthread.h>
1190
 
#include <signal.h>
1191
 
      ]], [[
1192
 
#ifndef _AIX
 
1104
#include <signal.h>]], [[#ifndef _AIX
1193
1105
sigset_t set;
1194
1106
int sig;
1195
1107
sigwait(&set,&sig);
1196
 
#endif
1197
 
      ]])],
1198
 
    [mysql_cv_sigwait=POSIX],
1199
 
    [mysql_cv_sigwait=other])])
 
1108
#endif]])],[mysql_cv_sigwait=POSIX],[mysql_cv_sigwait=other]))
1200
1109
if test "$mysql_cv_sigwait" = "POSIX"
1201
1110
then
1202
1111
  AC_DEFINE([HAVE_SIGWAIT], [1], [POSIX sigwait])
1206
1115
then
1207
1116
unset mysql_cv_sigwait
1208
1117
# 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
 
1118
AC_CACHE_CHECK("style of sigwait", mysql_cv_sigwait,
 
1119
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define _REENTRANT
1212
1120
#define _POSIX_PTHREAD_SEMANTICS 
1213
1121
#include <pthread.h>
1214
 
#include <signal.h>
1215
 
      ]], [[
1216
 
sigset_t set;
 
1122
#include <signal.h>]], [[sigset_t set;
1217
1123
int sig;
1218
 
sigwait(&set);
1219
 
      ]])],
1220
 
    [mysql_cv_sigwait=NONPOSIX],
1221
 
    [mysql_cv_sigwait=other])])
 
1124
sigwait(&set);]])],[mysql_cv_sigwait=NONPOSIX],[mysql_cv_sigwait=other]))
1222
1125
if test "$mysql_cv_sigwait" = "NONPOSIX"
1223
1126
then
1224
1127
  AC_DEFINE([HAVE_NONPOSIX_SIGWAIT], [1], [sigwait with one argument])
1227
1130
#---END:
1228
1131
 
1229
1132
# 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
 
1133
AC_CACHE_CHECK("for pthread_attr_setscope", mysql_cv_pthread_attr_setscope,
 
1134
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define _REENTRANT
1233
1135
#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])])
 
1136
#include <pthread.h>]], [[pthread_attr_t thr_attr;
 
1137
pthread_attr_setscope(&thr_attr,0);]])],[mysql_cv_pthread_attr_setscope=yes],[mysql_cv_pthread_attr_setscope=no]))
1241
1138
if test "$mysql_cv_pthread_attr_setscope" = "yes"
1242
1139
then
1243
1140
  AC_DEFINE([HAVE_PTHREAD_ATTR_SETSCOPE], [1], [pthread_attr_setscope])
1275
1172
# Check for requested features
1276
1173
#--------------------------------------------------------------------
1277
1174
 
1278
 
DRIZZLE_CHECK_BIG_TABLES
1279
 
DRIZZLE_CHECK_MAX_INDEXES
1280
 
DRIZZLE_CHECK_VIO
 
1175
MYSQL_CHECK_BIG_TABLES
 
1176
MYSQL_CHECK_MAX_INDEXES
 
1177
MYSQL_CHECK_VIO
1281
1178
 
1282
1179
#--------------------------------------------------------------------
1283
1180
# Declare our plugin modules
1285
1182
# functions tested above
1286
1183
#--------------------------------------------------------------------
1287
1184
 
1288
 
DRIZZLE_CONFIGURE_PLUGINS([none])
 
1185
MYSQL_CONFIGURE_PLUGINS([none])
1289
1186
 
1290
1187
AC_SUBST(mysql_plugin_dirs)
1291
1188
AC_SUBST(mysql_plugin_libs)
1292
1189
AC_SUBST(mysql_plugin_defs)
1293
1190
 
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
1191
AC_ARG_ENABLE([pedantic-warnings],
1367
1192
    [AS_HELP_STRING([--disable-pedantic-warnings],
1368
1193
       [Toggle pedanticness @<:@default=on@:>@])],
1393
1218
    [ac_warn_strict_aliasing="$enableval"],
1394
1219
    [ac_warn_strict_aliasing="no"])
1395
1220
 
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
1221
 
1415
1222
if test "$GCC" = "yes"
1416
1223
then
1429
1236
    W_STRICT_ALIASING="-Wno-strict-aliasing"
1430
1237
  fi
1431
1238
 
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
1445
 
 
1446
1239
  if test "$ac_warn_pedantic" = "yes"
1447
1240
  then
1448
1241
    GCC_PEDANTIC="-pedantic -Wundef -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls ${W_STRICT_ALIASING}"
1459
1252
    W_FAIL="-Werror"
1460
1253
  fi
1461
1254
 
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}"
 
1255
  BASE_WARNINGS="-W -Wall -Wextra"
 
1256
  GCC_WARNINGS="${BASE_WARNINGS} -std=gnu99 ${GCC_PEDANTIC} ${W_UNREACHABLE} ${W_FAIL}"
 
1257
  GXX_WARNINGS="${BASE_WARNINGS} -std=gnu++98 ${GXX_PEDANTIC} ${W_UNREACHABLE} ${W_FAIL}"
 
1258
 
 
1259
  CXXFLAGS="$CXXFLAGS ${GXX_WARNINGS}"
 
1260
  CFLAGS="$CFLAGS ${GCC_WARNINGS} "
1483
1261
fi
1484
1262
 
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
1263
# Some usefull subst
1491
1264
AC_SUBST(CC)
1492
1265
AC_SUBST(GXX)
1502
1275
esac
1503
1276
AC_SUBST(MAKE_BINARY_DISTRIBUTION_OPTIONS)
1504
1277
 
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
 
1278
AC_CONFIG_FILES(Makefile extra/Makefile mysys/Makefile mysys/tests/Makefile dnl
 
1279
 strings/Makefile strings/tests/Makefile storage/Makefile dnl
 
1280
 vio/Makefile dnl
1511
1281
 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
 
1282
 server/Makefile server/share/Makefile dnl
 
1283
 server/sql_builtin.cc dnl
 
1284
 dbug/Makefile include/Makefile dnl
1518
1285
 support-files/Makefile dnl
1519
1286
 tests/Makefile tests/install_test_db dnl
1520
 
 drizzled/version.h plugin/Makefile dnl
1521
 
 drizzled/drizzled_safe support-files/libdrizzle.pc dnl
 
1287
 include/drizzle_version.h plugin/Makefile dnl
 
1288
 server/drizzled_safe support-files/libdrizzle.pc dnl
1522
1289
 support-files/drizzle.server support-files/drizzle-log-rotate)
1523
1290
 
1524
1291
AC_CONFIG_COMMANDS([default], , test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h)
1525
1292
 
1526
1293
# 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'")
 
1294
AC_CONFIG_COMMANDS_POST(ac_configure_args="$ac_configure_args CFLAGS='$CFLAGS' CXXFLAGS='$CXXFLAGS'")
1528
1295
 
1529
1296
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 "---"