~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to configure.ac

Removed/replaced DBUG symbols and TRUE/FALSE

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
dnl -*- bash -*-
 
1
dnl -*- ksh -*-
2
2
dnl Process this file with autoconf to produce a configure script.
3
3
 
4
 
dnl  Copyright (C) 2009 Sun Microsystems
5
 
dnl
6
 
dnl  This program is free software; you can redistribute it and/or modify
7
 
dnl  it under the terms of the GNU General Public License as published by
8
 
dnl  the Free Software Foundation; version 2 of the License.
9
 
dnl
10
 
dnl  This program is distributed in the hope that it will be useful,
11
 
dnl  but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 
dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 
dnl  GNU General Public License for more details.
14
 
dnl
15
 
dnl  You should have received a copy of the GNU General Public License
16
 
dnl  along with this program; if not, write to the Free Software
17
 
dnl  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
18
 
 
19
 
 
20
 
AC_PREREQ(2.59)dnl              Minimum Autoconf version required.
21
 
dnl Version from the AC_INIT call below is overridden later
22
 
dnl So don't update it here
23
 
AC_INIT([drizzle7],[7],[http://bugs.launchpad.net/drizzle])
24
 
AC_CONFIG_SRCDIR([drizzled/drizzled.cc])
25
 
AC_CONFIG_AUX_DIR([config])
26
 
 
27
 
PANDORA_CANONICAL_TARGET(less-warnings, warnings-always-on, require-cxx, force-gcc42, version-from-vc, skip-visibility)
28
 
 
29
 
LIBDRIZZLE_LIBRARY_VERSION=1:0:0
30
 
#                          | | |
31
 
#                   +------+ | +---+
32
 
#                   |        |     |
33
 
#                current:revision:age
34
 
#                   |        |     |
35
 
#                   |        |     +- increment if interfaces have been added
36
 
#                   |        |        set to zero if interfaces have been
37
 
#                   |        |        removed or changed
38
 
#                   |        +- increment if source code has changed
39
 
#                   |           set to zero if current is incremented
40
 
#                   +- increment if interfaces have been added, removed or
41
 
#                      changed
42
 
AC_SUBST(LIBDRIZZLE_LIBRARY_VERSION)
43
 
 
44
 
# libdrizzle versioning when linked with GNU ld.
45
 
AS_IF([test "$lt_cv_prog_gnu_ld" = "yes"],[
46
 
  LD_VERSION_SCRIPT="-Wl,--version-script=\$(top_srcdir)/config/drizzle.ver"
47
 
  ])
 
4
AC_PREREQ(2.61)dnl              Minimum Autoconf version required.
 
5
 
 
6
AC_INIT
 
7
AC_CONFIG_SRCDIR([server/drizzled.cc])
 
8
AC_CONFIG_AUX_DIR(config)
 
9
AC_CONFIG_HEADERS([include/config.h:config.h.in])
 
10
AC_CANONICAL_TARGET
 
11
AM_INIT_AUTOMAKE(drizzle, 7.0.0, no-define)
 
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 server/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.
 
79
AC_ARG_WITH([system-type],
 
80
    [AS_HELP_STRING([--with-system-type],
 
81
       [Set the system type, like "sun-solaris10"])],
 
82
    [SYSTEM_TYPE="$withval"],
 
83
    [SYSTEM_TYPE="$host_vendor-$host_os"])
 
84
AC_ARG_WITH([machine-type],
 
85
    [AS_HELP_STRING([--with-machine-type],
 
86
       [Set the machine type, like "powerpc"])],
 
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
 
 
182
if test "$ac_cv_c_compiler_gnu" = "yes"
 
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
 
 
255
 
 
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
 
266
  CXXFLAGS="$CXXFLAGS ${GCC_WARNINGS} -fno-implicit-templates -fno-exceptions -fno-rtti"
 
267
  CFLAGS="$CFLAGS ${GCC_WARNINGS} "
 
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
 
276
  LD_VERSION_SCRIPT="-Wl,--version-script=\$(top_builddir)/libdrizzle/libdrizzle.ver"
 
277
  AC_CONFIG_FILES(libdrizzle/libdrizzle.ver)
 
278
fi
48
279
AC_SUBST(LD_VERSION_SCRIPT)
49
280
 
50
 
dnl Set the default datadir location to /usr/local/var/drizzle. If a
51
 
dnl localstatedir is explicitly given, just use that.
52
 
AS_IF([test "x${localstatedir}" = 'x${prefix}/var'],[
53
 
  localstatedir='${prefix}/var/drizzle'
54
 
])
55
 
 
56
 
AC_PATH_PROG(GPERF, gperf)
57
 
AS_IF([test "x$GPERF" = "x"],
58
 
      AC_MSG_ERROR("Drizzle requires gperf to build."))
59
 
 
60
 
# libexecinfo provides backtrace_symbols on FreeBSD
61
 
AC_SEARCH_LIBS(backtrace_symbols, [execinfo])
62
 
 
63
 
PANDORA_RUN_CPPLINT
64
 
 
65
 
PANDORA_REQUIRE_LIBPROTOBUF
66
 
PANDORA_PROTOBUF_REQUIRE_VERSION([2.1.0])
67
 
PANDORA_REQUIRE_PROTOC
68
 
 
69
 
AC_LANG_PUSH(C++)
70
 
PANDORA_REQUIRE_PTHREAD
71
 
PANDORA_REQUIRE_LIBUUID
72
 
PANDORA_REQUIRE_LIBZ
73
 
PANDORA_REQUIRE_LIBPCRE
74
 
PANDORA_REQUIRE_LIBREADLINE
75
 
PANDORA_REQUIRE_LIBDL
76
 
AC_LANG_POP
77
 
 
78
 
DRIZZLE_STACK_DIRECTION
79
 
 
80
 
PANDORA_USE_BETTER_MALLOC
81
 
 
82
 
PANDORA_DRIZZLE_BUILD
83
 
AC_DEFINE([BUILDING_DRIZZLED],[1],
84
 
          [Define indicating we are building and not consuming drizzle.])
85
 
 
86
 
PANDORA_HAVE_LIBGTEST
87
 
PANDORA_HAVE_LIBSQLITE3
88
 
 
89
 
AC_CHECK_FUNC(inet_ntoa, [], [AC_CHECK_LIB(nsl, inet_ntoa)])
 
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
 
422
  AC_MSG_ERROR([Drizzle requires an ANSI C compiler (and a C++ compiler). Try gcc. See the Installation chapter in the Reference Manual.])
 
423
fi
90
424
 
91
425
 
92
426
AC_ARG_WITH([server-suffix],
93
427
    [AS_HELP_STRING([--with-server-suffix],
94
428
      [Append value to the version string.])],
95
 
    [ DRIZZLE_SERVER_SUFFIX="$withval" ]
96
 
    [ DRIZZLE_SERVER_SUFFIX= ])
97
 
 
98
 
AC_DEFINE_UNQUOTED([DRIZZLE_SERVER_SUFFIX],[$DRIZZLE_SERVER_SUFFIX],
99
 
                   [Append value to the version string])
100
 
 
101
 
 
102
 
AC_ARG_WITH([drizzled-user],
103
 
    [AS_HELP_STRING([--with-drizzled-user=username],
104
 
            [What user the drizzled daemon shall be run as.
105
 
                @<:@default=drizzle@:>@])],
106
 
    [ DRIZZLED_USER="$withval" ],
107
 
    [ DRIZZLED_USER=drizzle ])
108
 
AC_SUBST(DRIZZLED_USER)
109
 
 
 
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
 
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.])],
 
