~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
28.1.33 by Monty Taylor
Added -Wall
4
AC_PREREQ(2.61)dnl		Minimum Autoconf version required.
1 by brian
clean slate
5
28.1.33 by Monty Taylor
Added -Wall
6
AC_INIT
77.1.34 by Monty Taylor
Renamed more things to match the drizzled rename.
7
AC_CONFIG_SRCDIR([sql/drizzled.cc])
39 by Brian Aker
Move build helper files into config
8
AC_CONFIG_AUX_DIR(config)
28.1.33 by Monty Taylor
Added -Wall
9
AC_CONFIG_HEADERS([include/config.h:config.h.in])
10
AC_CANONICAL_TARGET
91 by Brian Aker
Main binary now named drizzled
11
AM_INIT_AUTOMAKE(drizzle, 7.0.0, no-define)
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
38
MYSQL_TCP_PORT_DEFAULT=3306
39
40
dnl Include m4 
41
sinclude(config/ac-macros/alloca.m4)
42
sinclude(config/ac-macros/check_cpu.m4)
43
sinclude(config/ac-macros/character_sets.m4)
44
sinclude(config/ac-macros/compiler_flag.m4)
45
sinclude(config/ac-macros/dtrace.m4)
46
sinclude(config/ac-macros/plugins.m4)
47
sinclude(config/ac-macros/large_file.m4)
48
sinclude(config/ac-macros/misc.m4)
49
sinclude(config/ac-macros/readline.m4)
50
sinclude(config/ac-macros/ssl.m4)
51
52
# Remember to add a directory sql/share/LANGUAGE
53
AVAILABLE_LANGUAGES="\
54
czech danish dutch english estonian french german greek hungarian \
55
italian japanese korean norwegian norwegian-ny polish portuguese \
56
romanian russian serbian slovak spanish swedish ukrainian"
57
58
#####
59
#####
60
61
AC_SUBST(MYSQL_NO_DASH_VERSION)
62
AC_SUBST(MYSQL_BASE_VERSION)
63
AC_SUBST(MYSQL_VERSION_ID)
64
AC_SUBST(MYSQL_PREVIOUS_BASE_VERSION)
65
AC_SUBST(PROTOCOL_VERSION)
66
AC_DEFINE_UNQUOTED([PROTOCOL_VERSION], [$PROTOCOL_VERSION],
67
                   [mysql client protocol version])
68
AC_SUBST(DOT_FRM_VERSION)
69
AC_DEFINE_UNQUOTED([DOT_FRM_VERSION], [$DOT_FRM_VERSION],
70
                   [Version of .frm files])
71
AC_SUBST(SHARED_LIB_MAJOR_VERSION)
72
AC_SUBST(SHARED_LIB_VERSION)
73
AC_SUBST(AVAILABLE_LANGUAGES)
74
75
76
# Canonicalize the configuration name.
77
78
# Check whether --with-system-type or --without-system-type was given.
28.1.33 by Monty Taylor
Added -Wall
79
AC_ARG_WITH([system-type],
80
    [AS_HELP_STRING([--with-system-type],
81
       [Set the system type, like "sun-solaris10"])],
1 by brian
clean slate
82
    [SYSTEM_TYPE="$withval"],
83
    [SYSTEM_TYPE="$host_vendor-$host_os"])
28.1.33 by Monty Taylor
Added -Wall
84
AC_ARG_WITH([machine-type],
85
    [AS_HELP_STRING([--with-machine-type],
86
       [Set the machine type, like "powerpc"])],
1 by brian
clean slate
87
    [MACHINE_TYPE="$withval"],
88
    [MACHINE_TYPE="$host_cpu"])
89
AC_SUBST(SYSTEM_TYPE)
90
AC_DEFINE_UNQUOTED([SYSTEM_TYPE], ["$SYSTEM_TYPE"],
91
                   [Name of system, eg sun-solaris])
92
AC_SUBST(MACHINE_TYPE)
93
AC_DEFINE_UNQUOTED([MACHINE_TYPE], ["$MACHINE_TYPE"],
94
                   [Machine type name, eg sparc])
95
96
# Detect intel x86 like processor
97
BASE_MACHINE_TYPE=$MACHINE_TYPE
98
case $MACHINE_TYPE in
99
  i?86) BASE_MACHINE_TYPE=i386 ;;
100
esac
101
102
# Save some variables and the command line options for mysqlbug
103
SAVE_CC="$CC"
104
SAVE_CXX="$CXX"
105
SAVE_ASFLAGS="$ASFLAGS"
106
SAVE_CFLAGS="$CFLAGS"
107
SAVE_CXXFLAGS="$CXXFLAGS"
108
SAVE_LDFLAGS="$LDFLAGS"
109
SAVE_CXXLDFLAGS="$CXXLDFLAGS"
110
CONF_COMMAND="$0 $ac_configure_args"
111
AC_SUBST(CONF_COMMAND)
112
AC_SUBST(SAVE_CC)
113
AC_SUBST(SAVE_CXX)
114
AC_SUBST(SAVE_ASFLAGS)
115
AC_SUBST(SAVE_CFLAGS)
116
AC_SUBST(SAVE_CXXFLAGS)
117
AC_SUBST(SAVE_LDFLAGS)
118
AC_SUBST(SAVE_CXXLDFLAGS)
119
AC_SUBST(CXXLDFLAGS)
120
121
AM_SANITY_CHECK
122
# This is needed is SUBDIRS is set
123
AC_PROG_MAKE_SET
124
125
##############################################################################
126
# The below section needs to be done before AC_PROG_CC
127
##############################################################################
128
129
if test "x${CFLAGS-}" = x ; then
130
  cflags_is_set=no
131
else
132
  cflags_is_set=yes
133
fi
134
135
if test "x${CPPFLAGS-}" = x ; then
136
  cppflags_is_set=no
137
else
138
  cppflags_is_set=yes
139
fi
140
141
if test "x${LDFLAGS-}" = x ; then
142
  ldflags_is_set=no
143
else
144
  ldflags_is_set=yes
145
fi
146
147
################ End of section to be done before AC_PROG_CC #################
148
149
# The following hack should ensure that configure doesn't add optimizing
150
# or debugging flags to CFLAGS or CXXFLAGS
151
# C_EXTRA_FLAGS are flags that are automaticly added to both
152
# CFLAGS and CXXFLAGS
153
CFLAGS="$CFLAGS $C_EXTRA_FLAGS "
154
CXXFLAGS="$CXXFLAGS $C_EXTRA_FLAGS "
155
156
dnl Checks for programs.
157
AC_PROG_AWK
158
AC_PROG_CC
159
AC_PROG_CXX
160
AC_PROG_CPP
161
AM_PROG_CC_C_O
162
163
# Print version of CC and CXX compiler (if they support --version)
164
case $SYSTEM_TYPE in
165
  *netware*)
166
CC_VERSION=`$CC -version | grep -i version`
167
    ;;
168
  *)
169
CC_VERSION=`$CC --version | sed 1q`
170
    ;;
171
esac
172
if test $? -eq "0"
173
then
174
  AC_MSG_CHECKING("C Compiler version")
175
  AC_MSG_RESULT("$CC $CC_VERSION")
176
else
177
CC_VERSION=""
178
fi
179
AC_SUBST(CC_VERSION)
180
MYSQL_CHECK_CXX_VERSION
181
28.1.33 by Monty Taylor
Added -Wall
182
if test "$ac_cv_c_compiler_gnu" = "yes"
1 by brian
clean slate
183
then
184
  AS="$CC -c"
185
  AC_SUBST(AS)
186
else
187
  AC_PATH_PROG(AS, as, as)
