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