439
    [ with_named_curses=$withval ],
 
440
    [ with_named_curses=no ]
 
441
    )
 
442
 
 
443
# compile with strings functions in assembler
 
444
AC_ARG_ENABLE([assembler],
 
445
    [AS_HELP_STRING([--enable-assembler],
 
446
            [Use assembler versions of some string functions if available.])],
 
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.)
 
467
AC_ARG_ENABLE([profiling],
 
468
    [AS_HELP_STRING([--enable-profiling], 
 
469
            [Build a version with query profiling code])],
 
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
 
 
482
AC_ARG_WITH([tcp-port],
 
483
    [AS_HELP_STRING([--with-tcp-port=port-number],
 
484
            [Which port to use for Drizzle services @<:@default=3306@:>@])],
 
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.
 
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@:>@])],
 
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
 
557
AC_HEADER_STDBOOL
 
558
AC_CHECK_HEADERS(fcntl.h float.h fpu_control.h ieeefp.h)
 
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)
 
567
 
 
568
AC_CHECK_HEADERS([xfs/xfs.h])
 
569
#--------------------------------------------------------------------
 
570
# Check for libevent
 
571
#--------------------------------------------------------------------
 
572
 
 
573
AC_CHECK_LIB(event, event_loop, [], [AC_MSG_ERROR(could not find libevent)])
 