188
fi
189
190
# Still need ranlib for readline; local static use only so no libtool.
191
AC_PROG_RANLIB
192
# We use libtool
193
#AC_LIBTOOL_WIN32_DLL
194
AC_PROG_LIBTOOL
195
196
# Ensure that we have --preserve-dup-deps defines, otherwise we get link
197
# problems of 'mysql' with CXX=g++
198
LIBTOOL="$LIBTOOL --preserve-dup-deps"
199
AC_SUBST(LIBTOOL)dnl
200
201
AC_SUBST(NM)dnl
202
203
AC_PROG_INSTALL
204
test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
205
206
# Not critical since the generated file is distributed
207
AC_CHECK_PROGS(YACC, ['bison -y -p MYSQL'])
208
209
AC_PATH_PROG(uname_prog, uname, no)
210
211
# We should go through this and put all the explictly system dependent
212
# stuff in one place
213
AC_MSG_CHECKING(operating system)
214
AC_CACHE_VAL(mysql_cv_sys_os,
215
[
216
if test "$uname_prog" != "no"; then
217
  mysql_cv_sys_os="`uname`"
218
else
219
  mysql_cv_sys_os="Not Solaris"
220
fi
221
])
222
AC_MSG_RESULT($mysql_cv_sys_os)
223
224
# This should be rewritten to use $target_os
225
case "$target_os" in
226
  *solaris*)
227
    TARGET_SOLARIS="true"
228
    AC_DEFINE([TARGET_OS_SOLARIS], [1], [Whether we are building for Solaris])
229
    AC_SUBST(TARGET_SOLARIS)
230
  ;;
231
esac
232
233
# The following is required for portable results of floating point calculations
234
# on PowerPC. The same must also be done for IA-64, but this options is missing
235
# in the IA-64 gcc backend.
236
237
if test "$GCC" = "yes"
238
then
239
  case "$host_cpu" in
240
    *ppc* | *powerpc*)
241
      CFLAGS="$CFLAGS -mno-fused-madd"
242
      CXXFLAGS="$CXXFLAGS -mno-fused-madd"
243
    ;;
244
  esac
245
fi
246
247
AC_SUBST(CC)
248
AC_SUBST(CFLAGS)
249
AC_SUBST(CXX)
250
AC_SUBST(CXXFLAGS)
251
AC_SUBST(ASFLAGS)
252
AC_SUBST(LD)
253
AC_SUBST(INSTALL_SCRIPT)
254
53.2.1 by Monty Taylor
Added --disable-pedantic-warnings and --enable-fail.
255
1 by brian
clean slate
256
export CC CXX CFLAGS LD LDFLAGS AR ARFLAGS
257
258
if test "$GCC" = "yes"
259
then
260
  # mysqld requires -fno-implicit-templates.
261
  # Disable exceptions as they seams to create problems with gcc and threads.
262
  # mysqld doesn't use run-time-type-checking, so we disable it.
263
  # We should use -Wno-invalid-offsetof flag to disable some warnings from gcc
264
  # regarding offset() usage in C++ which are done in a safe manner in the
265
  # server
53.2.1 by Monty Taylor
Added --disable-pedantic-warnings and --enable-fail.
266
  CXXFLAGS="$CXXFLAGS ${GCC_WARNINGS} -fno-implicit-templates -fno-exceptions -fno-rtti"
267
  CFLAGS="$CFLAGS ${GCC_WARNINGS} "
1 by brian
clean slate
268
  AC_DEFINE([HAVE_EXPLICIT_TEMPLATE_INSTANTIATION],
269
    [1], [Defined by configure. Use explicit template instantiation.])
270
fi
271
272
MYSQL_PROG_AR
273
274
# libmysqlclient versioning when linked with GNU ld.
275
if $LD --version 2>/dev/null|grep -q GNU; then
77.1.38 by Monty Taylor
Renamed more stuff to drizzle.
276
  LD_VERSION_SCRIPT="-Wl,--version-script=\$(top_builddir)/libdrizzle/libdrizzle.ver"
277
  AC_CONFIG_FILES(libdrizzle/libdrizzle.ver)
1 by brian
clean slate
278
fi
279
AC_SUBST(LD_VERSION_SCRIPT)
280
281
282
# Avoid bug in fcntl on some versions of linux
283
AC_MSG_CHECKING([if we should use 'skip-external-locking' as default for $target_os])
284
# Any variation of Linux
285
if expr "$target_os" : "[[Ll]]inux.*" > /dev/null
286
then
287
  MYSQLD_DEFAULT_SWITCHES="--skip-external-locking"
288
  TARGET_LINUX="true"
289
  AC_MSG_RESULT([yes])
290
  AC_DEFINE([TARGET_OS_LINUX], [1], [Whether we build for Linux])
291
else
292
  MYSQLD_DEFAULT_SWITCHES=""
293
  TARGET_LINUX="false"
294
  AC_MSG_RESULT([no])
295
fi
296
AC_SUBST(MYSQLD_DEFAULT_SWITCHES)
297
AC_SUBST(TARGET_LINUX)
298
299
dnl Find paths to some shell programs
300
AC_PATH_PROG(LN, ln, ln)
301
# This must be able to take a -f flag like normal unix ln.
302
AC_PATH_PROG(LN_CP_F, ln, ln)
303
304
AC_PATH_PROG(MV, mv, mv)
305
AC_PATH_PROG(RM, rm, rm)
306
AC_PATH_PROG(CP, cp, cp)
307
AC_PATH_PROG(SED, sed, sed)
308
AC_PATH_PROG(CMP, cmp, cmp)
309
AC_PATH_PROG(CHMOD, chmod, chmod)
310
AC_PATH_PROG(HOSTNAME, hostname, hostname)
311
# Check for a GNU tar named 'gtar', or 'gnutar' (MacOS X) and
312
# fall back to 'tar' otherwise and hope that it's a GNU tar as well
313
AC_CHECK_PROGS(TAR, gnutar gtar tar)
314
315
dnl We use a path for perl so the script startup works
316
dnl We make sure to use perl, not perl5, in hopes that the RPMs will
317
dnl not depend on the perl5 binary being installed (probably a bug in RPM)
318
AC_PATH_PROG(PERL, perl, no)
319
if test "$PERL" != "no" && $PERL -e 'require 5' > /dev/null 2>&1
320
then
321
  PERL5=$PERL
322
else
323
  AC_PATH_PROG(PERL5, perl5, no)
324
  if test "$PERL5" != no
325
  then
326
    PERL=$PERL5
327
    ac_cv_path_PERL=$ac_cv_path_PERL5
328
  fi
329
fi
330
331
AC_SUBST(HOSTNAME)
332
AC_SUBST(PERL)
333
AC_SUBST(PERL5)
334
335
# icheck, used for ABI check
336
AC_PATH_PROG(ICHECK, icheck, no)
337
# "icheck" is also the name of a file system check program on Tru64.
338
# Verify the program found is really the interface checker.
339
if test "x$ICHECK" != "xno"
340
then
341
  AC_MSG_CHECKING(if $ICHECK works as expected)
342
  echo "int foo;" > conftest.h
343
  $ICHECK --canonify -o conftest.ic conftest.h 2>/dev/null
344
  if test -f "conftest.ic"
345
  then
346
    AC_MSG_RESULT(yes)
347
  else
348
    AC_MSG_RESULT(no)
349
    ICHECK=no
350
  fi
351
  rm -f conftest.ic conftest.h
352
fi
353
AC_SUBST(ICHECK)
354
355
# Lock for PS
356
AC_PATH_PROG(PS, ps, ps)
357
AC_MSG_CHECKING("how to check if pid exists")
358
PS=$ac_cv_path_PS
359
# Linux style
360
if $PS p $$ 2> /dev/null | grep `echo $0 | sed s/\-//` > /dev/null
361
then
362
  FIND_PROC="$PS p \$\$PID | grep -v grep | grep \$\$MYSQLD > /dev/null"
363
# Solaris
364
elif $PS -fp $$ 2> /dev/null | grep $0 > /dev/null
365
then
366
  FIND_PROC="$PS -p \$\$PID | grep -v grep | grep \$\$MYSQLD > /dev/null"
367
# BSD style
368
elif $PS -uaxww 2> /dev/null | grep $0 > /dev/null
369
then
370
  FIND_PROC="$PS -uaxww | grep -v grep | grep \$\$MYSQLD | grep \" \$\$PID \" > /dev/null"
371
# SysV style
372
elif $PS -ef 2> /dev/null | grep $0 > /dev/null
373
then
374
  FIND_PROC="$PS -ef | grep -v grep | grep \$\$MYSQLD | grep \" \$\$PID \" > /dev/null"
375
# Do anybody use this?
376
elif $PS $$ 2> /dev/null | grep $0 > /dev/null
377
then
378
  FIND_PROC="$PS \$\$PID | grep -v grep | grep \$\$MYSQLD > /dev/null"
