~drizzle-trunk/drizzle/development

1 by brian
clean slate
1
dnl -*- ksh -*-
2
dnl Process this file with autoconf to produce a configure script.
3
77.1.65 by Monty Taylor
We don't really require 2.61, 2.59 is actually fine.
4
AC_PREREQ(2.59)dnl		Minimum Autoconf version required.
1 by brian
clean slate
5
261.2.5 by Monty Taylor
Changed bug contact location to a url..
6
AC_INIT(drizzle, [7.0.0], [http://bugs.launchpad.net/drizzle])
214 by Brian Aker
Rename of fields (fix issue with string and decimal .h clashing).
7
AC_CONFIG_SRCDIR([drizzled/drizzled.cc])
39 by Brian Aker
Move build helper files into config
8
AC_CONFIG_AUX_DIR(config)
236.1.9 by Monty Taylor
Cleaned up configure.ac line.
9
AC_CONFIG_HEADERS([config.h])
28.1.33 by Monty Taylor
Added -Wall
10
AC_CANONICAL_TARGET
261.2.4 by Monty Taylor
Updated to more modern AC_INIT and AM_INIT_AUTOMAKE invocations.
11
AM_INIT_AUTOMAKE(-Wall -Werror)
1 by brian
clean slate
12
13
PROTOCOL_VERSION=10
14
DOT_FRM_VERSION=6
15
# See the libtool docs for information on how to do shared lib versions.
16
SHARED_LIB_MAJOR_VERSION=16
17
SHARED_LIB_VERSION=$SHARED_LIB_MAJOR_VERSION:0:0
18
19
20
21
# Set all version vars based on $VERSION. How do we do this more elegant ?
22
# Remember that regexps needs to quote [ and ] since this is run through m4
23
# We take some made up examples
24
#
25
#  VERSION                  5.1.40sp1-alpha     5.0.34a
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
30
#
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 | \
35
    awk -F. '{printf "%d%0.2d%0.2d", $1, $2, $3}'`
36
37
# The port should be constant for a LONG time
165.1.1 by Elliot Murphy
new port number from IANA
38
MYSQL_TCP_PORT_DEFAULT=4427
1 by brian
clean slate
39
40
dnl Include m4 
202.3.14 by Monty Taylor
Moved m4 macros to top-level m4 dir, per GNU standards (and where gettext wanted it :)
41
sinclude(m4/alloca.m4)
42
sinclude(m4/check_cpu.m4)
43
sinclude(m4/character_sets.m4)
44
sinclude(m4/compiler_flag.m4)
45
sinclude(m4/dtrace.m4)
46
sinclude(m4/plugins.m4)
47
sinclude(m4/large_file.m4)
48
sinclude(m4/misc.m4)
49
sinclude(m4/readline.m4)
50
sinclude(m4/ssl.m4)
51
sinclude(m4/pkg.m4)
52
sinclude(m4/lib-link.m4)
53
sinclude(m4/lib-prefix.m4)
54
sinclude(m4/gettext.m4)
55
sinclude(m4/progtest.m4)
56
sinclude(m4/po.m4)
57
sinclude(m4/nls.m4)
58
sinclude(m4/iconv.m4)
59
sinclude(m4/lib-ld.m4)
60
sinclude(m4/ac_cxx_header_stdcxx_98.m4)
202.3.1 by Monty Taylor
Added very initial gettextize stuff.
61
202.3.2 by Monty Taylor
Added gettext calls in to my_getopt.c and drizzle.c
62
AM_GNU_GETTEXT([external])
1 by brian
clean slate
63
64
AC_SUBST(MYSQL_NO_DASH_VERSION)
65
AC_SUBST(MYSQL_BASE_VERSION)
66
AC_SUBST(MYSQL_VERSION_ID)
67
AC_SUBST(MYSQL_PREVIOUS_BASE_VERSION)
68
AC_SUBST(PROTOCOL_VERSION)
69
AC_DEFINE_UNQUOTED([PROTOCOL_VERSION], [$PROTOCOL_VERSION],
70
                   [mysql client protocol version])
71
AC_SUBST(DOT_FRM_VERSION)
72
AC_DEFINE_UNQUOTED([DOT_FRM_VERSION], [$DOT_FRM_VERSION],
73
                   [Version of .frm files])
74
AC_SUBST(SHARED_LIB_MAJOR_VERSION)
75
AC_SUBST(SHARED_LIB_VERSION)
76
AC_SUBST(AVAILABLE_LANGUAGES)
77
78
79
# Canonicalize the configuration name.
80
81
# Check whether --with-system-type or --without-system-type was given.
28.1.33 by Monty Taylor
Added -Wall
82
AC_ARG_WITH([system-type],
83
    [AS_HELP_STRING([--with-system-type],
84
       [Set the system type, like "sun-solaris10"])],
1 by brian
clean slate
85
    [SYSTEM_TYPE="$withval"],
86
    [SYSTEM_TYPE="$host_vendor-$host_os"])
28.1.33 by Monty Taylor
Added -Wall
87
AC_ARG_WITH([machine-type],
88
    [AS_HELP_STRING([--with-machine-type],
89
       [Set the machine type, like "powerpc"])],
1 by brian
clean slate
90
    [MACHINE_TYPE="$withval"],
91
    [MACHINE_TYPE="$host_cpu"])
92
AC_SUBST(SYSTEM_TYPE)
93
AC_DEFINE_UNQUOTED([SYSTEM_TYPE], ["$SYSTEM_TYPE"],
94
                   [Name of system, eg sun-solaris])
95
AC_SUBST(MACHINE_TYPE)
96
AC_DEFINE_UNQUOTED([MACHINE_TYPE], ["$MACHINE_TYPE"],
97
                   [Machine type name, eg sparc])
98
99
# Detect intel x86 like processor
100
BASE_MACHINE_TYPE=$MACHINE_TYPE
101
case $MACHINE_TYPE in
102
  i?86) BASE_MACHINE_TYPE=i386 ;;
103
esac
104
105
# Save some variables and the command line options for mysqlbug
106
SAVE_CC="$CC"
107
SAVE_CXX="$CXX"
108
SAVE_ASFLAGS="$ASFLAGS"
109
SAVE_CFLAGS="$CFLAGS"
110
SAVE_CXXFLAGS="$CXXFLAGS"
111
SAVE_LDFLAGS="$LDFLAGS"
112
SAVE_CXXLDFLAGS="$CXXLDFLAGS"
113
CONF_COMMAND="$0 $ac_configure_args"
114
AC_SUBST(CONF_COMMAND)
115
AC_SUBST(SAVE_CC)
116
AC_SUBST(SAVE_CXX)
117
AC_SUBST(SAVE_ASFLAGS)
118
AC_SUBST(SAVE_CFLAGS)
119
AC_SUBST(SAVE_CXXFLAGS)
120
AC_SUBST(SAVE_LDFLAGS)
121
AC_SUBST(SAVE_CXXLDFLAGS)
122
AC_SUBST(CXXLDFLAGS)
123
124
AM_SANITY_CHECK
125
# This is needed is SUBDIRS is set
126
AC_PROG_MAKE_SET
127
128
##############################################################################
129
# The below section needs to be done before AC_PROG_CC
130
##############################################################################
131
132
if test "x${CFLAGS-}" = x ; then
133
  cflags_is_set=no
134
else
135
  cflags_is_set=yes
136
fi
137
138
if test "x${CPPFLAGS-}" = x ; then
139
  cppflags_is_set=no
140
else
141
  cppflags_is_set=yes
142
fi
143
144
if test "x${LDFLAGS-}" = x ; then
145
  ldflags_is_set=no
146
else
147
  ldflags_is_set=yes
148
fi
149
150
################ End of section to be done before AC_PROG_CC #################
151
152
# The following hack should ensure that configure doesn't add optimizing
153
# or debugging flags to CFLAGS or CXXFLAGS
154
# C_EXTRA_FLAGS are flags that are automaticly added to both
155
# CFLAGS and CXXFLAGS
156
CFLAGS="$CFLAGS $C_EXTRA_FLAGS "
157
CXXFLAGS="$CXXFLAGS $C_EXTRA_FLAGS "
158
159
dnl Checks for programs.
160
AC_PROG_CC
236.1.2 by Monty Taylor
Changed the way we work around autoconf2.59
161
ifdef([AC_PROG_CC_C99],[
162
  AC_PROG_CC_C99([],[AC_MSG_ERROR([C99 support required for compiling Drizzle])])
163
  C99_SUPPORT_HACK=""
164
],[C99_SUPPORT_HACK="-std=gnu99"])
1 by brian
clean slate
165
AC_PROG_CXX
236.1.10 by Monty Taylor
Changed C++ check to actually check for CXX98 instead (since the plain C++ check can't be trusted)
166
AC_CXX_HEADER_STDCXX_98
167
if test "$ac_cv_cxx_stdcxx_98" = "no"
230.3.1 by Monty Taylor
Bug 252805: ./configure not detecting missing g++
168
then
169
  AC_MSG_ERROR([C++ Compiler required to compile Drizzle])
170
fi
1 by brian
clean slate
171
AC_PROG_CPP
172
AM_PROG_CC_C_O
173
174
# Print version of CC and CXX compiler (if they support --version)
175
case $SYSTEM_TYPE in
271 by Brian Aker
OSX fix
176
  *apple-darwin*)
177
    AC_DEFINE([TARGET_OS_OSX], [1], [Whether we build for OSX])
1 by brian
clean slate
178
    ;;
179
  *)
180
CC_VERSION=`$CC --version | sed 1q`
181
    ;;
182
esac
183
if test $? -eq "0"
184
then
185
  AC_MSG_CHECKING("C Compiler version")
186
  AC_MSG_RESULT("$CC $CC_VERSION")
187
else
188
CC_VERSION=""
189
fi
190
AC_SUBST(CC_VERSION)
191
MYSQL_CHECK_CXX_VERSION
192
230.3.1 by Monty Taylor
Bug 252805: ./configure not detecting missing g++
193
AC_PROG_AWK
194
28.1.33 by Monty Taylor
Added -Wall
195
if test "$ac_cv_c_compiler_gnu" = "yes"
1 by brian
clean slate
196
then
197
  AS="$CC -c"
198
  AC_SUBST(AS)
199
else
200
  AC_PATH_PROG(AS, as, as)
201
fi
202
203
# We use libtool
204
#AC_LIBTOOL_WIN32_DLL
205
AC_PROG_LIBTOOL
206
207
# Ensure that we have --preserve-dup-deps defines, otherwise we get link
208
# problems of 'mysql' with CXX=g++
209
LIBTOOL="$LIBTOOL --preserve-dup-deps"
210
AC_SUBST(LIBTOOL)dnl
211
212
AC_SUBST(NM)dnl
213
214
AC_PROG_INSTALL
215
test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
216
217
# Not critical since the generated file is distributed
218
AC_CHECK_PROGS(YACC, ['bison -y -p MYSQL'])
77.1.70 by Monty Taylor
Added a failure if you don't have bison and you're building from a .bzr branch.
219
if test -z "$YACC" && test -d ".bzr"
220
then
221
  AC_MSG_ERROR(["bison is required for Drizzle to build from a bzr branch"])
222
fi
1 by brian
clean slate
223
224
AC_PATH_PROG(uname_prog, uname, no)
225
226
# We should go through this and put all the explictly system dependent
227
# stuff in one place
228
AC_MSG_CHECKING(operating system)
229
AC_CACHE_VAL(mysql_cv_sys_os,
230
[
231
if test "$uname_prog" != "no"; then
232
  mysql_cv_sys_os="`uname`"
233
else
234
  mysql_cv_sys_os="Not Solaris"
235
fi
236
])
237
AC_MSG_RESULT($mysql_cv_sys_os)
238
239
# This should be rewritten to use $target_os
240
case "$target_os" in
241
  *solaris*)
242
    TARGET_SOLARIS="true"
243
    AC_DEFINE([TARGET_OS_SOLARIS], [1], [Whether we are building for Solaris])
244
    AC_SUBST(TARGET_SOLARIS)
245
  ;;
246
esac
247
248
# The following is required for portable results of floating point calculations
249
# on PowerPC. The same must also be done for IA-64, but this options is missing
250
# in the IA-64 gcc backend.
251
252
if test "$GCC" = "yes"
253
then
254
  case "$host_cpu" in
255
    *ppc* | *powerpc*)
256
      CFLAGS="$CFLAGS -mno-fused-madd"
257
      CXXFLAGS="$CXXFLAGS -mno-fused-madd"
258
    ;;
259
  esac
260
fi
261
262
AC_SUBST(CC)
263
AC_SUBST(CFLAGS)
264
AC_SUBST(CXX)
265
AC_SUBST(CXXFLAGS)
266
AC_SUBST(ASFLAGS)
267
AC_SUBST(LD)
268
AC_SUBST(INSTALL_SCRIPT)
269
53.2.1 by Monty Taylor
Added --disable-pedantic-warnings and --enable-fail.
270
1 by brian
clean slate
271
export CC CXX CFLAGS LD LDFLAGS AR ARFLAGS
272
273
if test "$GCC" = "yes"
274
then
275
  # mysqld requires -fno-implicit-templates.
276
  # Disable exceptions as they seams to create problems with gcc and threads.
277
  # mysqld doesn't use run-time-type-checking, so we disable it.
278
  # We should use -Wno-invalid-offsetof flag to disable some warnings from gcc
279
  # regarding offset() usage in C++ which are done in a safe manner in the
280
  # server
77.1.68 by Monty Taylor
Turned on -g and optimization for normal builds. -ggdb3 for gcc builds.
281
  CXXFLAGS="$CXXFLAGS -fno-implicit-templates -fno-exceptions -fno-rtti"
1 by brian
clean slate
282
  AC_DEFINE([HAVE_EXPLICIT_TEMPLATE_INSTANTIATION],
283
    [1], [Defined by configure. Use explicit template instantiation.])
284
fi
285
286
MYSQL_PROG_AR
287
261.2.3 by Monty Taylor
Moved libdrizzle.ver.in to libdrizzle.ver.
288
# libdrizzle versioning when linked with GNU ld.
1 by brian
clean slate
289
if $LD --version 2>/dev/null|grep -q GNU; then
77.1.38 by Monty Taylor
Renamed more stuff to drizzle.
290
  LD_VERSION_SCRIPT="-Wl,--version-script=\$(top_builddir)/libdrizzle/libdrizzle.ver"
1 by brian
clean slate
291
fi
292
AC_SUBST(LD_VERSION_SCRIPT)
293
77.1.111 by Monty Taylor
Added --enable-tcmalloc which will enable searching for and linking with tcmalloc if you have it.
294
77.1.63 by Monty Taylor
Fail also if we can't find libevent or pthread.h.
295
#--------------------------------------------------------------------
296
# Check for libevent
297
#--------------------------------------------------------------------
298
134.2.1 by Antony Curtis
Changes for proper detection of libraries
299
AC_MSG_CHECKING(for libevent)
300
AC_ARG_WITH(libevent,
236.1.14 by Monty Taylor
Merged build changes from Antony.
301
  [AS_HELP_STRING([--with-libevent],
236.1.15 by Monty Taylor
Fixed the previous merge. (since I suck)
302
       [Use libevent build directory])],
236.1.14 by Monty Taylor
Merged build changes from Antony.
303
  [ with_libevent=$withval ],
304
  [ with_libevent=yes ])
305
236.1.35 by Monty Taylor
Fixed another libevent on OSX searching problem.
306
if test "$with_libevent" = "yes"
77.1.63 by Monty Taylor
Fail also if we can't find libevent or pthread.h.
307
then
236.1.14 by Monty Taylor
Merged build changes from Antony.
308
    AC_CHECK_HEADERS(event.h)
309
    if test "x$ac_cv_header_event_h" != "xyes"
310
    then
311
      AC_MSG_ERROR([Couldn't find event.h. Try installing libevent development packages])
312
    fi
313
    my_save_LIBS="$LIBS"
314
    LIBS=""
315
    AC_CHECK_LIB(event, event_loop, [], [AC_MSG_ERROR(could not find libevent)])
316
    LIBEVENT_LIBS="${LIBS}"
317
    LIBS="${my_save_LIBS}"
318
    LIBEVENT_CFLAGS=""
319
else
320
    AC_MSG_RESULT($withval)
321
    if test -f $withval/event.h -a -f $withval/libevent.a; then
322
       owd=`pwd`
323
       if cd $withval; then withval=`pwd`; cd $owd; fi
324
       LIBEVENT_CFLAGS="-I$withval"
325
       LIBEVENT_LIBS="-L$withval -levent"
326
    elif test -f $withval/include/event.h -a -f $withval/lib/libevent.a; then
327
       owd=`pwd`
328
       if cd $withval; then withval=`pwd`; cd $owd; fi
329
       LIBEVENT_CFLAGS="-I$withval/include"
330
       LIBEVENT_LIBS="-L$withval/lib -levent"
331
    else
236.1.39 by Monty Taylor
autoconf warning cleanups.
332
       AC_MSG_ERROR([event.h or libevent.a not found in $withval])
236.1.14 by Monty Taylor
Merged build changes from Antony.
333
    fi
77.1.63 by Monty Taylor
Fail also if we can't find libevent or pthread.h.
334
fi
236.1.14 by Monty Taylor
Merged build changes from Antony.
335
336
AC_SUBST(LIBEVENT_CFLAGS)
201.2.3 by Monty Taylor
Cleaned up some LIBS bits in the build.
337
AC_SUBST(LIBEVENT_LIBS)
134.2.1 by Antony Curtis
Changes for proper detection of libraries
338
339
AC_CACHE_CHECK([for bufferevent in libevent], ac_libevent_works, [
340
  save_CFLAGS="$CFLAGS"
341
  save_LIBS="$LIBS"
236.1.14 by Monty Taylor
Merged build changes from Antony.
342
  CFLAGS="$LIBEVENT_CFLAGS"
343
  LIBS="$LIBEVENT_LIBS"
134.2.1 by Antony Curtis
Changes for proper detection of libraries
344
  AC_TRY_LINK([
345
#include <sys/types.h>
346
#include <sys/time.h>
347
#include <stdlib.h>
348
#include <event.h>],[
349
	struct bufferevent bev;
350
	bufferevent_settimeout(&bev, 1, 1);
351
  ], ac_libevent_works=yes, [
352
        AC_ERROR([you need to install a more recent version of libevent,
353
	check http://www.monkey.org/~provos/libevent/])
354
  ])
355
356
  CFLAGS="$save_CFLAGS"
357
  LIBS="$save_LIBS"
358
])
359
77.1.63 by Monty Taylor
Fail also if we can't find libevent or pthread.h.
360
361
#--------------------------------------------------------------------
362
# Check for libpthread
363
#--------------------------------------------------------------------
364
365
AC_CHECK_HEADERS(pthread.h)
366
if test "x$ac_cv_header_pthread_h" != "xyes"
367
then
368
  AC_MSG_ERROR([Couldn't find pthread.h.])
369
fi
370
AC_CHECK_LIB(pthread, pthread_create, [], [AC_MSG_ERROR(could not find libpthread)])
371
372
#--------------------------------------------------------------------
77.1.111 by Monty Taylor
Added --enable-tcmalloc which will enable searching for and linking with tcmalloc if you have it.
373
# Check for tcmalloc
374
#--------------------------------------------------------------------
375
376
AC_ARG_ENABLE([tcmalloc],
377
    [AS_HELP_STRING([--enable-tcmalloc],
378
       [Enable linking with tcmalloc @<:@default=off@:>@])],
236.1.14 by Monty Taylor
Merged build changes from Antony.
379
    [ac_enable_tcmalloc="$enableval"],
380
    [ac_enable_tcmalloc="no"])
77.1.111 by Monty Taylor
Added --enable-tcmalloc which will enable searching for and linking with tcmalloc if you have it.
381
236.1.14 by Monty Taylor
Merged build changes from Antony.
382
if test "x$ac_enable_tcmalloc" = "xyes"
77.1.111 by Monty Taylor
Added --enable-tcmalloc which will enable searching for and linking with tcmalloc if you have it.
383
then
384
  AC_CHECK_LIB(tcmalloc,malloc,[],[])
385
fi
386
387
#--------------------------------------------------------------------
77.1.63 by Monty Taylor
Fail also if we can't find libevent or pthread.h.
388
# Check for libz
389
#--------------------------------------------------------------------
390
201.2.3 by Monty Taylor
Cleaned up some LIBS bits in the build.
391
my_save_LIBS="$LIBS"
392
LIBS=""
77.1.63 by Monty Taylor
Fail also if we can't find libevent or pthread.h.
393
AC_CHECK_HEADERS(zlib.h)
394
if test "x$ac_cv_header_zlib_h" != "xyes"
395
then
396
  AC_MSG_ERROR([Couldn't find zlib.h. Try installing zlib development packages])
397
fi
398
AC_CHECK_LIB(z, crc32, [], [AC_MSG_ERROR(could not find libz)])
201.2.3 by Monty Taylor
Cleaned up some LIBS bits in the build.
399
ZLIB_LIBS="$LIBS"
400
LIBS="$my_save_LIBS"
401
AC_SUBST(ZLIB_LIBS)
402
77.1.63 by Monty Taylor
Fail also if we can't find libevent or pthread.h.
403
182.1.5 by Jim Winstead
Detect and make the Mac OS X libedit readline interface look like the
404
#--------------------------------------------------------------------
405
# Check for libreadline or compatible (libedit on Mac OS X)
406
#--------------------------------------------------------------------
77.1.63 by Monty Taylor
Fail also if we can't find libevent or pthread.h.
407
236.1.14 by Monty Taylor
Merged build changes from Antony.
408
AC_CHECK_HEADERS(readline/history.h readline/readline.h)
77.1.63 by Monty Taylor
Fail also if we can't find libevent or pthread.h.
409
if test "x$ac_cv_header_readline_readline_h" != "xyes"
410
then
411
  AC_MSG_ERROR([Couldn't find readline/readline.h. Try installing readline development packages.])
412
fi
236.1.14 by Monty Taylor
Merged build changes from Antony.
413
AC_CHECK_TYPES([HIST_ENTRY], [], [], [AC_INCLUDES_DEFAULT[
414
#ifdef HAVE_READLINE_HISTORY_H
415
#include <readline/history.h>
416
#endif
417
#include <readline/readline.h>
418
]])
419
AC_CHECK_DECLS([completion_matches], [], [], [AC_INCLUDES_DEFAULT[
420
#ifdef HAVE_READLINE_HISTORY_H
421
#include <readline/history.h>
422
#endif
423
#include <readline/readline.h>
424
]])
207.1.2 by Jim Winstead
Fix test for libreadline to test a function that exists in all usable
425
426
MYSQL_CHECK_NEW_RL_INTERFACE
427
201.2.3 by Monty Taylor
Cleaned up some LIBS bits in the build.
428
my_save_LIBS="$LIBS"
429
LIBS=""
207.1.2 by Jim Winstead
Fix test for libreadline to test a function that exists in all usable
430
AC_CHECK_LIB(readline, rl_initialize, [],
224.1.1 by Monty Taylor
Fixed readline build problem on Centos.
431
  [AC_CHECK_LIB(ncurses, tgetent, [], [AC_MSG_ERROR(Couldn't find ncurses)]) 
432
   AC_SEARCH_LIBS(rl_initialize, readline, [],
433
    [AC_MSG_ERROR(Couldn't find libreadline.)])])
201.2.3 by Monty Taylor
Cleaned up some LIBS bits in the build.
434
READLINE_LIBS="$LIBS"
435
LIBS="$my_save_LIBS"
436
AC_SUBST(READLINE_LIBS)
77.1.63 by Monty Taylor
Fail also if we can't find libevent or pthread.h.
437
438
#--------------------------------------------------------------------
439
# Check for libpcre
440
#--------------------------------------------------------------------
441
442
AC_LANG_PUSH([C++])
443
AC_PATH_PROG(PKG_CONFIG, pkg-config, AC_MSG_ERROR([pkg-config wasn't found.]))
236.1.18 by Monty Taylor
Put in actual PCRE linking test.
444
PKG_CHECK_MODULES(PCRE, [libpcrecpp >= 3], [found_pcre="yes"],[found_pcre="no"])
445
446
if test "$found_pcre" = "no"
447
then
77.1.64 by Monty Taylor
YA fix for libpcrecpp finding...
448
  dnl Only check the header here, because autoconf can't handle
449
  dnl checking for C++ methods without C linkages
77.1.63 by Monty Taylor
Fail also if we can't find libevent or pthread.h.
450
  AC_CHECK_HEADERS(pcrecpp.h)
77.1.102 by Monty Taylor
Fixed a PCRE detection bug.
451
  if test "x$ac_cv_header_pcrecpp_h" != "xyes" 
77.1.63 by Monty Taylor
Fail also if we can't find libevent or pthread.h.
452
  then
453
    AC_MSG_ERROR([Couldn't find pcrecpp.h. Try installing the development package associated with libpcre on your system.])
236.1.18 by Monty Taylor
Put in actual PCRE linking test.
454
  else
455
    # Found headers, now see if we can link
456
    AC_MSG_CHECKING(for libpcrecpp)
457
    save_LDFLAGS="$LDFLAGS"
458
    LDFLAGS="-lpcrecpp -lpcre"
459
    AC_TRY_LINK([
460
#include <pcrecpp.h>
461
    ],
462
    [pcrecpp::RE_Options opt;],
463
    [found_pcre="yes"],
464
    [AC_MSG_ERROR([Couldn't link libpcrecpp])])
465
466
    PCRE_LIBS="$LDFLAGS"
467
    LDFLAGS="$save_LDFLAGS"
468
    AC_MSG_RESULT([yes])
469
  fi
77.1.63 by Monty Taylor
Fail also if we can't find libevent or pthread.h.
470
fi
471
AC_LANG_POP([])
472
AC_SUBST(PCRE_LIBS)
473
AC_SUBST(PCRE_CFLAGS)
474
1 by brian
clean slate
475
dnl Find paths to some shell programs
476
AC_PATH_PROG(LN, ln, ln)
477
# This must be able to take a -f flag like normal unix ln.
478
AC_PATH_PROG(LN_CP_F, ln, ln)
479
480
AC_PATH_PROG(MV, mv, mv)
481
AC_PATH_PROG(RM, rm, rm)
482
AC_PATH_PROG(CP, cp, cp)
483
AC_PATH_PROG(SED, sed, sed)
484
AC_PATH_PROG(CMP, cmp, cmp)
485
AC_PATH_PROG(CHMOD, chmod, chmod)
486
AC_PATH_PROG(HOSTNAME, hostname, hostname)
487
# Check for a GNU tar named 'gtar', or 'gnutar' (MacOS X) and
488
# fall back to 'tar' otherwise and hope that it's a GNU tar as well
489
AC_CHECK_PROGS(TAR, gnutar gtar tar)
490
491
dnl We use a path for perl so the script startup works
492
dnl We make sure to use perl, not perl5, in hopes that the RPMs will
493
dnl not depend on the perl5 binary being installed (probably a bug in RPM)
494
AC_PATH_PROG(PERL, perl, no)
495
if test "$PERL" != "no" && $PERL -e 'require 5' > /dev/null 2>&1
496
then
497
  PERL5=$PERL
498
else
499
  AC_PATH_PROG(PERL5, perl5, no)
500
  if test "$PERL5" != no
501
  then
502
    PERL=$PERL5
503
    ac_cv_path_PERL=$ac_cv_path_PERL5
504
  fi
505
fi
506
507
AC_SUBST(HOSTNAME)
508
AC_SUBST(PERL)
509
AC_SUBST(PERL5)
510
511
# icheck, used for ABI check
512
AC_PATH_PROG(ICHECK, icheck, no)
513
# "icheck" is also the name of a file system check program on Tru64.
514
# Verify the program found is really the interface checker.
515
if test "x$ICHECK" != "xno"
516
then
517
  AC_MSG_CHECKING(if $ICHECK works as expected)
518
  echo "int foo;" > conftest.h
519
  $ICHECK --canonify -o conftest.ic conftest.h 2>/dev/null
520
  if test -f "conftest.ic"
521
  then
522
    AC_MSG_RESULT(yes)
523
  else
524
    AC_MSG_RESULT(no)
525
    ICHECK=no
526
  fi
527
  rm -f conftest.ic conftest.h
528
fi
529
AC_SUBST(ICHECK)
530
531
# Lock for PS
532
AC_PATH_PROG(PS, ps, ps)
533
AC_MSG_CHECKING("how to check if pid exists")
534
PS=$ac_cv_path_PS
535
# Linux style
536
if $PS p $$ 2> /dev/null | grep `echo $0 | sed s/\-//` > /dev/null
537
then
538
  FIND_PROC="$PS p \$\$PID | grep -v grep | grep \$\$MYSQLD > /dev/null"
539
# Solaris
540
elif $PS -fp $$ 2> /dev/null | grep $0 > /dev/null
541
then
542
  FIND_PROC="$PS -p \$\$PID | grep -v grep | grep \$\$MYSQLD > /dev/null"
543
# BSD style
544
elif $PS -uaxww 2> /dev/null | grep $0 > /dev/null
545
then
546
  FIND_PROC="$PS -uaxww | grep -v grep | grep \$\$MYSQLD | grep \" \$\$PID \" > /dev/null"
547
# SysV style
548
elif $PS -ef 2> /dev/null | grep $0 > /dev/null
549
then
550
  FIND_PROC="$PS -ef | grep -v grep | grep \$\$MYSQLD | grep \" \$\$PID \" > /dev/null"
551
# Do anybody use this?
552
elif $PS $$ 2> /dev/null | grep $0 > /dev/null
553
then
554
  FIND_PROC="$PS \$\$PID | grep -v grep | grep \$\$MYSQLD > /dev/null"
555
else
556
  case $SYSTEM_TYPE in
557
    *freebsd*|*dragonfly*)
558
      FIND_PROC="$PS p \$\$PID | grep -v grep | grep \$\$MYSQLD > /dev/null"
559
      ;;
560
    *darwin*)