574
 
 
575
#--------------------------------------------------------------------
 
576
# Check for libpthread
 
577
#--------------------------------------------------------------------
 
578
 
 
579
AC_CHECK_LIB(pthread, pthread_create, [], [AC_MSG_ERROR(could not find libpthread)])
 
580
 
 
581
#--------------------------------------------------------------------
 
582
# Check for libpcre
 
583
#--------------------------------------------------------------------
 
584
 
 
585
AC_PATH_PROG(PKG_CONFIG, pkg-config, AC_MSG_ERROR([pkg-config wasn't found.]))
 
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
 
593
  ])
 
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
 
598
AC_SUBST(PCRE_LIBS)
 
599
AC_SUBST(PCRE_CFLAGS)
 
600
 
 
601
#--------------------------------------------------------------------
 
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
 
 
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)
 
653
 
 
654
# Build optimized or debug version ?
 
655
# First check for gcc and g++
 
656
if test "$ac_cv_c_compiler_gnu" = "yes"
 
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
 
 
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.])],
 
694
    [with_debug=$withval],
 
695
    [with_debug=no])
 
696
AM_CONDITIONAL(BUILD_DBUG, test "$with_debug" != "no")
 
697
if test "$with_debug" = "yes"
 
698
then
 
699
  # Medium debug.
 
700
  AC_DEFINE([DBUG_ON], [1], [Use libdbug])
 
701
  CFLAGS="$DEBUG_CFLAGS $DEBUG_OPTIMIZE_CC $CFLAGS"
 
702
  CXXFLAGS="$DEBUG_CXXFLAGS $DEBUG_OPTIMIZE_CXX $CXXFLAGS"
 
703
  
 
704
elif test "$with_debug" = "full"
 
705
then
 
706
  # Full debug. Very slow in some cases
 
707
  AC_DEFINE([DBUG_ON], [1], [Use libdbug])
 
708
  CFLAGS="$DEBUG_CFLAGS $CFLAGS"
 
709
  CXXFLAGS="$DEBUG_CXXFLAGS $CXXFLAGS"
 
710
else
 
711
  # Optimized version. No debug
 
712
  AC_DEFINE([DBUG_OFF], [1], [Dont use libdbug])
 
713
  CFLAGS="$OPTIMIZE_CFLAGS $CFLAGS"
 
714
  CXXFLAGS="$OPTIMIZE_CXXFLAGS $CXXFLAGS"
 
715
fi
 
716
 
 
717
# If we should allow error injection tests
 
718
AC_ARG_WITH([error-inject],
 
719
    [AS_HELP_STRING([--with-error-inject],
 
720
            [Enable error injection in Drizzle Server @<:@default=off@:>@])],
 
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],
 
729
              [Enable error injection in Drizzle Server])
 
730
  fi
 
731
fi
 
732
 
 
733
AC_ARG_WITH([fast-mutexes],
 
734
    [AS_HELP_STRING([--with-fast-mutexes],
 
735
            [Compile with fast mutexes  @<:@default=off@:>@])],
 
736
    [with_fast_mutexes=$withval],
 
737
    [with_fast_mutexes=no])
 
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
110
749
 
111
750
AC_ARG_WITH([comment],
112
751
    [AS_HELP_STRING([--with-comment],
113
752
            [Comment about compilation environment. @<:@default=off@:>@])],
114
753
    [with_comment=$withval],
115
754
    [with_comment=no])
116
 