379
else
380
  case $SYSTEM_TYPE in
381
    *freebsd*|*dragonfly*)
382
      FIND_PROC="$PS p \$\$PID | grep -v grep | grep \$\$MYSQLD > /dev/null"
383
      ;;
384
    *darwin*)
385
      FIND_PROC="$PS -uaxww | grep -v grep | grep \$\$MYSQLD | grep \" \$\$PID \" > /dev/null"
386
      ;;
387
    *)
388
      AC_MSG_ERROR([Could not find the right ps switches. Which OS is this ?. See the Installation chapter in the Reference Manual.])
389
  esac
390
fi
391
AC_SUBST(FIND_PROC)
392
AC_MSG_RESULT("$FIND_PROC")
393
394
# Check if a pid is valid
395
AC_PATH_PROG(KILL, kill, kill)
396
AC_MSG_CHECKING("for kill switches")
397
if $ac_cv_path_KILL -0 $$
398
then
399
  CHECK_PID="$ac_cv_path_KILL -0 \$\$PID > /dev/null 2> /dev/null"
400
elif kill -s 0 $$
401
then
402
  CHECK_PID="$ac_cv_path_KILL -s 0 \$\$PID > /dev/null 2> /dev/null"
403
else
404
  AC_MSG_WARN([kill -0 to check for pid seems to fail])
405
    CHECK_PID="$ac_cv_path_KILL -s SIGCONT \$\$PID > /dev/null 2> /dev/null"
406
fi
407
AC_SUBST(CHECK_PID)
408
AC_MSG_RESULT("$CHECK_PID")
409
410
# We need an ANSI C compiler
411
AM_PROG_CC_STDC
412
413
# We need an assembler, too
414
AM_PROG_AS
415
CCASFLAGS="$CCASFLAGS $ASFLAGS"
416
417
# Check if we need noexec stack for assembler
418
AC_CHECK_NOEXECSTACK
419
420
if test "$am_cv_prog_cc_stdc" = "no"
421
then
91 by Brian Aker
Main binary now named drizzled
422
  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
423
fi
424
425
28.1.39 by Monty Taylor
Made everything use AS_HELP_STRING (except for charsets, which are dying anyway)
426
AC_ARG_WITH([server-suffix],
427
    [AS_HELP_STRING([--with-server-suffix],
428
      [Append value to the version string.])],
1 by brian
clean slate
429
    [ MYSQL_SERVER_SUFFIX=`echo "$withval" | sed -e  's/^\(...................................\)..*$/\1/'` ],
430
    [ MYSQL_SERVER_SUFFIX= ]
431
    )
432
AC_SUBST(MYSQL_SERVER_SUFFIX)
433
434
# 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)
435
AC_ARG_WITH([named-curses-libs],
436
    [AS_HELP_STRING([--with-named-curses-libs=ARG],
437
            [Use specified curses libraries instead of those
438
		automatically found by configure.])],
1 by brian
clean slate
439
    [ with_named_curses=$withval ],
440
    [ with_named_curses=no ]
441
    )
442
443
# compile with strings functions in assembler
28.1.39 by Monty Taylor
Made everything use AS_HELP_STRING (except for charsets, which are dying anyway)
444
AC_ARG_ENABLE([assembler],
445
    [AS_HELP_STRING([--enable-assembler],
446
	    [Use assembler versions of some string functions if available.])],
1 by brian
clean slate
447
    [ ENABLE_ASSEMBLER=$enableval ],
448
    [ ENABLE_ASSEMBLER=no ]
449
    )
450
451
AC_MSG_CHECKING(if we should use assembler functions)
452
# For now we only support assembler on i386 and sparc systems
453
AM_CONDITIONAL(ASSEMBLER_x86, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "i386" && $AS strings/strings-x86.s -o checkassembler >/dev/null 2>&1 && test -f checkassembler && (rm -f checkassembler; exit 0;))
454
AM_CONDITIONAL(ASSEMBLER_sparc32, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "sparc")
455
AM_CONDITIONAL(ASSEMBLER_sparc64, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "sparcv9")
456
AM_CONDITIONAL(ASSEMBLER, test "$ASSEMBLER_x86_TRUE" = "" -o "$ASSEMBLER_sparc32_TRUE" = "")
457
458
if test "$ASSEMBLER_TRUE" = ""
459
then
460
  AC_MSG_RESULT([yes])
461
else
462
  AC_MSG_RESULT([no])
463
fi
464
465
# Add query profiler
466
AC_MSG_CHECKING(if SHOW PROFILE should be enabled.)
28.1.39 by Monty Taylor
Made everything use AS_HELP_STRING (except for charsets, which are dying anyway)
467
AC_ARG_ENABLE([profiling],
468
    [AS_HELP_STRING([--enable-profiling], 
469
	    [Build a version with query profiling code])],
1 by brian
clean slate
470
    [ ENABLED_PROFILING=$enableval ],
471
    [ ENABLED_PROFILING=no ])
472
473
if test "$ENABLED_PROFILING" = "yes"
474
then
475
  AC_DEFINE([ENABLED_PROFILING], [1],
476
            [If SHOW PROFILE should be enabled])
477
  AC_MSG_RESULT([yes]) 
478
else
479
  AC_MSG_RESULT([no])
480
fi
481
28.1.39 by Monty Taylor
Made everything use AS_HELP_STRING (except for charsets, which are dying anyway)
482
AC_ARG_WITH([tcp-port],
483
    [AS_HELP_STRING([--with-tcp-port=port-number],
91 by Brian Aker
Main binary now named drizzled
484
            [Which port to use for Drizzle services @<:@default=3306@:>@])],
1 by brian
clean slate
485
    [ MYSQL_TCP_PORT=$withval ],
486
    [ MYSQL_TCP_PORT=$MYSQL_TCP_PORT_DEFAULT
487
      # if we actually defaulted (as opposed to the pathological case of
488
      # --with-tcp-port=<MYSQL_TCP_PORT_DEFAULT> which might in theory
489
      # happen if whole batch of servers was built from a script), set
490
      # the default to zero to indicate that; we don't lose information
491
      # that way, because 0 obviously indicates that we can get the
492
      # default value from MYSQL_TCP_PORT. this seems really evil, but
493
      # testing for MYSQL_TCP_PORT==MYSQL_TCP_PORT_DEFAULT would make a
494
      # a port of MYSQL_TCP_PORT_DEFAULT magic even if the builder did not
495
      # intend it to mean "use the default, in fact, look up a good default
496
      # from /etc/services if you can", but really, really meant 3306 when
497
      # they passed in 3306. When they pass in a specific value, let them
498
      # have it; don't second guess user and think we know better, this will
499
      # just make people cross.  this makes the the logic work like this
500
      # (which is complicated enough):
501
      #
502
      # - if a port was set during build, use that as a default.
503
      #
504
      # - otherwise, try to look up a port in /etc/services; if that fails,
505
      #   use MYSQL_TCP_PORT_DEFAULT (at the time of this writing 3306)
506
      #
507
      # - allow the MYSQL_TCP_PORT environment variable to override that.
508
      #
509
      # - allow command-line parameters to override all of the above.
510
      #
511
      # the top-most MYSQL_TCP_PORT_DEFAULT is read from win/configure.js,
512
      # so don't mess with that.
513
      MYSQL_TCP_PORT_DEFAULT=0 ]
514
    )
515
AC_SUBST(MYSQL_TCP_PORT)
516
# We might want to document the assigned port in the manual.
517
AC_SUBST(MYSQL_TCP_PORT_DEFAULT)
518
519
# 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)
520
AC_ARG_WITH([mysqld-user],
521
    [AS_HELP_STRING([--with-mysqld-user=username],
522
            [What user the mysqld daemon shall be run as.
523
		@<:@default=mysql@:>@])],
1 by brian
clean slate
524
    [ MYSQLD_USER=$withval ],
525
    [ MYSQLD_USER=mysql ]
526
    )
527
AC_SUBST(MYSQLD_USER)
528
529
# If we should allow LOAD DATA LOCAL
530
AC_MSG_CHECKING(If we should should enable LOAD DATA LOCAL by default)
531
AC_ARG_ENABLE(local-infile,
532
    [  --enable-local-infile   Enable LOAD DATA LOCAL INFILE (default: disabled)],
533
    [ ENABLED_LOCAL_INFILE=$enableval ],
534
    [ ENABLED_LOCAL_INFILE=no ]
535
    )