561
      FIND_PROC="$PS -uaxww | grep -v grep | grep \$\$MYSQLD | grep \" \$\$PID \" > /dev/null"
562
      ;;
563
    *)
564
      AC_MSG_ERROR([Could not find the right ps switches. Which OS is this ?. See the Installation chapter in the Reference Manual.])
236.1.39 by Monty Taylor
autoconf warning cleanups.
565
      ;;
1 by brian
clean slate
566
  esac
567
fi
568
AC_SUBST(FIND_PROC)
569
AC_MSG_RESULT("$FIND_PROC")
570
571
# Check if a pid is valid
572
AC_PATH_PROG(KILL, kill, kill)
573
AC_MSG_CHECKING("for kill switches")
574
if $ac_cv_path_KILL -0 $$
575
then
576
  CHECK_PID="$ac_cv_path_KILL -0 \$\$PID > /dev/null 2> /dev/null"
577
elif kill -s 0 $$
578
then
579
  CHECK_PID="$ac_cv_path_KILL -s 0 \$\$PID > /dev/null 2> /dev/null"
580
else
581
  AC_MSG_WARN([kill -0 to check for pid seems to fail])
582
    CHECK_PID="$ac_cv_path_KILL -s SIGCONT \$\$PID > /dev/null 2> /dev/null"