AS_IF([test "$with_comment" != "no"],[
 
755
if test "$with_comment" != "no"
 
756
then
117
757
  COMPILATION_COMMENT=$with_comment
118
 
],[
119
 
  COMPILATION_COMMENT="Source distribution (${PANDORA_RELEASE_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")
 
764
if test "$TARGET_LINUX" = "true" -a "$ac_cv_c_compiler_gnu" = "yes" -a "$all_is_static" != "yes"
 
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
 
795
  AC_MSG_ERROR([No size for char type.])
 
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
 
812
  AC_MSG_ERROR("Drizzle needs a long long type.")
 
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
 
818
  AC_MSG_ERROR("Drizzle needs a off_t type.")
 
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:
 
833
AC_PREPROC_IFELSE([AC_LANG_SOURCE([[
 
834
#if !defined(__CYGWIN__) && !defined(__INTEL_COMPILER) && defined(__GNUC__) && (__GNUC__ < 3)
 
835
#error USE_PRAGMA_IMPLEMENTATION
 
836
#endif
 
837
]])],[AC_MSG_RESULT(no) ],[AC_MSG_RESULT(yes) ; CXXFLAGS="$CXXFLAGS -DUSE_PRAGMA_IMPLEMENTATION"])
 
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
 
 
901
AC_HEADER_STAT
 
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
120
930
])
121
 
AC_DEFINE_UNQUOTED([COMPILATION_COMMENT],["$COMPILATION_COMMENT"],
122
 
                   [Comment about compilation environment])
123
 
 
124
 
 
 
931
 
 
932
# End of readline/libedit stuff
125
933
#########################################################################
126
934
 
127
 
 
128
 
dnl Has to be done late, as the plugin may need to check for existence of
129
 
dnl functions tested above
130
 
PANDORA_PLUGINS([drizzled/module/load_list.h])
131
 
 
132
 
dnl GCC Precompiled Header Support
133
 
dnl re-enable later
134
 
dnl AM_CONDITIONAL([BUILD_GCC_PCH],[test "$GCC" = "yes"])
135
 
AM_CONDITIONAL([BUILD_GCC_PCH],[test "no" = "yes"])
136
 
 
137
 
AS_IF([test "$lt_cv_prog_gnu_ld" = "yes"],[
138
 
  LDFLAGS="${LDFLAGS} ${LD_VERSION_SCRIPT}"
139
 
  ])
140
 
 
141
 
WITH_VALGRIND
142
 
 
143
 
AC_CONFIG_FILES(Makefile dnl
144
 
 tests/Makefile dnl
145
 
 drizzled/plugin/version.h dnl
146
 
 support-files/libdrizzle.pc dnl
147
 
 support-files/drizzle.server support-files/drizzle-log-rotate
148
 
 support-files/smf/install.sh dnl
149
 
 support-files/drizzle.spec dnl
150
 
 support-files/smf/drizzle.xml dnl
151
 
 support-files/smf/drizzle)
152
 
 
153
 
scheduling_plugins_available="
154
 
  pool_of_threads 
155
 
  single_thread
156
 
"
157
 
 
158
 
for sched_plugin in $scheduling_plugins_available
159
 
do
160
 
  varname="\${with_plugin_${sched_plugin}}"
161
 
  result=`eval "echo $varname"`
162
 
  if test "x$result" = "xyes"
163
 
  then
164
 
    scheduling_plugins="$sched_plugin $scheduling_plugins"
165
 
  fi
166
 
done
 
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
 
 
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
 
 
959
AC_CHECK_FUNCS(bcmp bfill bmove bsearch bzero \
 
960
  cuserid fchmod \
 
961
  fdatasync finite fpresetsticky fpsetmask fsync ftruncate \
 
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 \
 
975
  strtol strtoll strtoul strtoull tell tempnam vidattr \
 
976
  posix_fallocate backtrace backtrace_symbols backtrace_symbols_fd)
 
977
 
 
978
# Check that isinf() is available in math.h and can be used in both C and C++
 
979
# code
 
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
  ]])],[
 
986
    AC_MSG_RESULT(yes)
 
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
 
 
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,
 
1017
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#if !defined(_REENTRANT)
 
1018
#define _REENTRANT
 
1019
#endif
 
1020
#define _POSIX_PTHREAD_SEMANTICS 
 
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]))
 
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,
 
1031
  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#define _REENTRANT
 
1032
#define _POSIX_PTHREAD_SEMANTICS 
 
1033
#include <pthread.h> ]], [[ 
 
1034
  pthread_mutexattr_t attr;
 
1035
  pthread_mutex_t mp;
 
1036
  pthread_mutex_init(&mp,&attr); ]])],[mysql_cv_mutex_init_args=POSIX],[mysql_cv_mutex_init_args=other]))
 
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,
 
1047
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define _REENTRANT
 