536
if test "$ENABLED_LOCAL_INFILE" = "yes"
537
then
538
  AC_MSG_RESULT([yes])
539
  AC_DEFINE([ENABLED_LOCAL_INFILE], [1],
540
            [If LOAD DATA LOCAL INFILE should be enabled by default])
541
else
542
  AC_MSG_RESULT([no])
543
fi
544
545
MYSQL_SYS_LARGEFILE
546
547
# Types that must be checked AFTER large file support is checked
548
AC_TYPE_SIZE_T
549
550
#--------------------------------------------------------------------
551
# Check for system header files
552
#--------------------------------------------------------------------
553
554
AC_HEADER_DIRENT
555
AC_HEADER_STDC
556
AC_HEADER_SYS_WAIT
53.2.2 by Monty Taylor
Updated everything that needs updating to compile with -std=gnu99 -pedantic
557
AC_HEADER_STDBOOL
77.1.22 by Monty Taylor
Removed refs to floatingpoint.h (which we only used for fconvert) and fconvert
558
AC_CHECK_HEADERS(fcntl.h float.h fpu_control.h ieeefp.h)
53.2.29 by Monty Taylor
Cleaned up headers a little more.
559
AC_CHECK_HEADERS(limits.h pwd.h select.h linux/config.h)
560
AC_CHECK_HEADERS(sys/fpu.h utime.h sys/utime.h )
561
AC_CHECK_HEADERS(synch.h sys/mman.h sys/socket.h netinet/in.h arpa/inet.h)
562
AC_CHECK_HEADERS(sys/timeb.h ys/un.h sys/vadvise.h sys/wait.h term.h)
563
AC_CHECK_HEADERS(termio.h termios.h sched.h crypt.h alloca.h)
564
AC_CHECK_HEADERS(sys/ioctl.h malloc.h sys/malloc.h sys/ipc.h sys/shm.h)
565
AC_CHECK_HEADERS(sys/prctl.h sys/resource.h sys/param.h port.h ieeefp.h)
566
AC_CHECK_HEADERS(execinfo.h)
1 by brian
clean slate
567
568
AC_CHECK_HEADERS([xfs/xfs.h])
23 by Brian Aker
Adding back in simple test for libevent
569
#--------------------------------------------------------------------
570
# Check for libevent
571
#--------------------------------------------------------------------
572
573
AC_CHECK_LIB(event, event_loop, [], [AC_MSG_ERROR(could not find libevent)])
1 by brian
clean slate
574
575
#--------------------------------------------------------------------
25 by Brian Aker
Clean up of configure.in
576
# Check for libpthread
577
#--------------------------------------------------------------------
578
579
AC_CHECK_LIB(pthread, pthread_create, [], [AC_MSG_ERROR(could not find libpthread)])
580
581
#--------------------------------------------------------------------
77.1.31 by Monty Taylor
Replaced regex lib with pcre. Reworked mysqltest to use it.
582
# Check for libpcre
583
#--------------------------------------------------------------------
584
585
AC_PATH_PROG(PKG_CONFIG, pkg-config, AC_MSG_ERROR([pkg-config wasn't found.]))
108.1.2 by Monty Taylor
Fixed the PCRE test to actually fail if, in fact, you do not have PCRE.
586
PKG_CHECK_MODULES(PCRE, [libpcrecpp >= 3], [found_pcre="yes"],[
587
  AC_CHECK_LIB(pcrecpp, [DoMatch], [found_pcre="no"])
588
  AC_CHECK_HEADERS(pcrecpp.h)
589
  if test "x$ac_cv_header_prcecpp_h" = "xno" 
590
  then
591
    found_pcre="no"
592
  fi
77.1.31 by Monty Taylor
Replaced regex lib with pcre. Reworked mysqltest to use it.
593
  ])
108.1.2 by Monty Taylor
Fixed the PCRE test to actually fail if, in fact, you do not have PCRE.
594
if test "x$found_pcre" != "xyes"
595
then
596
    AC_MSG_ERROR([Couldn't find pcrecpp.h. Try installing the development package associated with libpcre on your system.])
597
fi
77.1.31 by Monty Taylor
Replaced regex lib with pcre. Reworked mysqltest to use it.
598
AC_SUBST(PCRE_LIBS)
599
AC_SUBST(PCRE_CFLAGS)
600
601
#--------------------------------------------------------------------
1 by brian
clean slate
602
# Check for system libraries. Adds the library to $LIBS
603
# and defines HAVE_LIBM etc
604
#--------------------------------------------------------------------
605
606
AC_CHECK_LIB(m, floor, [], AC_CHECK_LIB(m, __infinity))
607
AC_CHECK_FUNCS(log2)
608
609
AC_CHECK_FUNC(setsockopt, , AC_CHECK_LIB(socket, setsockopt))
610
AC_CHECK_FUNC(yp_get_default_domain, ,
611
  AC_CHECK_LIB(nsl, yp_get_default_domain))
612
AC_CHECK_FUNC(p2open, , AC_CHECK_LIB(gen, p2open))
613
# This may get things to compile even if bind-8 is installed
614
AC_CHECK_FUNC(bind, , AC_CHECK_LIB(bind, bind))
615
# Check if crypt() exists in libc or libcrypt, sets LIBS if needed
616
AC_SEARCH_LIBS(crypt, crypt, AC_DEFINE(HAVE_CRYPT, 1, [crypt]))
617
618
# Check rt for aio_read
619
AC_CHECK_LIB(rt, aio_read)
620
621
# For the sched_yield() function on Solaris
622
AC_CHECK_FUNC(sched_yield, , AC_CHECK_LIB(posix4, sched_yield,
623
[AC_DEFINE(HAVE_SCHED_YIELD) LIBS="$LIBS -lposix4"]))
624
625
if test "$ac_cv_header_termio_h" = "no" -a "$ac_cv_header_termios_h" = "no"
626
then
627
  AC_CHECK_FUNC(gtty, , AC_CHECK_LIB(compat, gtty))
628
fi
629
630
AC_CHECK_TYPES([int8, uint8, int16, uint16, int32, uint32, int64, uint64,
631
                uchar, uint, ulong],[],[], [
632
#include <sys/types.h>
633
])
634
AC_CHECK_TYPES([fp_except], [], [], [
635
#include <sys/types.h>
636
#include <ieeefp.h>
637
])
638
25 by Brian Aker
Clean up of configure.in
639
640
my_save_LIBS="$LIBS"
641
LIBS=""
642
AC_CHECK_LIB(dl,dlopen)
643
LIBDL=$LIBS
644
LIBS="$my_save_LIBS"
645
AC_SUBST(LIBDL)
646
647
my_save_LIBS="$LIBS"
648
LIBS="$LIBS $LIBDL"
649
AC_CHECK_FUNCS(dlopen dlerror)
650
LIBS="$my_save_LIBS"
651
652
AC_CHECK_FUNCS(strtok_r)
1 by brian
clean slate
653
654
# Build optimized or debug version ?
655
# First check for gcc and g++
28.1.33 by Monty Taylor
Added -Wall
656
if test "$ac_cv_c_compiler_gnu" = "yes"
1 by brian
clean slate
657
then
658
  DEBUG_CFLAGS="-g"
659
  DEBUG_OPTIMIZE_CC="-O"
660
  OPTIMIZE_CFLAGS="$MAX_C_OPTIMIZE"
661
else
662
  DEBUG_CFLAGS="-g"
663
  DEBUG_OPTIMIZE_CC=""
664
  OPTIMIZE_CFLAGS="-O"
665
fi
666
if test "$ac_cv_prog_cxx_g" = "yes"
667
then
668
  DEBUG_CXXFLAGS="-g"
669
  DEBUG_OPTIMIZE_CXX="-O"
670
  OPTIMIZE_CXXFLAGS="$MAX_CXX_OPTIMIZE"
671
else
672
  DEBUG_CXXFLAGS="-g"
673
  DEBUG_OPTIMIZE_CXX=""
674
  OPTIMIZE_CXXFLAGS="-O"
675
fi
676
677
# If the user specified CFLAGS, we won't add any optimizations
678
if test -n "$SAVE_CFLAGS"
679
then
680
  OPTIMIZE_CFLAGS=""
681
  DEBUG_OPTIMIZE_CC=""
682
fi
683
# Ditto for CXXFLAGS
684
if test -n "$SAVE_CXXFLAGS"
685
then
686
  OPTIMIZE_CXXFLAGS=""
687
  DEBUG_OPTIMIZE_CXX=""
688
fi
689
28.1.39 by Monty Taylor
Made everything use AS_HELP_STRING (except for charsets, which are dying anyway)
690
AC_ARG_WITH([debug],
691
    [AS_HELP_STRING([--with-debug],
692
            [Add debug code (yes|no|full) @<:@default=no@:>@ 
693
	    Full adds memory checked, very slow.])],
1 by brian
clean slate
694
    [with_debug=$withval],
695
    [with_debug=no])
53.2.24 by Monty Taylor
Added an automake conditional to not build the dbug dir, since I don't want to keep seeing errors for it while cleaning up other parts of the tree.
696
AM_CONDITIONAL(BUILD_DBUG, test "$with_debug" != "no")
1 by brian
clean slate
697
if test "$with_debug" = "yes"
698
then
699
  # Medium debug.
700
  AC_DEFINE([DBUG_ON], [1], [Use libdbug])
7 by Brian Aker
Further cleanup on pthreads.
701
  CFLAGS="$DEBUG_CFLAGS $DEBUG_OPTIMIZE_CC $CFLAGS"
702
  CXXFLAGS="$DEBUG_CXXFLAGS $DEBUG_OPTIMIZE_CXX $CXXFLAGS"
53.2.24 by Monty Taylor
Added an automake conditional to not build the dbug dir, since I don't want to keep seeing errors for it while cleaning up other parts of the tree.
703
  
1 by brian
clean slate
704
elif test "$with_debug" = "full"
705
then
706
  # Full debug. Very slow in some cases
707
  AC_DEFINE([DBUG_ON], [1], [Use libdbug])
7 by Brian Aker
Further cleanup on pthreads.
708
  CFLAGS="$DEBUG_CFLAGS $CFLAGS"
709
  CXXFLAGS="$DEBUG_CXXFLAGS $CXXFLAGS"
1 by brian
clean slate
710
else
711
  # Optimized version. No debug
28.1.39 by Monty Taylor
Made everything use AS_HELP_STRING (except for charsets, which are dying anyway)
712
  AC_DEFINE([DBUG_OFF], [1], [Dont use libdbug])
1 by brian
clean slate
713
  CFLAGS="$OPTIMIZE_CFLAGS $CFLAGS"
714
  CXXFLAGS="$OPTIMIZE_CXXFLAGS $CXXFLAGS"
715
fi
716
717
# If we should allow error injection tests
28.1.39 by Monty Taylor
Made everything use AS_HELP_STRING (except for charsets, which are dying anyway)
718
AC_ARG_WITH([error-inject],
719
    [AS_HELP_STRING([--with-error-inject],
91 by Brian Aker
Main binary now named drizzled
720
	    [Enable error injection in Drizzle Server @<:@default=off@:>@])],
1 by brian
clean slate
721
    [ with_error_inject=$withval ],
722
    [ with_error_inject=no ])
723
724
if test $with_debug != "no"
725
then
726
  if test "$with_error_inject" = "yes"
727
  then
728
    AC_DEFINE([ERROR_INJECT_SUPPORT], [1],
91 by Brian Aker
Main binary now named drizzled
729
              [Enable error injection in Drizzle Server])
1 by brian
clean slate
730
  fi
731
fi
732
733
AC_ARG_WITH([fast-mutexes],
28.1.39 by Monty Taylor
Made everything use AS_HELP_STRING (except for charsets, which are dying anyway)
734
    [AS_HELP_STRING([--with-fast-mutexes],
735
	    [Compile with fast mutexes  @<:@default=off@:>@])],
736
    [with_fast_mutexes=$withval],
737
    [with_fast_mutexes=no])
1 by brian
clean slate
738
739
if test "$with_fast_mutexes" != "no"
740
then
741
  if test "$with_debug" != "no"
742
  then
743
    AC_MSG_WARN(['--with-fast-mutexes' ignored when '--with-debug' is given])
744
  else
745
    AC_DEFINE([MY_PTHREAD_FASTMUTEX], [1], 
746
	      [Define to 1 if you want to use fast mutexes])
747
  fi
748
fi
749
28.1.39 by Monty Taylor
Made everything use AS_HELP_STRING (except for charsets, which are dying anyway)
750
AC_ARG_WITH([comment],
751
    [AS_HELP_STRING([--with-comment],
752
            [Comment about compilation environment. @<:@default=off@:>@])],
1 by brian
clean slate
753
    [with_comment=$withval],
754
    [with_comment=no])
755
if test "$with_comment" != "no"
756
then
757
  COMPILATION_COMMENT=$with_comment
758
else
759
  COMPILATION_COMMENT="Source distribution"
760
fi
761
AC_SUBST(COMPILATION_COMMENT)
762
763
AC_MSG_CHECKING("need of special linking flags")
28.1.33 by Monty Taylor
Added -Wall
764
if test "$TARGET_LINUX" = "true" -a "$ac_cv_c_compiler_gnu" = "yes" -a "$all_is_static" != "yes"
1 by brian
clean slate
765
then
766
  LDFLAGS="$LDFLAGS -rdynamic"
767
  AC_MSG_RESULT("-rdynamic")
768
else
769
  case "$SYSTEM_TYPE$with_mysqld_ldflags " in
770
  *freebsd*"-all-static "*|*dragonfly*"-all-static "*)
771
    AC_MSG_RESULT("none")
772
    ;;
773
  *freebsd*|*dragonfly*)
774
    MYSQLD_EXTRA_LDFLAGS="$MYSQLD_EXTRA_LDFLAGS -export-dynamic"
775
    AC_MSG_RESULT("-export-dynamic")
776
    ;;
777
  *)
778
    AC_MSG_RESULT("none")
779
    ;;
780
  esac
781
fi
782
783
dnl Checks for typedefs, structures, and compiler characteristics.
784
AC_C_CONST
785
AC_C_INLINE
786
AC_TYPE_OFF_T
787
AC_HEADER_TIME
788
AC_STRUCT_TM
789
MYSQL_NEEDS_MYSYS_NEW
790
# AC_CHECK_SIZEOF return 0 when it does not find the size of a
791
# type. We want a error instead.
792
AC_CHECK_SIZEOF(char, 1)
793
if test "$ac_cv_sizeof_char" -eq 0
794
then
77.1.28 by Monty Taylor
Removed a crapload of files I hate.
795
  AC_MSG_ERROR([No size for char type.])
1 by brian
clean slate
796
fi
797
AC_CHECK_SIZEOF(char*, 4)
798
AC_CHECK_SIZEOF(short, 2)
799
AC_CHECK_SIZEOF(int, 4)
800
if test "$ac_cv_sizeof_int" -eq 0
801
then
802
  AC_MSG_ERROR("No size for int type.")
803
fi
804
AC_CHECK_SIZEOF(long, 4)
805
if test "$ac_cv_sizeof_long" -eq 0
806
then
807
  AC_MSG_ERROR("No size for long type.")
808
fi
809
AC_CHECK_SIZEOF(long long, 8)
810
if test "$ac_cv_sizeof_long_long" -eq 0
811
then
91 by Brian Aker
Main binary now named drizzled
812
  AC_MSG_ERROR("Drizzle needs a long long type.")
1 by brian
clean slate
813
fi
814
# off_t is not a builtin type
815
AC_CHECK_SIZEOF(off_t, 4)
816
if test "$ac_cv_sizeof_off_t" -eq 0
817
then
91 by Brian Aker
Main binary now named drizzled
818
  AC_MSG_ERROR("Drizzle needs a off_t type.")
1 by brian
clean slate
819
fi
820
821
dnl
822
dnl check if time_t is unsigned
823
dnl
824
825
MYSQL_CHECK_TIME_T
826
827
828
# do we need #pragma interface/#pragma implementation ?
829
# yes if it's gcc 2.x, and not icc pretending to be gcc, and not cygwin
830
AC_MSG_CHECKING(the need for @%:@pragma interface/implementation)
831
# instead of trying to match SYSTEM_TYPE and CC_VERSION (that doesn't
832
# follow any standard), we'll use well-defined preprocessor macros:
28.1.33 by Monty Taylor
Added -Wall
833
AC_PREPROC_IFELSE([AC_LANG_SOURCE([[
1 by brian
clean slate
834
#if !defined(__CYGWIN__) && !defined(__INTEL_COMPILER) && defined(__GNUC__) && (__GNUC__ < 3)
835
#error USE_PRAGMA_IMPLEMENTATION
836
#endif
28.1.33 by Monty Taylor
Added -Wall
837
]])],[AC_MSG_RESULT(no) ],[AC_MSG_RESULT(yes) ; CXXFLAGS="$CXXFLAGS -DUSE_PRAGMA_IMPLEMENTATION"])
1 by brian
clean slate
838
839
# This always gives a warning. Ignore it unless you are cross compiling
840
AC_C_BIGENDIAN
841
#---START: Used in for client configure
842
# Check base type of last arg to accept
843
MYSQL_TYPE_ACCEPT
844
#---END:
845
# Figure out what type of struct rlimit to use with setrlimit
846
MYSQL_TYPE_STRUCT_RLIMIT
847
# Find where the stack goes
848
MYSQL_STACK_DIRECTION
849
# We want to skip alloca on irix unconditionally. It may work on some version..
850
MYSQL_FUNC_ALLOCA
851
# Do struct timespec have members tv_sec or ts_sec
852
MYSQL_TIMESPEC_TS
853
# Do we have the tzname variable
854
MYSQL_TZNAME
855
# Do the c++ compiler have a bool type
856
MYSQL_CXX_BOOL
857
AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
858
AC_CHECK_TYPES([size_t], [], [], [#include <stdio.h>])
859
AC_CHECK_TYPES([u_int32_t])
860
861
MYSQL_PTHREAD_YIELD
862
863
######################################################################
864
# For readline/libedit (We simply move the mimimum amount of stuff from
865
# the readline/libedit configure.in here)
866
867
dnl Checks for header files.
868
AC_CHECK_HEADERS(malloc.h sys/cdefs.h)
869
870
dnl Checks for library functions.
871
AC_FUNC_ALLOCA
872
AC_PROG_GCC_TRADITIONAL
873
AC_TYPE_SIGNAL
874
AC_CHECK_FUNCS(re_comp regcomp strdup)
875
876
dnl Sun compilers have their own vis.h that is about something
877
dnl totally different. So, not to change the libedit source, we
878
dnl do some additional checks before we define HAVE_VIS_H.
879
AC_CHECK_HEADER(vis.h,
880
  [AC_CHECK_FUNC(strvis,
881
    [AC_DEFINE([HAVE_VIS_H], [1],[Found vis.h and the strvis() function])])])
882
883
AC_CHECK_FUNCS(strlcat strlcpy)
884
AC_CHECK_FUNCS(issetugid)
885
AC_CHECK_FUNCS(getline flockfile)
886
887
# from old readline settting:
888
889
MAKE_SHELL=/bin/sh
890
AC_SUBST(MAKE_SHELL)
891
892
# Already-done: stdlib.h string.h unistd.h termios.h
893
AC_CHECK_HEADERS(varargs.h stdarg.h dirent.h locale.h ndir.h sys/dir.h \
894
 sys/file.h sys/ndir.h sys/ptem.h sys/pte.h sys/select.h sys/stream.h \
895
 sys/mman.h curses.h termcap.h termio.h termbits.h asm/termbits.h grp.h \
896
paths.h semaphore.h)
897
898
# Already-done: strcasecmp
899
AC_CHECK_FUNCS(lstat putenv select setenv setlocale strcoll tcgetattr)
900
28.1.33 by Monty Taylor
Added -Wall
901
AC_HEADER_STAT
1 by brian
clean slate
902
MYSQL_SIGNAL_CHECK
903
MYSQL_CHECK_GETPW_FUNCS
904
MYSQL_HAVE_TIOCGWINSZ
905
MYSQL_HAVE_FIONREAD
906
MYSQL_HAVE_TIOCSTAT
907
MYSQL_STRUCT_DIRENT_D_INO
908
MYSQL_STRUCT_DIRENT_D_NAMLEN
909
MYSQL_TYPE_SIGHANDLER
910
MYSQL_CHECK_MULTIBYTE
911
if test "$with_named_curses" = "no"
912
then
913
  MYSQL_CHECK_LIB_TERMCAP
914
else
915
  TERMCAP_LIB="$with_named_curses"
916
fi
917
AC_SUBST(TERMCAP_LIB)
918
919
# Check if the termcap function 'tgoto' is already declared in
920
# system header files or if it need to be declared locally
921
AC_CHECK_DECLS(tgoto,,,[
922
#ifdef HAVE_CURSES_H
923
# include <curses.h>
924
#elif HAVE_NCURSES_H
925
# include <ncurses.h>
926
#endif
927
#ifdef HAVE_TERM_H
928
# include <term.h>
929
#endif
930
])
931
932
# End of readline/libedit stuff
933
#########################################################################
934
935
dnl Checks for library functions.
936
937
#
938
# The following code disables intrinsic function support while we test for
939
# library functions.  This is to avoid configure problems with Intel ecc
940
# compiler
941
942
ORG_CFLAGS="$CFLAGS"
943
if test "$GCC" != "yes"; then
944
  AC_SYS_COMPILER_FLAG(-nolib_inline,nolib_inline,CFLAGS,[],[])
945
fi
946
947
#AC_FUNC_MMAP
948
AC_TYPE_SIGNAL
949
MYSQL_TYPE_QSORT
950
AC_FUNC_UTIME_NULL
951
AC_FUNC_VPRINTF
952
77.1.24 by Monty Taylor
Removed non-fcntl code and made it a fatal configure error if it's not there.
953
AC_CHECK_FUNCS(fcntl)
954
if test "x$ac_cv_func_fcntl" != "xyes"
955
then
956
  AC_MSG_ERROR("Drizzle requires fcntl.")
957
fi
958
53.2.16 by Monty Taylor
Removed my_alarm. Made my_lock only do the non-alarm version. Moved my_lock to MyISAM where it belongs.
959
AC_CHECK_FUNCS(bcmp bfill bmove bsearch bzero \
77.1.24 by Monty Taylor
Removed non-fcntl code and made it a fatal configure error if it's not there.
960
  cuserid fchmod \
77.1.22 by Monty Taylor
Removed refs to floatingpoint.h (which we only used for fconvert) and fconvert
961
  fdatasync finite fpresetsticky fpsetmask fsync ftruncate \
1 by brian
clean slate
962
  getcwd getpass getpassphrase getpwnam \
963
  getpwuid getrlimit getrusage getwd index initgroups isnan \
964
  localtime_r gethrtime gmtime_r \
965
  locking longjmp lrand48 madvise mallinfo memcpy memmove \
966
  mkstemp mlockall perror poll pread pthread_attr_create mmap mmap64 getpagesize \
967
  pthread_attr_getstacksize pthread_attr_setprio pthread_attr_setschedparam \
968
  pthread_attr_setstacksize pthread_condattr_create pthread_getsequence_np \
969
  pthread_key_delete pthread_rwlock_rdlock pthread_setprio \
970
  pthread_setprio_np pthread_setschedparam pthread_sigmask readlink \
971
  realpath rename rint rwlock_init setupterm \
972
  shmget shmat shmdt shmctl sigaction sigemptyset sigaddset \
973
  sighold sigset sigthreadmask port_create sleep \
974
  snprintf socket stpcpy strcasecmp strerror strsignal strnlen strpbrk strstr \
6 by Brian Aker
Second pass on pthread cleanup
975
  strtol strtoll strtoul strtoull tell tempnam vidattr \
1 by brian
clean slate
976
  posix_fallocate backtrace backtrace_symbols backtrace_symbols_fd)
977
28.1.33 by Monty Taylor
Added -Wall
978
# Check that isinf() is available in math.h and can be used in both C and C++
1 by brian
clean slate
979
# code
28.1.33 by Monty Taylor
Added -Wall
980
AC_MSG_CHECKING(for isinf in math.h)
981
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <math.h>]], [[
982
    float f = 0.0; 
983
    int r = isinf(f); 
984
    return r;
985
  ]])],[
1 by brian
clean slate
986
    AC_MSG_RESULT(yes)
28.1.33 by Monty Taylor
Added -Wall
987
    AC_MSG_CHECKING(whether isinf() can be used in C++ code)
988
    AC_LANG_PUSH([C++])
989
    AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <math.h>]], [[
990
      float f = 0.0;
991
      int r = isinf(f);
992
      return r;
993
    ]])],[
994
      AC_MSG_RESULT(yes)
995
      AC_DEFINE(HAVE_ISINF, [1], [isinf() macro or function])
996
    ],[
997
      AC_MSG_RESULT(no)
998
    ])