583
fi
584
AC_SUBST(CHECK_PID)
585
AC_MSG_RESULT("$CHECK_PID")
586
587
# We need an ANSI C compiler
588
AM_PROG_CC_STDC
589
590
# We need an assembler, too
591
AM_PROG_AS
592
CCASFLAGS="$CCASFLAGS $ASFLAGS"
593
594
# Check if we need noexec stack for assembler
595
AC_CHECK_NOEXECSTACK
596
597
if test "$am_cv_prog_cc_stdc" = "no"
598
then
91 by Brian Aker
Main binary now named drizzled
599
  AC_MSG_ERROR([Drizzle requires an ANSI C compiler (and a C++ compiler). Try gcc. See the Installation chapter in the Reference Manual.])
1 by brian
clean slate
600
fi
601
602
28.1.39 by Monty Taylor
Made everything use AS_HELP_STRING (except for charsets, which are dying anyway)
603
AC_ARG_WITH([server-suffix],
604
    [AS_HELP_STRING([--with-server-suffix],
605
      [Append value to the version string.])],
1 by brian
clean slate
606
    [ MYSQL_SERVER_SUFFIX=`echo "$withval" | sed -e  's/^\(...................................\)..*$/\1/'` ],
607
    [ MYSQL_SERVER_SUFFIX= ]
608
    )