1048
#define _POSIX_PTHREAD_SEMANTICS 
 
1049
#include <pthread.h>
 
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]))
 
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,
 
1059
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define _REENTRANT
 
1060
#define _POSIX_PTHREAD_SEMANTICS 
 
1061
#include <pthread.h>
 
1062
#include <signal.h>]], [[#ifndef _AIX
 
1063
sigset_t set;
 
1064
int sig;
 
1065
sigwait(&set,&sig);
 
1066
#endif]])],[mysql_cv_sigwait=POSIX],[mysql_cv_sigwait=other]))
 
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,
 
1077
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define _REENTRANT
 
1078
#define _POSIX_PTHREAD_SEMANTICS 
 
1079
#include <pthread.h>
 
1080
#include <signal.h>]], [[sigset_t set;
 
1081
int sig;
 
1082
sigwait(&set);]])],[mysql_cv_sigwait=NONPOSIX],[mysql_cv_sigwait=other]))
 
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,
 
1092
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define _REENTRANT
 
1093
#define _POSIX_PTHREAD_SEMANTICS 
 
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]))
 
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")
 
1103
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
 
1104
#include <sys/socket.h>
 
1105
#include <netinet/in_systm.h>
 
1106
#include <netinet/in.h>
 
1107
#include <netinet/ip.h>
 
1108
#include <netinet/tcp.h>]], [[ printf("1\n"); ]])],[netinet_inc=yes],[netinet_inc=no])
 
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
 
 
1115
AC_LANG_PUSH([C++])
 
1116
AC_CHECK_HEADERS(cxxabi.h)
 
1117
AC_CACHE_CHECK([checking for abi::__cxa_demangle], mysql_cv_cxa_demangle,
 
1118
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <cxxabi.h>]], [[
 
1119
  char *foo= 0; int bar= 0;
 
1120
  foo= abi::__cxa_demangle(foo, foo, 0, &bar);
 
1121
]])],[mysql_cv_cxa_demangle=yes],[mysql_cv_cxa_demangle=no])])
 
1122
AC_LANG_POP([])
 
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(mysql_plugin_dirs)
 
1146
AC_SUBST(mysql_plugin_libs)
 
1147
AC_SUBST(mysql_plugin_defs)
 
1148
 
 
1149
AC_ARG_ENABLE([pedantic-warnings],
 
1150
    [AS_HELP_STRING([--disable-pedantic-warnings],
 
1151
       [Toggle pedanticness @<:@default=on@:>@])],
 
1152
    [ac_warn_pedantic="$enableval"],
 
1153
    [ac_warn_pedantic="yes"])
 
1154
 
 
1155
AC_ARG_ENABLE([fail],
 
1156
    [AS_HELP_STRING([--enable-fail],
 
1157
       [Turn warnings into failures @<:@default=off@:>@])],
 
1158
    [ac_warn_fail="$enableval"],
 
1159
    [ac_warn_fail="no"])
 
1160
 
 
1161
AC_ARG_ENABLE([unreachable],
 
1162
    [AS_HELP_STRING([--enable-unreachable],
 
1163
       [Enable warnings about unreachable code @<:@default=off@:>@])],
 
1164
    [ac_warn_unreachable="$enableval"],
 
1165
    [ac_warn_unreachable="no"])
 
1166
 
 
1167
 
 
1168
if test "$GCC" = "yes"
 
1169
then
 
1170
 
 
1171
  GCC_WARNINGS="-W -Wall"
 
1172
  GXX_WARNINGS="${GCC_WARNINGS}"
 
1173
 
 
1174
 
 
1175
  if test "$ac_warn_pedantic" = "yes"
 
1176
  then
 
1177
    GCC_WARNINGS="${GCC_WARNINGS}  -std=gnu99 -pedantic -Wundef -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls  "
 
1178
    GXX_WARNINGS="${GXX_WARNINGS}  -std=gnu++98 -pedantic -Wundef -Wredundant-decls -Wno-long-long "
 
1179
  fi
 
1180
 
 
1181
  if test "$ac_warn_unreachable" = "yes"
 
1182
  then
 
1183
    GCC_WARNINGS="${GCC_WARNINGS} -Wunreachable-code"
 
1184
    GXX_WARNINGS="${GXX_WARNINGS} -Wunreachable-code"
 