999
    AC_LANG_POP([])
1000
  ],[
1001
  AC_MSG_RESULT(no)])
1002
1003
1 by brian
clean slate
1004
CFLAGS="$ORG_CFLAGS"
1005
1006
# Sanity check: We chould not have any fseeko symbol unless
1007
# large_file_support=yes
1008
AC_CHECK_FUNC(fseeko,
1009
[if test "$large_file_support" = no -a "$TARGET_LINUX" = "true";
1010
then
1011
  AC_MSG_ERROR("Found fseeko symbol but large_file_support is not enabled!")
1012
fi]
1013
)
1014
1015
# Check definition of pthread_getspecific
1016
AC_CACHE_CHECK("args to pthread_getspecific", mysql_cv_getspecific_args,
28.1.33 by Monty Taylor
Added -Wall
1017
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#if !defined(_REENTRANT)
1 by brian
clean slate
1018
#define _REENTRANT
1019
#endif
1020
#define _POSIX_PTHREAD_SEMANTICS 
28.1.33 by Monty Taylor
Added -Wall
1021
#include <pthread.h> ]], [[ void *pthread_getspecific(pthread_key_t key);
1022
pthread_getspecific((pthread_key_t) NULL); ]])],[mysql_cv_getspecific_args=POSIX],[mysql_cv_getspecific_args=other]))
1 by brian
clean slate
1023
  if test "$mysql_cv_getspecific_args" = "other"