609
AC_SUBST(MYSQL_SERVER_SUFFIX)
610
611
# Force use of a curses libs
28.1.39 by Monty Taylor
Made everything use AS_HELP_STRING (except for charsets, which are dying anyway)
612
AC_ARG_WITH([named-curses-libs],
613
    [AS_HELP_STRING([--with-named-curses-libs=ARG],
614
            [Use specified curses libraries instead of those
615
		automatically found by configure.])],
1 by brian
clean slate
616
    [ with_named_curses=$withval ],
617
    [ with_named_curses=no ]
618
    )
619
28.1.39 by Monty Taylor
Made everything use AS_HELP_STRING (except for charsets, which are dying anyway)
620
AC_ARG_WITH([tcp-port],
621
    [AS_HELP_STRING([--with-tcp-port=port-number],
165.1.1 by Elliot Murphy
new port number from IANA
622
            [Which port to use for Drizzle services @<:@default=4427@:>@])],
1 by brian
clean slate
623
    [ MYSQL_TCP_PORT=$withval ],
624
    [ MYSQL_TCP_PORT=$MYSQL_TCP_PORT_DEFAULT
625
      # if we actually defaulted (as opposed to the pathological case of
626
      # --with-tcp-port=<MYSQL_TCP_PORT_DEFAULT> which might in theory
627
      # happen if whole batch of servers was built from a script), set
628
      # the default to zero to indicate that; we don't lose information
629
      # that way, because 0 obviously indicates that we can get the
630
      # default value from MYSQL_TCP_PORT. this seems really evil, but
631
      # testing for MYSQL_TCP_PORT==MYSQL_TCP_PORT_DEFAULT would make a
632
      # a port of MYSQL_TCP_PORT_DEFAULT magic even if the builder did not
633
      # intend it to mean "use the default, in fact, look up a good default
165.1.1 by Elliot Murphy
new port number from IANA
634
      # from /etc/services if you can", but really, really meant 4427 when
635
      # they passed in 4427. When they pass in a specific value, let them
1 by brian
clean slate
636
      # have it; don't second guess user and think we know better, this will
637
      # just make people cross.  this makes the the logic work like this
638
      # (which is complicated enough):
639
      #
640
      # - if a port was set during build, use that as a default.
641
      #
642
      # - otherwise, try to look up a port in /etc/services; if that fails,
165.1.1 by Elliot Murphy
new port number from IANA
643
      #   use MYSQL_TCP_PORT_DEFAULT (at the time of this writing 4427)
1 by brian
clean slate
644
      #
645
      # - allow the MYSQL_TCP_PORT environment variable to override that.
646
      #
647
      # - allow command-line parameters to override all of the above.
648
      #
649
      # the top-most MYSQL_TCP_PORT_DEFAULT is read from win/configure.js,
650
      # so don't mess with that.
651
      MYSQL_TCP_PORT_DEFAULT=0 ]
652
    )
653
AC_SUBST(MYSQL_TCP_PORT)
654
# We might want to document the assigned port in the manual.
655
AC_SUBST(MYSQL_TCP_PORT_DEFAULT)
656
657
# Use this to set the place used for unix socket used to local communication.
28.1.39 by Monty Taylor
Made everything use AS_HELP_STRING (except for charsets, which are dying anyway)
658
AC_ARG_WITH([mysqld-user],
659
    [AS_HELP_STRING([--with-mysqld-user=username],
660
            [What user the mysqld daemon shall be run as.
661
		@<:@default=mysql@:>@])],
1 by brian
clean slate
662
    [ MYSQLD_USER=$withval ],
663
    [ MYSQLD_USER=mysql ]
664
    )
665
AC_SUBST(MYSQLD_USER)
666
667
# If we should allow LOAD DATA LOCAL
668
AC_MSG_CHECKING(If we should should enable LOAD DATA LOCAL by default)
669
AC_ARG_ENABLE(local-infile,
670
    [  --enable-local-infile   Enable LOAD DATA LOCAL INFILE (default: disabled)],
671
    [ ENABLED_LOCAL_INFILE=$enableval ],
672
    [ ENABLED_LOCAL_INFILE=no ]
673
    )
674
if test "$ENABLED_LOCAL_INFILE" = "yes"
675
then
676
  AC_MSG_RESULT([yes])
677
  AC_DEFINE([ENABLED_LOCAL_INFILE], [1],
678
            [If LOAD DATA LOCAL INFILE should be enabled by default])
679
else
680
  AC_MSG_RESULT([no])
681
fi
682
683
MYSQL_SYS_LARGEFILE
684
685
# Types that must be checked AFTER large file support is checked
686
AC_TYPE_SIZE_T
687
688
#--------------------------------------------------------------------
689
# Check for system header files
690
#--------------------------------------------------------------------
691
692
AC_HEADER_DIRENT
693
AC_HEADER_STDC
694
AC_HEADER_SYS_WAIT
53.2.2 by Monty Taylor
Updated everything that needs updating to compile with -std=gnu99 -pedantic
695
AC_HEADER_STDBOOL
77.1.22 by Monty Taylor
Removed refs to floatingpoint.h (which we only used for fconvert) and fconvert
696
AC_CHECK_HEADERS(fcntl.h float.h fpu_control.h ieeefp.h)
53.2.29 by Monty Taylor
Cleaned up headers a little more.
697
AC_CHECK_HEADERS(limits.h pwd.h select.h linux/config.h)
698
AC_CHECK_HEADERS(sys/fpu.h utime.h sys/utime.h )
699
AC_CHECK_HEADERS(synch.h sys/mman.h sys/socket.h netinet/in.h arpa/inet.h)
77.1.57 by Monty Taylor
Removed dual-compile needs on client.c. Get the symbols now from libdrizzle.
700
AC_CHECK_HEADERS(sys/timeb.h sys/vadvise.h sys/wait.h term.h)
202.1.4 by Monty Taylor
Removed openssl refs.
701
AC_CHECK_HEADERS(termio.h termios.h sched.h alloca.h)
53.2.29 by Monty Taylor
Cleaned up headers a little more.
702
AC_CHECK_HEADERS(sys/ioctl.h malloc.h sys/malloc.h sys/ipc.h sys/shm.h)
703
AC_CHECK_HEADERS(sys/prctl.h sys/resource.h sys/param.h port.h ieeefp.h)
704
AC_CHECK_HEADERS(execinfo.h)
1 by brian
clean slate
705
706
AC_CHECK_HEADERS([xfs/xfs.h])
77.1.62 by Monty Taylor
Added checks for libz and readline devel files.
707
77.1.31 by Monty Taylor
Replaced regex lib with pcre. Reworked mysqltest to use it.
708
#--------------------------------------------------------------------
1 by brian
clean slate
709
# Check for system libraries. Adds the library to $LIBS
710
# and defines HAVE_LIBM etc
711
#--------------------------------------------------------------------
712
713
AC_CHECK_LIB(m, floor, [], AC_CHECK_LIB(m, __infinity))
714
AC_CHECK_FUNCS(log2)
715
236.1.39 by Monty Taylor
autoconf warning cleanups.
716
AC_CHECK_FUNC(setsockopt, [], [AC_CHECK_LIB(socket, setsockopt)])
717
AC_CHECK_FUNC(yp_get_default_domain, [],
718
  [AC_CHECK_LIB(nsl, yp_get_default_domain)])
719
AC_CHECK_FUNC(p2open, [], [AC_CHECK_LIB(gen, p2open)])
1 by brian
clean slate
720
# This may get things to compile even if bind-8 is installed
236.1.39 by Monty Taylor
autoconf warning cleanups.
721
AC_CHECK_FUNC(bind, [], [AC_CHECK_LIB(bind, bind)])
1 by brian
clean slate
722
# Check if crypt() exists in libc or libcrypt, sets LIBS if needed
723
AC_SEARCH_LIBS(crypt, crypt, AC_DEFINE(HAVE_CRYPT, 1, [crypt]))
724
725
# Check rt for aio_read
726
AC_CHECK_LIB(rt, aio_read)
727
728
# For the sched_yield() function on Solaris
236.1.39 by Monty Taylor
autoconf warning cleanups.
729
AC_CHECK_FUNC(sched_yield, [],
730
  [AC_CHECK_LIB(posix4, [sched_yield],
731
    [AC_DEFINE(HAVE_SCHED_YIELD) LIBS="$LIBS -lposix4"])])
1 by brian
clean slate
732
733
if test "$ac_cv_header_termio_h" = "no" -a "$ac_cv_header_termios_h" = "no"
734
then
236.1.39 by Monty Taylor
autoconf warning cleanups.
735
  AC_CHECK_FUNC(gtty, [], [AC_CHECK_LIB(compat, gtty)])
