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