1024
  then
1025
    AC_DEFINE([HAVE_NONPOSIX_PTHREAD_GETSPECIFIC], [1],
1026
              [For some non posix threads])
1027
  fi
1028
1029
  # Check definition of pthread_mutex_init
1030
  AC_CACHE_CHECK("args to pthread_mutex_init", mysql_cv_mutex_init_args,
28.1.33 by Monty Taylor
Added -Wall
1031
  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#define _REENTRANT
1 by brian
clean slate
1032
#define _POSIX_PTHREAD_SEMANTICS 
28.1.33 by Monty Taylor
Added -Wall
1033
#include <pthread.h> ]], [[ 
1 by brian
clean slate
1034
  pthread_mutexattr_t attr;
1035
  pthread_mutex_t mp;
28.1.33 by Monty Taylor
Added -Wall
1036
  pthread_mutex_init(&mp,&attr); ]])],[mysql_cv_mutex_init_args=POSIX],[mysql_cv_mutex_init_args=other]))
1 by brian
clean slate
1037
  if test "$mysql_cv_mutex_init_args" = "other"
1038
  then
1039
    AC_DEFINE([HAVE_NONPOSIX_PTHREAD_MUTEX_INIT], [1],
1040
              [For some non posix threads])
1041
  fi
1042
#---END:
1043
1044
#---START: Used in for client configure
1045
# Check definition of readdir_r
1046
AC_CACHE_CHECK("args to readdir_r", mysql_cv_readdir_r,
28.1.33 by Monty Taylor
Added -Wall
1047
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define _REENTRANT
1 by brian
clean slate
1048
#define _POSIX_PTHREAD_SEMANTICS 
1049
#include <pthread.h>
28.1.33 by Monty Taylor
Added -Wall
1050
#include <dirent.h>]], [[ int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);
1051
readdir_r((DIR *) NULL, (struct dirent *) NULL, (struct dirent **) NULL); ]])],[mysql_cv_readdir_r=POSIX],[mysql_cv_readdir_r=other]))
1 by brian
clean slate
1052
if test "$mysql_cv_readdir_r" = "POSIX"
1053
then
1054
  AC_DEFINE([HAVE_READDIR_R], [1], [POSIX readdir_r])