1 by brian
clean slate
736
fi
737
738
AC_CHECK_TYPES([int8, uint8, int16, uint16, int32, uint32, int64, uint64,
739
                uchar, uint, ulong],[],[], [
740
#include <sys/types.h>
741
])
742
AC_CHECK_TYPES([fp_except], [], [], [
743
#include <sys/types.h>
744
#include <ieeefp.h>
745
])
746
25 by Brian Aker
Clean up of configure.in
747
my_save_LIBS="$LIBS"
748
LIBS=""
749
AC_CHECK_LIB(dl,dlopen)
177.3.1 by mark
remove ifdef HAVE_DLOPEN, make configure require dlopen()
750
AC_CHECK_FUNCS(dlopen dlerror)
751
if test "$ac_cv_func_dlopen" != "yes"
752
then
753
  AC_MSG_ERROR([Drizzle requires dlopen])
754
fi
201.2.3 by Monty Taylor
Cleaned up some LIBS bits in the build.
755
LIBDL_LIBS="$LIBS"
25 by Brian Aker
Clean up of configure.in
756
LIBS="$my_save_LIBS"
201.2.3 by Monty Taylor
Cleaned up some LIBS bits in the build.
757
AC_SUBST(LIBDL_LIBS)
25 by Brian Aker
Clean up of configure.in
758
759
AC_CHECK_FUNCS(strtok_r)
1 by brian
clean slate
760
761
# Build optimized or debug version ?
762
# First check for gcc and g++
28.1.33 by Monty Taylor
Added -Wall
763
if test "$ac_cv_c_compiler_gnu" = "yes"
1 by brian
clean slate
764
then
77.1.68 by Monty Taylor
Turned on -g and optimization for normal builds. -ggdb3 for gcc builds.
765
  SYMBOLS_CFLAGS="-ggdb3"
77.1.78 by Monty Taylor
One last bunch of warnings edits.
766
  DEBUG_OPTIMIZE_CC="-O0"
767
  OPTIMIZE_CFLAGS="-O2"
1 by brian
clean slate
768
else
77.1.68 by Monty Taylor
Turned on -g and optimization for normal builds. -ggdb3 for gcc builds.
769
  SYMBOLS_CFLAGS="-g"
1 by brian
clean slate
770
  DEBUG_OPTIMIZE_CC=""
771
  OPTIMIZE_CFLAGS="-O"
772
fi
773
if test "$ac_cv_prog_cxx_g" = "yes"
774
then
77.1.68 by Monty Taylor
Turned on -g and optimization for normal builds. -ggdb3 for gcc builds.
775
  SYMBOLS_CXXFLAGS="-ggdb3"
77.1.78 by Monty Taylor
One last bunch of warnings edits.
776
  DEBUG_OPTIMIZE_CXX="-O0"
777
  OPTIMIZE_CXXFLAGS="-O2"
1 by brian
clean slate
778
else
77.1.68 by Monty Taylor
Turned on -g and optimization for normal builds. -ggdb3 for gcc builds.
779
  SYMBOLS_CXXFLAGS="-g"
1 by brian
clean slate
780
  DEBUG_OPTIMIZE_CXX=""
781
  OPTIMIZE_CXXFLAGS="-O"
782
fi
783
784
# If the user specified CFLAGS, we won't add any optimizations
785
if test -n "$SAVE_CFLAGS"
786
then
787
  OPTIMIZE_CFLAGS=""
788
  DEBUG_OPTIMIZE_CC=""
789
fi
790
# Ditto for CXXFLAGS
791
if test -n "$SAVE_CXXFLAGS"
792
then
793
  OPTIMIZE_CXXFLAGS=""
794
  DEBUG_OPTIMIZE_CXX=""
795
fi
796
224.1.2 by Monty Taylor
Added local define of AC_HEADER_ASSERT.
797
dnl TODO: Remove this define once we are using 2.61 across the board.
798
# AC_HEADER_ASSERT
799
# ----------------
800
# Check whether to enable assertions.
236.1.39 by Monty Taylor
autoconf warning cleanups.
801
ifdef([AC_HEADER_ASSERT], [], [AC_DEFUN([AC_HEADER_ASSERT],
224.1.2 by Monty Taylor
Added local define of AC_HEADER_ASSERT.
802
[
803
  AC_MSG_CHECKING([whether to enable assertions])
804
  AC_ARG_ENABLE([assert],
805
    [  --disable-assert        turn off assertions],
806
    [AC_MSG_RESULT([no])
807
     AC_DEFINE(NDEBUG, 1, [Define to 1 if assertions should be disabled.])],
808
    [AC_MSG_RESULT(yes)])
236.1.39 by Monty Taylor
autoconf warning cleanups.
809
])])
224.1.2 by Monty Taylor
Added local define of AC_HEADER_ASSERT.
810
202.1.12 by Monty Taylor
Added --disable-assert compile option.
811
AC_HEADER_ASSERT
812
77.1.68 by Monty Taylor
Turned on -g and optimization for normal builds. -ggdb3 for gcc builds.
813
CFLAGS="${SYMBOLS_CFLAGS} ${CFLAGS}"
814
CXXFLAGS="${SYMBOLS_CXXFLAGS} ${CXXFLAGS}"
815
201.2.4 by Monty Taylor
Re-enabled optimizations for the normal build, and added back the --with-debug option to turn them off.
816
AC_ARG_WITH([debug],
817
    [AS_HELP_STRING([--with-debug],
818
       [Add debug code/turns off optimizations (yes|no) @<:@default=no@:>@])],
819
    [with_debug=$withval],
820
    [with_debug=no])
821
if test "$with_debug" = "yes"
822
then
823
  # Medium debug.
824
  CFLAGS="$DEBUG_OPTIMIZE_CC $CFLAGS"
825
  CXXFLAGS="$DEBUG_OPTIMIZE_CXX $CXXFLAGS"
826
else
827
  # Optimized version. No debug
828
  CFLAGS="$OPTIMIZE_CFLAGS $CFLAGS"
829
  CXXFLAGS="$OPTIMIZE_CXXFLAGS $CXXFLAGS"
830
fi
831
832
1 by brian
clean slate
833
AC_ARG_WITH([fast-mutexes],
28.1.39 by Monty Taylor
Made everything use AS_HELP_STRING (except for charsets, which are dying anyway)
834
    [AS_HELP_STRING([--with-fast-mutexes],
835
	    [Compile with fast mutexes  @<:@default=off@:>@])],
836
    [with_fast_mutexes=$withval],
837
    [with_fast_mutexes=no])
1 by brian
clean slate
838
839
if test "$with_fast_mutexes" != "no"
840
then
51.3.26 by Jay Pipes
Final removal of DBUG library and cleanup of Makefiles
841
	AC_DEFINE([MY_PTHREAD_FASTMUTEX], [1], 
842
			[Define to 1 if you want to use fast mutexes])
1 by brian
clean slate
843
fi
844
236.1.56 by Monty Taylor
Made build of thr_mutex.c conditional on --with-fast-mutexes, since that's
845
AM_CONDITIONAL(BUILD_FAST_MUTEX,[test "$with_fast_mutexes" != "no"])
846
28.1.39 by Monty Taylor
Made everything use AS_HELP_STRING (except for charsets, which are dying anyway)
847
AC_ARG_WITH([comment],
848
    [AS_HELP_STRING([--with-comment],
849
            [Comment about compilation environment. @<:@default=off@:>@])],
1 by brian
clean slate
850
    [with_comment=$withval],
851
    [with_comment=no])
852
if test "$with_comment" != "no"
853
then
854
  COMPILATION_COMMENT=$with_comment
855
else
856
  COMPILATION_COMMENT="Source distribution"
857
fi
858
AC_SUBST(COMPILATION_COMMENT)
859
77.1.96 by Monty Taylor
Removed skip-external-locking.
860
if expr "$target_os" : "[[Ll]]inux.*" > /dev/null
861
then
862
  TARGET_LINUX="true"
863
  AC_DEFINE([TARGET_OS_LINUX], [1], [Whether we build for Linux])
864
else
865
  TARGET_LINUX="false"
866
fi
867
1 by brian
clean slate
868
dnl Checks for typedefs, structures, and compiler characteristics.
869
AC_C_CONST
870
AC_C_INLINE
871
AC_TYPE_OFF_T
872
AC_HEADER_TIME
873
AC_STRUCT_TM
874
# AC_CHECK_SIZEOF return 0 when it does not find the size of a
875
# type. We want a error instead.
876
AC_CHECK_SIZEOF(char, 1)
877
if test "$ac_cv_sizeof_char" -eq 0
878
then
77.1.28 by Monty Taylor
Removed a crapload of files I hate.
879
  AC_MSG_ERROR([No size for char type.])
1 by brian
clean slate
880
fi
881
AC_CHECK_SIZEOF(char*, 4)
882
AC_CHECK_SIZEOF(short, 2)
883
AC_CHECK_SIZEOF(int, 4)
884
if test "$ac_cv_sizeof_int" -eq 0
885
then
886
  AC_MSG_ERROR("No size for int type.")
887
fi
888
AC_CHECK_SIZEOF(long, 4)
889
if test "$ac_cv_sizeof_long" -eq 0
890
then
891
  AC_MSG_ERROR("No size for long type.")
892
fi
893
AC_CHECK_SIZEOF(long long, 8)
894
if test "$ac_cv_sizeof_long_long" -eq 0
895
then
91 by Brian Aker
Main binary now named drizzled
896
  AC_MSG_ERROR("Drizzle needs a long long type.")
1 by brian
clean slate
897
fi
898
# off_t is not a builtin type
899
AC_CHECK_SIZEOF(off_t, 4)
900
if test "$ac_cv_sizeof_off_t" -eq 0
901
then
91 by Brian Aker
Main binary now named drizzled
902
  AC_MSG_ERROR("Drizzle needs a off_t type.")