1185
  fi
 
1186
 
 
1187
  if test "$ac_warn_fail" = "yes"
 
1188
  then
 
1189
    GCC_WARNINGS="${GCC_WARNINGS} -Werror"
 
1190
    GXX_WARNINGS="${GXX_WARNINGS} -Werror"
 
1191
  fi
 
1192
 
 
1193
    CXXFLAGS="$CXXFLAGS ${GXX_WARNINGS}"
 
1194
    CFLAGS="$CFLAGS ${GCC_WARNINGS} "
 
1195
fi
 
1196
 
 
1197
# Some usefull subst
 
1198
AC_SUBST(CC)
 
1199
AC_SUBST(GXX)
 
1200
 
 
1201
# Set configuration options for make_binary_distribution
 
1202
case $SYSTEM_TYPE in
 
1203
  *netware*)
 
1204
    MAKE_BINARY_DISTRIBUTION_OPTIONS="$MAKE_BINARY_DISTRIBUTION_OPTIONS --no-strip"
 
1205
    ;;
 
1206
  *)
 
1207
    : # no change for other platforms yet
 
1208
    ;;
 
1209
esac
 
1210
AC_SUBST(MAKE_BINARY_DISTRIBUTION_OPTIONS)
 
1211
 
 
1212
AC_CONFIG_FILES(Makefile extra/Makefile mysys/Makefile mysys/tests/Makefile dnl
 
1213
 strings/Makefile strings/tests/Makefile storage/Makefile dnl
 
1214
 vio/Makefile dnl
 
1215
 libdrizzle/Makefile client/Makefile dnl
 
1216
 server/Makefile server/share/Makefile dnl
 
1217
 server/sql_builtin.cc dnl
 
1218
 dbug/Makefile include/Makefile dnl
 
1219
 support-files/Makefile dnl
 
1220
 tests/Makefile tests/install_test_db dnl
 
1221
 include/drizzle_version.h plugin/Makefile dnl
 
1222
 server/drizzled_safe support-files/libdrizzle.pc dnl
 
1223
 support-files/drizzle.server support-files/drizzle-log-rotate)
 
1224
 
 
1225
AC_CONFIG_COMMANDS([default], , test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h)
 
1226
 
 
1227
# Ensure that table handlers gets all modifications to CFLAGS/CXXFLAGS
 
1228
AC_CONFIG_COMMANDS_POST(ac_configure_args="$ac_configure_args CFLAGS='$CFLAGS' CXXFLAGS='$CXXFLAGS'")
167
1229
 
168
1230
AC_OUTPUT
169
 
 
170
 
echo "---"
171
 
echo "Configuration summary for $PACKAGE_NAME version $VERSION $PANDORA_RELEASE_COMMENT"
172
 
echo ""
173
 
echo "   * Installation prefix:       $prefix"
174
 
echo "   * System type:               $host_vendor-$host_os"
175
 
echo "   * pandora-build version:     PANDORA_CANONICAL_VERSION"
176
 
echo "   * Host CPU:                  $host_cpu"
177
 
echo "   * C Compiler:                $CC_VERSION"
178
 
echo "   * C++ Compiler:              $CXX_VERSION"
179
 
echo "   * Assertions enabled:        $ac_cv_assert"
180
 
echo "   * Debug enabled:             $with_debug"
181
 
echo "   * Profiling enabled:         $ac_profiling"
182
 
echo "   * Coverage enabled:          $ac_coverage"
183
 
echo "   * Warnings as failure:       $ac_cv_warnings_as_errors"
184
 
echo ""
185
 
echo "---"
186
 
 
187
 
case "$host_os" in
188
 
  *freebsd*)
189
 
    echo "*****"
190
 
    echo "*"
191
 
    echo "*  NOTE: You are on FreeBSD. BSD make will not work."
192
 
    echo "*"
193
 
    echo "*   use 'gmake' To build Drizzle"
194
 
    echo "*"
195
 
    echo "*  And ensure that /usr/local/lib/gcc44 is in your LD_LIBRARY_PATH"
196
 
    echo "*" 
197
 
    echo "*****"
198
 
  ;;
199
 
esac
200
 
 
201
 
 
202
 
dnl libtoolize scans configure.ac  and needs to see some text
203
 
m4_define([LIBTOOLIZE_AC_INIT], [])