1055
fi
1056
1057
# Check definition of posix sigwait()
1058
AC_CACHE_CHECK("style of sigwait", mysql_cv_sigwait,
28.1.33 by Monty Taylor
Added -Wall
1059
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define _REENTRANT
1 by brian
clean slate
1060
#define _POSIX_PTHREAD_SEMANTICS 
1061
#include <pthread.h>
28.1.33 by Monty Taylor
Added -Wall
1062
#include <signal.h>]], [[#ifndef _AIX
1 by brian
clean slate
1063
sigset_t set;
1064
int sig;
1065
sigwait(&set,&sig);
28.1.33 by Monty Taylor
Added -Wall
1066
#endif]])],[mysql_cv_sigwait=POSIX],[mysql_cv_sigwait=other]))
1 by brian
clean slate
1067
if test "$mysql_cv_sigwait" = "POSIX"
1068
then
1069
  AC_DEFINE([HAVE_SIGWAIT], [1], [POSIX sigwait])
1070
fi
1071
1072
if test "$mysql_cv_sigwait" != "POSIX"
1073
then
1074
unset mysql_cv_sigwait
1075
# Check definition of posix sigwait()
1076
AC_CACHE_CHECK("style of sigwait", mysql_cv_sigwait,
28.1.33 by Monty Taylor
Added -Wall
1077
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define _REENTRANT
1 by brian
clean slate
1078
#define _POSIX_PTHREAD_SEMANTICS 
1079
#include <pthread.h>
28.1.33 by Monty Taylor
Added -Wall
1080
#include <signal.h>]], [[sigset_t set;
1 by brian
clean slate
1081
int sig;
28.1.33 by Monty Taylor
Added -Wall
1082
sigwait(&set);]])],[mysql_cv_sigwait=NONPOSIX],[mysql_cv_sigwait=other]))
1 by brian
clean slate
1083
if test "$mysql_cv_sigwait" = "NONPOSIX"
1084
then
1085
  AC_DEFINE([HAVE_NONPOSIX_SIGWAIT], [1], [sigwait with one argument])
1086
fi
1087
fi
1088
#---END:
1089
1090
# Check if pthread_attr_setscope() exists
1091
AC_CACHE_CHECK("for pthread_attr_setscope", mysql_cv_pthread_attr_setscope,
28.1.33 by Monty Taylor
Added -Wall
1092
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define _REENTRANT
1 by brian
clean slate
1093
#define _POSIX_PTHREAD_SEMANTICS 
28.1.33 by Monty Taylor
Added -Wall
1094
#include <pthread.h>]], [[pthread_attr_t thr_attr;
1095
pthread_attr_setscope(&thr_attr,0);]])],[mysql_cv_pthread_attr_setscope=yes],[mysql_cv_pthread_attr_setscope=no]))
1 by brian
clean slate
1096
if test "$mysql_cv_pthread_attr_setscope" = "yes"
1097
then
1098
  AC_DEFINE([HAVE_PTHREAD_ATTR_SETSCOPE], [1], [pthread_attr_setscope])
1099
fi
1100
1101
# Check for bad includes
1102
AC_MSG_CHECKING("can netinet files be included")
28.1.33 by Monty Taylor
Added -Wall
1103
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
1 by brian
clean slate
1104
#include <sys/socket.h>
1105
#include <netinet/in_systm.h>
1106
#include <netinet/in.h>
1107
#include <netinet/ip.h>
28.1.33 by Monty Taylor
Added -Wall
1108
#include <netinet/tcp.h>]], [[ printf("1\n"); ]])],[netinet_inc=yes],[netinet_inc=no])
1 by brian
clean slate
1109
if test "$netinet_inc" = "no"
1110
then
1111
  AC_DEFINE([HAVE_BROKEN_NETINET_INCLUDES], [1], [Can netinet be included])