1 by brian
clean slate
903
fi
904
905
dnl
906
dnl check if time_t is unsigned
907
dnl
908
909
MYSQL_CHECK_TIME_T
910
911
912
# do we need #pragma interface/#pragma implementation ?
913
# yes if it's gcc 2.x, and not icc pretending to be gcc, and not cygwin
914
AC_MSG_CHECKING(the need for @%:@pragma interface/implementation)
915
# instead of trying to match SYSTEM_TYPE and CC_VERSION (that doesn't
916
# follow any standard), we'll use well-defined preprocessor macros:
28.1.33 by Monty Taylor
Added -Wall
917
AC_PREPROC_IFELSE([AC_LANG_SOURCE([[
1 by brian
clean slate
918
#if !defined(__CYGWIN__) && !defined(__INTEL_COMPILER) && defined(__GNUC__) && (__GNUC__ < 3)
919
#error USE_PRAGMA_IMPLEMENTATION
920
#endif
28.1.33 by Monty Taylor
Added -Wall
921
]])],[AC_MSG_RESULT(no) ],[AC_MSG_RESULT(yes) ; CXXFLAGS="$CXXFLAGS -DUSE_PRAGMA_IMPLEMENTATION"])
1 by brian
clean slate
922
923
# This always gives a warning. Ignore it unless you are cross compiling
924
AC_C_BIGENDIAN
925
#---START: Used in for client configure
926
# Check base type of last arg to accept
927
MYSQL_TYPE_ACCEPT
928
#---END:
929
# Figure out what type of struct rlimit to use with setrlimit
930
MYSQL_TYPE_STRUCT_RLIMIT
931
# Find where the stack goes
932
MYSQL_STACK_DIRECTION
933
# We want to skip alloca on irix unconditionally. It may work on some version..
934
MYSQL_FUNC_ALLOCA
935
# Do struct timespec have members tv_sec or ts_sec
236.1.24 by Monty Taylor
Renamed MYSQL_TIME to DRIZZLE_TIME.
936
DRIZZLE_TIMESPEC_TS
1 by brian
clean slate
937
# Do we have the tzname variable
938
MYSQL_TZNAME
939
# Do the c++ compiler have a bool type
940
MYSQL_CXX_BOOL
941
AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
942
AC_CHECK_TYPES([size_t], [], [], [#include <stdio.h>])
943
AC_CHECK_TYPES([u_int32_t])
944
945
MYSQL_PTHREAD_YIELD
946
134.2.1 by Antony Curtis
Changes for proper detection of libraries
947
1 by brian
clean slate
948
dnl Checks for header files.
949
AC_CHECK_HEADERS(malloc.h sys/cdefs.h)
950
951
dnl Checks for library functions.
952
AC_FUNC_ALLOCA
953
AC_PROG_GCC_TRADITIONAL
954
AC_TYPE_SIGNAL
955
AC_CHECK_FUNCS(re_comp regcomp strdup)
956
957
dnl Sun compilers have their own vis.h that is about something
958
dnl totally different. So, not to change the libedit source, we
959
dnl do some additional checks before we define HAVE_VIS_H.
960
AC_CHECK_HEADER(vis.h,
961
  [AC_CHECK_FUNC(strvis,
962
    [AC_DEFINE([HAVE_VIS_H], [1],[Found vis.h and the strvis() function])])])
963
964
AC_CHECK_FUNCS(strlcat strlcpy)
965
AC_CHECK_FUNCS(issetugid)
966
AC_CHECK_FUNCS(getline flockfile)
967
968
# from old readline settting:
969
970
MAKE_SHELL=/bin/sh
971
AC_SUBST(MAKE_SHELL)
972
973
# Already-done: stdlib.h string.h unistd.h termios.h
974
AC_CHECK_HEADERS(varargs.h stdarg.h dirent.h locale.h ndir.h sys/dir.h \
975
 sys/file.h sys/ndir.h sys/ptem.h sys/pte.h sys/select.h sys/stream.h \
976
 sys/mman.h curses.h termcap.h termio.h termbits.h asm/termbits.h grp.h \
977
paths.h semaphore.h)
978
979
# Already-done: strcasecmp
980
AC_CHECK_FUNCS(lstat putenv select setenv setlocale strcoll tcgetattr)
981
28.1.33 by Monty Taylor
Added -Wall
982
AC_HEADER_STAT
1 by brian
clean slate
983
MYSQL_SIGNAL_CHECK
984
MYSQL_CHECK_GETPW_FUNCS
985
MYSQL_HAVE_TIOCGWINSZ
986
MYSQL_HAVE_FIONREAD
987
MYSQL_HAVE_TIOCSTAT
988
MYSQL_STRUCT_DIRENT_D_INO
989
MYSQL_STRUCT_DIRENT_D_NAMLEN
990
MYSQL_TYPE_SIGHANDLER
991
MYSQL_CHECK_MULTIBYTE
992
if test "$with_named_curses" = "no"
993
then
994
  MYSQL_CHECK_LIB_TERMCAP
995
else
201.2.3 by Monty Taylor
Cleaned up some LIBS bits in the build.
996
  TERMCAP_LIBS="$with_named_curses"
1 by brian
clean slate
997
fi
201.2.3 by Monty Taylor
Cleaned up some LIBS bits in the build.
998
AC_SUBST(TERMCAP_LIBS)
1 by brian
clean slate
999
1000
# Check if the termcap function 'tgoto' is already declared in
1001
# system header files or if it need to be declared locally
1002
AC_CHECK_DECLS(tgoto,,,[
1003
#ifdef HAVE_CURSES_H
1004
# include <curses.h>
1005
#elif HAVE_NCURSES_H
1006
# include <ncurses.h>
1007
#endif
1008
#ifdef HAVE_TERM_H
1009
# include <term.h>
1010
#endif
1011
])
1012
1013
# End of readline/libedit stuff
1014
#########################################################################
1015
1016
dnl Checks for library functions.
1017
1018
#
1019
# The following code disables intrinsic function support while we test for
1020
# library functions.  This is to avoid configure problems with Intel ecc
1021
# compiler
1022
1023
ORG_CFLAGS="$CFLAGS"
1024
if test "$GCC" != "yes"; then
1025
  AC_SYS_COMPILER_FLAG(-nolib_inline,nolib_inline,CFLAGS,[],[])
1026
fi
1027
1028
#AC_FUNC_MMAP
1029
AC_TYPE_SIGNAL
1030
MYSQL_TYPE_QSORT
1031
AC_FUNC_UTIME_NULL
1032
AC_FUNC_VPRINTF
1033
77.1.24 by Monty Taylor
Removed non-fcntl code and made it a fatal configure error if it's not there.
1034
AC_CHECK_FUNCS(fcntl)
1035
if test "x$ac_cv_func_fcntl" != "xyes"
1036
then
1037
  AC_MSG_ERROR("Drizzle requires fcntl.")
1038
fi
1039
236.1.50 by Monty Taylor
Added automake conditional compilation of distributed system replacement functions.
1040
AC_CONFIG_LIBOBJ_DIR([mystrings])
266.1.12 by Monty Taylor
Renamed strnmov to stpncpy. Made it conditional.
1041
AC_REPLACE_FUNCS([strtoll strstr strtoull stpcpy stpncpy getpagesize strnlen])
236.1.50 by Monty Taylor
Added automake conditional compilation of distributed system replacement functions.
1042
212.6.3 by Mats Kindahl
Removing deprecated functions from code and replacing them with C99 equivalents:
1043
AC_CHECK_FUNCS(bsearch \
77.1.24 by Monty Taylor
Removed non-fcntl code and made it a fatal configure error if it's not there.
1044
  cuserid fchmod \
77.1.22 by Monty Taylor
Removed refs to floatingpoint.h (which we only used for fconvert) and fconvert
1045
  fdatasync finite fpresetsticky fpsetmask fsync ftruncate \
1 by brian
clean slate
1046
  getcwd getpass getpassphrase getpwnam \
1047
  getpwuid getrlimit getrusage getwd index initgroups isnan \
1048
  localtime_r gethrtime gmtime_r \
212.6.1 by Mats Kindahl
Replacing all bzero() calls with memset() calls and removing the bzero.c file.
1049
  locking longjmp lrand48 madvise mallinfo \
212.6.3 by Mats Kindahl
Removing deprecated functions from code and replacing them with C99 equivalents:
1050
  memmove \
236.1.53 by Monty Taylor
Made getpagesize an automake compat LIBOBJ.
1051
  mkstemp mlockall perror poll pread pthread_attr_create mmap mmap64 \
1 by brian
clean slate
1052
  pthread_attr_getstacksize pthread_attr_setprio pthread_attr_setschedparam \
1053
  pthread_attr_setstacksize pthread_condattr_create pthread_getsequence_np \
1054
  pthread_key_delete pthread_rwlock_rdlock pthread_setprio \
1055
  pthread_setprio_np pthread_setschedparam pthread_sigmask readlink \
1056
  realpath rename rint rwlock_init setupterm \
1057
  shmget shmat shmdt shmctl sigaction sigemptyset sigaddset \
1058
  sighold sigset sigthreadmask port_create sleep \
266.1.12 by Monty Taylor
Renamed strnmov to stpncpy. Made it conditional.
1059
  snprintf socket strcasecmp strerror strsignal strpbrk \
236.1.54 by Monty Taylor
Removed double check for string functions.
1060
  tell tempnam vidattr \
1 by brian
clean slate
1061
  posix_fallocate backtrace backtrace_symbols backtrace_symbols_fd)
1062
236.1.59 by Monty Taylor
Turn thr_rwlock.c into a conditionally built source file.
1063
AM_CONDITIONAL(BUILD_THR_RWLOCK,[test "$ac_cv_func_rwlock_init" -a "$ac_cv_funn_pthread_rwlock_rdlock"])
1064
28.1.33 by Monty Taylor
Added -Wall
1065
# Check that isinf() is available in math.h and can be used in both C and C++
1 by brian
clean slate
1066
# code
28.1.33 by Monty Taylor
Added -Wall
1067
AC_MSG_CHECKING(for isinf in math.h)
1068
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <math.h>]], [[
1069
    float f = 0.0; 
1070
    int r = isinf(f); 
1071
    return r;
1072
  ]])],[
1 by brian
clean slate
1073
    AC_MSG_RESULT(yes)
28.1.33 by Monty Taylor
Added -Wall
1074
    AC_MSG_CHECKING(whether isinf() can be used in C++ code)
1075
    AC_LANG_PUSH([C++])
1076
    AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <math.h>]], [[
1077
      float f = 0.0;
1078
      int r = isinf(f);
1079
      return r;
1080
    ]])],[
1081
      AC_MSG_RESULT(yes)
1082
      AC_DEFINE(HAVE_ISINF, [1], [isinf() macro or function])
1083
    ],[
1084
      AC_MSG_RESULT(no)
1085
    ])
1086
    AC_LANG_POP([])
1087
  ],[
1088
  AC_MSG_RESULT(no)])
1089
1090
1 by brian
clean slate
1091
CFLAGS="$ORG_CFLAGS"
1092
1093
# Sanity check: We chould not have any fseeko symbol unless
1094
# large_file_support=yes
1095
AC_CHECK_FUNC(fseeko,
1096
[if test "$large_file_support" = no -a "$TARGET_LINUX" = "true";
1097
then
1098
  AC_MSG_ERROR("Found fseeko symbol but large_file_support is not enabled!")
1099
fi]
1100
)
1101
1102
# Check definition of pthread_getspecific
236.1.39 by Monty Taylor
autoconf warning cleanups.
1103
AC_CACHE_CHECK([args to pthread_getspecific], [mysql_cv_getspecific_args],
1104
  [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#if !defined(_REENTRANT)
1 by brian
clean slate
1105
#define _REENTRANT
1106
#endif
1107
#define _POSIX_PTHREAD_SEMANTICS 
28.1.33 by Monty Taylor
Added -Wall
1108
#include <pthread.h> ]], [[ void *pthread_getspecific(pthread_key_t key);
236.1.39 by Monty Taylor
autoconf warning cleanups.
1109
pthread_getspecific((pthread_key_t) NULL); ]])],
1110
    [mysql_cv_getspecific_args=POSIX],
1111
    [mysql_cv_getspecific_args=other])])
1 by brian
clean slate
1112
  if test "$mysql_cv_getspecific_args" = "other"
1113
  then
1114
    AC_DEFINE([HAVE_NONPOSIX_PTHREAD_GETSPECIFIC], [1],
1115
              [For some non posix threads])
1116
  fi
1117
1118
  # Check definition of pthread_mutex_init
236.1.39 by Monty Taylor
autoconf warning cleanups.
1119
  AC_CACHE_CHECK([args to pthread_mutex_init], [mysql_cv_mutex_init_args],
1120
    [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#define _REENTRANT
1 by brian
clean slate
1121
#define _POSIX_PTHREAD_SEMANTICS 
28.1.33 by Monty Taylor
Added -Wall
1122
#include <pthread.h> ]], [[ 
1 by brian
clean slate
1123
  pthread_mutexattr_t attr;
1124
  pthread_mutex_t mp;
236.1.39 by Monty Taylor
autoconf warning cleanups.
1125
  pthread_mutex_init(&mp,&attr); ]])],
1126
      [mysql_cv_mutex_init_args=POSIX],
1127
      [mysql_cv_mutex_init_args=other])])
1 by brian
clean slate
1128
  if test "$mysql_cv_mutex_init_args" = "other"
1129
  then
1130
    AC_DEFINE([HAVE_NONPOSIX_PTHREAD_MUTEX_INIT], [1],
1131
              [For some non posix threads])
1132
  fi
1133
#---END:
1134
1135
#---START: Used in for client configure
1136
# Check definition of readdir_r
236.1.39 by Monty Taylor
autoconf warning cleanups.
1137
AC_CACHE_CHECK([args to readdir_r], [mysql_cv_readdir_r],
1138
  [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define _REENTRANT
1 by brian
clean slate
1139
#define _POSIX_PTHREAD_SEMANTICS 
1140
#include <pthread.h>
28.1.33 by Monty Taylor
Added -Wall
1141
#include <dirent.h>]], [[ int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);
236.1.39 by Monty Taylor
autoconf warning cleanups.
1142
readdir_r((DIR *) NULL, (struct dirent *) NULL, (struct dirent **) NULL); ]])],
1143
    [mysql_cv_readdir_r=POSIX],
1144
    [mysql_cv_readdir_r=other])])
1 by brian
clean slate
1145
if test "$mysql_cv_readdir_r" = "POSIX"
1146
then
1147
  AC_DEFINE([HAVE_READDIR_R], [1], [POSIX readdir_r])
1148
fi
1149
1150
# Check definition of posix sigwait()
236.1.39 by Monty Taylor
autoconf warning cleanups.
1151
AC_CACHE_CHECK([style of sigwait], [mysql_cv_sigwait],
1152
  [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1153
#define _REENTRANT
1 by brian
clean slate
1154
#define _POSIX_PTHREAD_SEMANTICS 
1155
#include <pthread.h>
236.1.39 by Monty Taylor
autoconf warning cleanups.
1156
#include <signal.h>
1157
      ]], [[
1158
#ifndef _AIX
1 by brian
clean slate
1159
sigset_t set;
1160
int sig;
1161
sigwait(&set,&sig);
236.1.39 by Monty Taylor
autoconf warning cleanups.
1162
#endif
1163
      ]])],
1164
    [mysql_cv_sigwait=POSIX],
1165
    [mysql_cv_sigwait=other])])
1 by brian
clean slate
1166
if test "$mysql_cv_sigwait" = "POSIX"
1167
then
1168
  AC_DEFINE([HAVE_SIGWAIT], [1], [POSIX sigwait])
1169
fi
1170
1171
if test "$mysql_cv_sigwait" != "POSIX"
1172
then
1173
unset mysql_cv_sigwait
1174
# Check definition of posix sigwait()
236.1.39 by Monty Taylor
autoconf warning cleanups.
1175
AC_CACHE_CHECK([style of sigwait], [mysql_cv_sigwait],
1176
  [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1177
#define _REENTRANT
1 by brian
clean slate
1178
#define _POSIX_PTHREAD_SEMANTICS 
1179
#include <pthread.h>
236.1.39 by Monty Taylor
autoconf warning cleanups.
1180
#include <signal.h>
1181
      ]], [[
1182
sigset_t set;
1 by brian
clean slate
1183
int sig;
236.1.39 by Monty Taylor
autoconf warning cleanups.
1184
sigwait(&set);
1185
      ]])],
1186
    [mysql_cv_sigwait=NONPOSIX],
1187
    [mysql_cv_sigwait=other])])
1 by brian
clean slate
1188
if test "$mysql_cv_sigwait" = "NONPOSIX"
1189
then
1190
  AC_DEFINE([HAVE_NONPOSIX_SIGWAIT], [1], [sigwait with one argument])
1191
fi
1192
fi
1193
#---END:
1194
1195
# Check if pthread_attr_setscope() exists
236.1.39 by Monty Taylor
autoconf warning cleanups.
1196
AC_CACHE_CHECK([for pthread_attr_setscope], [mysql_cv_pthread_attr_setscope],
1197
  [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1198
#define _REENTRANT
1 by brian
clean slate
1199
#define _POSIX_PTHREAD_SEMANTICS 
236.1.39 by Monty Taylor
autoconf warning cleanups.
1200
#include <pthread.h>
1201
      ]], [[
1202
pthread_attr_t thr_attr;
1203
pthread_attr_setscope(&thr_attr,0);
1204
      ]])],
1205
    [mysql_cv_pthread_attr_setscope=yes],
1206
    [mysql_cv_pthread_attr_setscope=no])])
1 by brian
clean slate
1207
if test "$mysql_cv_pthread_attr_setscope" = "yes"
1208
then
1209
  AC_DEFINE([HAVE_PTHREAD_ATTR_SETSCOPE], [1], [pthread_attr_setscope])
1210
fi
1211
1212
# Check for bad includes
1213
AC_MSG_CHECKING("can netinet files be included")
28.1.33 by Monty Taylor
Added -Wall
1214
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
1 by brian
clean slate
1215
#include <sys/socket.h>
1216
#include <netinet/in_systm.h>
1217
#include <netinet/in.h>
1218
#include <netinet/ip.h>
28.1.33 by Monty Taylor
Added -Wall
1219
#include <netinet/tcp.h>]], [[ printf("1\n"); ]])],[netinet_inc=yes],[netinet_inc=no])
1 by brian
clean slate
1220
if test "$netinet_inc" = "no"
1221
then
1222
  AC_DEFINE([HAVE_BROKEN_NETINET_INCLUDES], [1], [Can netinet be included])