1112
fi
1113
AC_MSG_RESULT("$netinet_inc")
1114
28.1.33 by Monty Taylor
Added -Wall
1115
AC_LANG_PUSH([C++])
1 by brian
clean slate
1116
AC_CHECK_HEADERS(cxxabi.h)
1117
AC_CACHE_CHECK([checking for abi::__cxa_demangle], mysql_cv_cxa_demangle,
28.1.33 by Monty Taylor
Added -Wall
1118
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <cxxabi.h>]], [[
1 by brian
clean slate
1119
  char *foo= 0; int bar= 0;
1120
  foo= abi::__cxa_demangle(foo, foo, 0, &bar);
28.1.33 by Monty Taylor
Added -Wall
1121
]])],[mysql_cv_cxa_demangle=yes],[mysql_cv_cxa_demangle=no])])
1122
AC_LANG_POP([])
1 by brian
clean slate
1123
1124
if test "x$mysql_cv_cxa_demangle" = xyes; then
1125
  AC_DEFINE(HAVE_ABI_CXA_DEMANGLE, 1,
1126
            [Define to 1 if you have the `abi::__cxa_demangle' function.])
1127
fi
1128
1129
#--------------------------------------------------------------------
1130
# Check for requested features
1131
#--------------------------------------------------------------------
1132
1133
MYSQL_CHECK_BIG_TABLES
1134
MYSQL_CHECK_MAX_INDEXES
1135
MYSQL_CHECK_VIO
1136
1137
#--------------------------------------------------------------------
1138
# Declare our plugin modules
1139
# Has to be done late, as the plugin may need to check for existence of
1140
# functions tested above
1141
#--------------------------------------------------------------------
1142
1143
MYSQL_CONFIGURE_PLUGINS([none])
1144
1145
AC_SUBST(CLIENT_LIBS)
1146
1147
AC_SUBST(mysql_plugin_dirs)
1148
AC_SUBST(mysql_plugin_libs)
1149
AC_SUBST(mysql_plugin_defs)
1150
53.2.1 by Monty Taylor
Added --disable-pedantic-warnings and --enable-fail.
1151
AC_ARG_ENABLE([pedantic-warnings],
1152
    [AS_HELP_STRING([--disable-pedantic-warnings],
1153
       [Toggle pedanticness @<:@default=on@:>@])],
1154
    [ac_warn_pedantic="$enableval"],
1155
    [ac_warn_pedantic="yes"])
1156
1157
AC_ARG_ENABLE([fail],
1158
    [AS_HELP_STRING([--enable-fail],
1159
       [Turn warnings into failures @<:@default=off@:>@])],
1160
    [ac_warn_fail="$enableval"],
1161
    [ac_warn_fail="no"])
1162
53.2.6 by Monty Taylor
Turned unreachable code warnings into a configure option.
1163
AC_ARG_ENABLE([unreachable],
1164
    [AS_HELP_STRING([--enable-unreachable],
1165
       [Enable warnings about unreachable code @<:@default=off@:>@])],
1166
    [ac_warn_unreachable="$enableval"],
1167
    [ac_warn_unreachable="no"])
1168
53.2.2 by Monty Taylor
Updated everything that needs updating to compile with -std=gnu99 -pedantic
1169
53.2.1 by Monty Taylor
Added --disable-pedantic-warnings and --enable-fail.
1170
if test "$GCC" = "yes"
1171
then
53.2.2 by Monty Taylor
Updated everything that needs updating to compile with -std=gnu99 -pedantic
1172
53.2.1 by Monty Taylor
Added --disable-pedantic-warnings and --enable-fail.
1173
  GCC_WARNINGS="-W -Wall"
53.2.2 by Monty Taylor
Updated everything that needs updating to compile with -std=gnu99 -pedantic
1174
  GXX_WARNINGS="${GCC_WARNINGS}"
53.2.1 by Monty Taylor
Added --disable-pedantic-warnings and --enable-fail.
1175
1176
1177
  if test "$ac_warn_pedantic" = "yes"
1178
  then
53.2.4 by Monty Taylor
Changes so that client/ builds cleanly with no warnings.
1179
    GCC_WARNINGS="${GCC_WARNINGS}  -std=gnu99 -pedantic -Wundef -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls  "
77.1.25 by Monty Taylor
Merged from trunk.
1180
    GXX_WARNINGS="${GXX_WARNINGS}  -std=gnu++98 -pedantic -Wundef -Wredundant-decls -Wno-long-long "
53.2.1 by Monty Taylor
Added --disable-pedantic-warnings and --enable-fail.
1181
  fi
1182
53.2.6 by Monty Taylor
Turned unreachable code warnings into a configure option.
1183
  if test "$ac_warn_unreachable" = "yes"
1184
  then
1185
    GCC_WARNINGS="${GCC_WARNINGS} -Wunreachable-code"
1186
    GXX_WARNINGS="${GXX_WARNINGS} -Wunreachable-code"
1187
  fi
1188
53.2.1 by Monty Taylor
Added --disable-pedantic-warnings and --enable-fail.
1189
  if test "$ac_warn_fail" = "yes"
1190
  then
1191
    GCC_WARNINGS="${GCC_WARNINGS} -Werror"
53.2.2 by Monty Taylor
Updated everything that needs updating to compile with -std=gnu99 -pedantic
1192
    GXX_WARNINGS="${GXX_WARNINGS} -Werror"
53.2.1 by Monty Taylor
Added --disable-pedantic-warnings and --enable-fail.
1193
  fi
1194
53.2.2 by Monty Taylor
Updated everything that needs updating to compile with -std=gnu99 -pedantic
1195
    CXXFLAGS="$CXXFLAGS ${GXX_WARNINGS}"
53.2.1 by Monty Taylor
Added --disable-pedantic-warnings and --enable-fail.
1196
    CFLAGS="$CFLAGS ${GCC_WARNINGS} "
1197
fi
1198
1 by brian
clean slate
1199
# Some usefull subst
1200
AC_SUBST(CC)
1201
AC_SUBST(GXX)
1202
1203
# Set configuration options for make_binary_distribution
1204
case $SYSTEM_TYPE in
1205
  *netware*)
1206
    MAKE_BINARY_DISTRIBUTION_OPTIONS="$MAKE_BINARY_DISTRIBUTION_OPTIONS --no-strip"
1207
    ;;
1208
  *)
1209
    : # no change for other platforms yet
1210
    ;;
1211
esac
1212
AC_SUBST(MAKE_BINARY_DISTRIBUTION_OPTIONS)
1213
28.1.2 by Monty Taylor
First stab at back porting libtool convenience lib patch from telco-6.2
1214
AC_CONFIG_FILES(Makefile extra/Makefile mysys/Makefile mysys/tests/Makefile dnl
77.1.31 by Monty Taylor
Replaced regex lib with pcre. Reworked mysqltest to use it.
1215
 strings/Makefile strings/tests/Makefile storage/Makefile dnl
13 by brian
Incomming patch to clean up build.
1216
 vio/Makefile dnl
77.1.38 by Monty Taylor
Renamed more stuff to drizzle.
1217
 libdrizzle/Makefile client/Makefile dnl
1 by brian
clean slate
1218
 sql/Makefile sql/share/Makefile dnl
1219
 sql/sql_builtin.cc sql-common/Makefile dnl
77.1.28 by Monty Taylor
Removed a crapload of files I hate.
1220
 dbug/Makefile include/Makefile dnl
28.1.31 by Monty Taylor
Deleted tons of pointless garbage from scripts.
1221
 support-files/Makefile dnl
77.1.47 by Monty Taylor
Moved test to tests...
1222
 tests/Makefile tests/install_test_db dnl
77.1.39 by Monty Taylor
More mysql->drizzle renaming.
1223
 include/drizzle_version.h plugin/Makefile dnl
77.1.38 by Monty Taylor
Renamed more stuff to drizzle.
1224
 sql/drizzled_safe support-files/libdrizzle.pc dnl
1225
 support-files/drizzle.server support-files/drizzle-log-rotate)
1 by brian
clean slate
1226
1227
AC_CONFIG_COMMANDS([default], , test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h)
1228
1229
# Ensure that table handlers gets all modifications to CFLAGS/CXXFLAGS
1230
AC_CONFIG_COMMANDS_POST(ac_configure_args="$ac_configure_args CFLAGS='$CFLAGS' CXXFLAGS='$CXXFLAGS'")
1231
1232
AC_OUTPUT