1223
fi
1224
AC_MSG_RESULT("$netinet_inc")
1225
28.1.33 by Monty Taylor
Added -Wall
1226
AC_LANG_PUSH([C++])
1 by brian
clean slate
1227
AC_CHECK_HEADERS(cxxabi.h)
1228
AC_CACHE_CHECK([checking for abi::__cxa_demangle], mysql_cv_cxa_demangle,
28.1.33 by Monty Taylor
Added -Wall
1229
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <cxxabi.h>]], [[
1 by brian
clean slate
1230
  char *foo= 0; int bar= 0;
1231
  foo= abi::__cxa_demangle(foo, foo, 0, &bar);
28.1.33 by Monty Taylor
Added -Wall
1232
]])],[mysql_cv_cxa_demangle=yes],[mysql_cv_cxa_demangle=no])])
1233
AC_LANG_POP([])
1 by brian
clean slate
1234
1235
if test "x$mysql_cv_cxa_demangle" = xyes; then
1236
  AC_DEFINE(HAVE_ABI_CXA_DEMANGLE, 1,
1237
            [Define to 1 if you have the `abi::__cxa_demangle' function.])
1238
fi
1239
1240
#--------------------------------------------------------------------
1241
# Check for requested features
1242
#--------------------------------------------------------------------
1243
1244
MYSQL_CHECK_BIG_TABLES
1245
MYSQL_CHECK_MAX_INDEXES
1246
MYSQL_CHECK_VIO
1247
1248
#--------------------------------------------------------------------
1249
# Declare our plugin modules
1250
# Has to be done late, as the plugin may need to check for existence of
1251
# functions tested above
1252
#--------------------------------------------------------------------
1253
1254
MYSQL_CONFIGURE_PLUGINS([none])
1255
1256
AC_SUBST(mysql_plugin_dirs)
1257
AC_SUBST(mysql_plugin_libs)
1258
AC_SUBST(mysql_plugin_defs)
1259
189 by Brian Aker
Refactor of configure.ac. Added profile. One note... I believe this should
1260
AC_ARG_ENABLE([profiling],
1261
    [AS_HELP_STRING([--enable-profiling],
1262
       [Toggle profiling @<:@default=off@:>@])],
1263
    [ac_profiling="$enableval"],
1264
    [ac_profiling="no"])
1265
1266
AC_ARG_ENABLE([coverage],
1267
    [AS_HELP_STRING([--enable-coverage],
1268
       [Toggle coverage @<:@default=off@:>@])],
1269
    [ac_coverage="$enableval"],
1270
    [ac_coverage="no"])
1271
53.2.1 by Monty Taylor
Added --disable-pedantic-warnings and --enable-fail.
1272
AC_ARG_ENABLE([pedantic-warnings],
1273
    [AS_HELP_STRING([--disable-pedantic-warnings],
1274
       [Toggle pedanticness @<:@default=on@:>@])],
1275
    [ac_warn_pedantic="$enableval"],
1276
    [ac_warn_pedantic="yes"])
1277
1278
AC_ARG_ENABLE([fail],
77.1.112 by Monty Taylor
Fixed comment on --enable-fail -> --disable-fail.
1279
    [AS_HELP_STRING([--disable-fail],
1280
       [Turn warnings into failures @<:@default=on@:>@])],
53.2.1 by Monty Taylor
Added --disable-pedantic-warnings and --enable-fail.
1281
    [ac_warn_fail="$enableval"],
77.1.108 by Monty Taylor
Turn on -Werror again by default.
1282
    [ac_warn_fail="yes"])
53.2.1 by Monty Taylor
Added --disable-pedantic-warnings and --enable-fail.
1283
53.2.6 by Monty Taylor
Turned unreachable code warnings into a configure option.
1284
AC_ARG_ENABLE([unreachable],
1285
    [AS_HELP_STRING([--enable-unreachable],
1286
       [Enable warnings about unreachable code @<:@default=off@:>@])],
1287
    [ac_warn_unreachable="$enableval"],
1288
    [ac_warn_unreachable="no"])
1289
77.1.109 by Monty Taylor
Made --disable-pedantic-warnings only disable the pedantic warnings, rather than also removing the -std=gnu99 part.
1290
AC_ARG_ENABLE([longlong-warnings],
1291
    [AS_HELP_STRING([--enable-longlong-warnings],
1292
       [Enable warnings about longlong in C++ @<:@default=off@:>@])],
1293
    [ac_warn_longlong="$enableval"],
1294
    [ac_warn_longlong="no"])
1295
1296
AC_ARG_ENABLE([strict-aliasing],
1297
    [AS_HELP_STRING([--enable-strict-aliasing],
1298
       [Enable warnings about stict-aliasing @<:@default=off@:>@])],
1299
    [ac_warn_strict_aliasing="$enableval"],
1300
    [ac_warn_strict_aliasing="no"])
1301
53.2.2 by Monty Taylor
Updated everything that needs updating to compile with -std=gnu99 -pedantic
1302
53.2.1 by Monty Taylor
Added --disable-pedantic-warnings and --enable-fail.
1303
if test "$GCC" = "yes"
1304
then
53.2.2 by Monty Taylor
Updated everything that needs updating to compile with -std=gnu99 -pedantic
1305
77.1.109 by Monty Taylor
Made --disable-pedantic-warnings only disable the pedantic warnings, rather than also removing the -std=gnu99 part.
1306
  if test "$ac_warn_longlong" = "yes"
1307
  then
1308
    W_LONGLONG="-Wlong-long"
1309
  else
1310
    W_LONGLONG="-Wno-long-long"
1311
  fi
53.2.1 by Monty Taylor
Added --disable-pedantic-warnings and --enable-fail.
1312
77.1.109 by Monty Taylor
Made --disable-pedantic-warnings only disable the pedantic warnings, rather than also removing the -std=gnu99 part.
1313
  if test "$ac_warn_strict_aliasing" = "yes"
1314
  then
1315
    W_STRICT_ALIASING="-Wstrict-aliasing"
1316
  else
77.1.110 by Monty Taylor
Fixed a typo.
1317
    W_STRICT_ALIASING="-Wno-strict-aliasing"
77.1.109 by Monty Taylor
Made --disable-pedantic-warnings only disable the pedantic warnings, rather than also removing the -std=gnu99 part.
1318
  fi
53.2.1 by Monty Taylor
Added --disable-pedantic-warnings and --enable-fail.
1319
189 by Brian Aker
Refactor of configure.ac. Added profile. One note... I believe this should
1320
  if test "$ac_profiling" = "yes"
1321
  then
1322
    GPROF_PROFILING="-pg"
1323
  else
1324
    GPROF_PROFILING=" "
1325
  fi
1326
1327
  if test "$ac_coverage" = "yes"
1328
  then
1329
    GPROF_COVERAGE="-fprofile-arcs -ftest-coverage"
1330
  else
1331
    GPROF_COVERAGE=" "
1332
  fi
1333
53.2.1 by Monty Taylor
Added --disable-pedantic-warnings and --enable-fail.
1334
  if test "$ac_warn_pedantic" = "yes"
1335
  then
77.1.109 by Monty Taylor
Made --disable-pedantic-warnings only disable the pedantic warnings, rather than also removing the -std=gnu99 part.
1336
    GCC_PEDANTIC="-pedantic -Wundef -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls ${W_STRICT_ALIASING}"
1337
    GXX_PEDANTIC="-pedantic -Wundef -Wredundant-decls ${W_LONGLONG} ${W_STRICT_ALIASING}"
53.2.1 by Monty Taylor
Added --disable-pedantic-warnings and --enable-fail.
1338
  fi
1339
53.2.6 by Monty Taylor
Turned unreachable code warnings into a configure option.
1340
  if test "$ac_warn_unreachable" = "yes"
1341
  then
77.1.109 by Monty Taylor
Made --disable-pedantic-warnings only disable the pedantic warnings, rather than also removing the -std=gnu99 part.
1342
    W_UNREACHABLE="-Wunreachable-code"
53.2.6 by Monty Taylor
Turned unreachable code warnings into a configure option.
1343
  fi
1344
53.2.1 by Monty Taylor
Added --disable-pedantic-warnings and --enable-fail.
1345
  if test "$ac_warn_fail" = "yes"
1346
  then
77.1.109 by Monty Taylor
Made --disable-pedantic-warnings only disable the pedantic warnings, rather than also removing the -std=gnu99 part.
1347
    W_FAIL="-Werror"
53.2.1 by Monty Taylor
Added --disable-pedantic-warnings and --enable-fail.
1348
  fi
1349
77.1.109 by Monty Taylor
Made --disable-pedantic-warnings only disable the pedantic warnings, rather than also removing the -std=gnu99 part.
1350
  BASE_WARNINGS="-W -Wall -Wextra"
236.1.2 by Monty Taylor
Changed the way we work around autoconf2.59
1351
  GCC_WARNINGS="${C99_SUPPORT_HACK} ${BASE_WARNINGS} ${GCC_PEDANTIC} ${W_UNREACHABLE} ${W_FAIL} ${GPROF_PROFILING} ${GPROF_COVERAGE}"
230.3.1 by Monty Taylor
Bug 252805: ./configure not detecting missing g++
1352
  GXX_WARNINGS="${BASE_WARNINGS} ${GXX_PEDANTIC} ${W_UNREACHABLE} ${W_FAIL} ${GPROF_PROFILING} ${GPROF_COVERAGE}"
77.1.109 by Monty Taylor
Made --disable-pedantic-warnings only disable the pedantic warnings, rather than also removing the -std=gnu99 part.
1353
1354
  CXXFLAGS="$CXXFLAGS ${GXX_WARNINGS}"
1355
  CFLAGS="$CFLAGS ${GCC_WARNINGS} "
53.2.1 by Monty Taylor
Added --disable-pedantic-warnings and --enable-fail.
1356
fi
1357
212.5.43 by Monty Taylor
Removed global include dir from CPPFLAGS.
1358
AC_SUBST([GLOBAL_CPPFLAGS],['-I$(top_srcdir) -I$(top_builddir)'])
202.1.23 by Monty Taylor
Moved the includes we use everywhere to to GLOBAL_CPPFLAGS and added AM_CPPFLAGS to an AC_SUBST, so that we could take out the redundant declaration from most fof the Makefiles.
1359
AC_SUBST([AM_CPPFLAGS],['${GLOBAL_CPPFLAGS}'])
1360
1 by brian
clean slate
1361
# Some usefull subst
1362
AC_SUBST(CC)
1363
AC_SUBST(GXX)
1364
1365
# Set configuration options for make_binary_distribution
1366
case $SYSTEM_TYPE in
1367
  *netware*)
1368
    MAKE_BINARY_DISTRIBUTION_OPTIONS="$MAKE_BINARY_DISTRIBUTION_OPTIONS --no-strip"
1369
    ;;
1370
  *)
1371
    : # no change for other platforms yet
1372
    ;;
1373
esac
1374
AC_SUBST(MAKE_BINARY_DISTRIBUTION_OPTIONS)
1375
202.3.2 by Monty Taylor
Added gettext calls in to my_getopt.c and drizzle.c
1376
AC_CONFIG_FILES(Makefile extra/Makefile mysys/Makefile mysys/tests/Makefile dnl
264.1.15 by Monty Taylor
Removed a bunch of files from mystrings that aren't build or used at all.
1377
 mystrings/Makefile storage/Makefile dnl
202.3.2 by Monty Taylor
Added gettext calls in to my_getopt.c and drizzle.c
1378
 vio/Makefile po/Makefile.in dnl
77.1.38 by Monty Taylor
Renamed more stuff to drizzle.
1379
 libdrizzle/Makefile client/Makefile dnl
214 by Brian Aker
Rename of fields (fix issue with string and decimal .h clashing).
1380
 drizzled/Makefile dnl
1381
 drizzled/field/Makefile dnl
1382
 drizzled/sql_builtin.cc dnl
236.1.65 by Monty Taylor
Added charsets dir back in. Ooops.
1383
 drizzled/share/Makefile dnl
28.1.31 by Monty Taylor
Deleted tons of pointless garbage from scripts.
1384
 support-files/Makefile dnl
77.1.47 by Monty Taylor
Moved test to tests...
1385
 tests/Makefile tests/install_test_db dnl
212.5.36 by Monty Taylor
Moved drizzle_version.
1386
 drizzled/version.h plugin/Makefile dnl
214 by Brian Aker
Rename of fields (fix issue with string and decimal .h clashing).
1387
 drizzled/drizzled_safe support-files/libdrizzle.pc dnl
77.1.38 by Monty Taylor
Renamed more stuff to drizzle.
1388
 support-files/drizzle.server support-files/drizzle-log-rotate)
1 by brian
clean slate
1389
1390
AC_CONFIG_COMMANDS([default], , test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h)
1391
1392
# Ensure that table handlers gets all modifications to CFLAGS/CXXFLAGS
1393
AC_CONFIG_COMMANDS_POST(ac_configure_args="$ac_configure_args CFLAGS='$CFLAGS' CXXFLAGS='$CXXFLAGS'")
1394
1395
AC_OUTPUT