~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to configure.ac

  • Committer: Monty Taylor
  • Date: 2008-10-09 22:38:27 UTC
  • mto: This revision was merged to the branch mainline in revision 497.
  • Revision ID: monty@inaugust.com-20081009223827-bc9gvpiplsmvpwyq
Moved test() to its own file.
Made a new function to possibly replace int10_to_str.

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
4
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])
 
5
 
 
6
AC_INIT(drizzle, [7.0.0], [http://bugs.launchpad.net/drizzle])
24
7
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=0:8: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)
 
8
AC_CONFIG_AUX_DIR(config)
 
9
AC_CONFIG_HEADERS([config.h])
 
10
 
 
11
# Save some variables and the command line options for mysqlbug
 
12
SAVE_CC="$CC"
 
13
SAVE_CXX="$CXX"
 
14
SAVE_ASFLAGS="$ASFLAGS"
 
15
SAVE_CFLAGS="$CFLAGS"
 
16
SAVE_CXXFLAGS="$CXXFLAGS"
 
17
SAVE_LDFLAGS="$LDFLAGS"
 
18
SAVE_CXXLDFLAGS="$CXXLDFLAGS"
 
19
CONF_COMMAND="$0 $ac_configure_args"
 
20
AC_SUBST(CONF_COMMAND)
 
21
AC_SUBST(SAVE_CC)
 
22
AC_SUBST(SAVE_CXX)
 
23
AC_SUBST(SAVE_ASFLAGS)
 
24
AC_SUBST(SAVE_CFLAGS)
 
25
AC_SUBST(SAVE_CXXFLAGS)
 
26
AC_SUBST(SAVE_LDFLAGS)
 
27
AC_SUBST(SAVE_CXXLDFLAGS)
 
28
AC_SUBST(CXXLDFLAGS)
 
29
 
 
30
AC_CANONICAL_TARGET
 
31
AM_INIT_AUTOMAKE(-Wall -Wno-portability -Werror)
 
32
 
 
33
PROTOCOL_VERSION=10
 
34
DOT_FRM_VERSION=6
 
35
# See the libtool docs for information on how to do shared lib versions.
 
36
SHARED_LIB_MAJOR_VERSION=1
 
37
SHARED_LIB_VERSION=$SHARED_LIB_MAJOR_VERSION:0:0
 
38
 
 
39
 
 
40
dnl AC_CANONICAL_HOST thinks it's a good idea to just set CFLAGS to 
 
41
dnl -g -O2 if you're running gcc. We would like to use something else, thanks.
 
42
if test "x${CFLAGS}" = "x-g -O2"
 
43
then
 
44
  CFLAGS=
 
45
fi
 
46
if test "x${CXXFLAGS}" = "x-g -O2"
 
47
then
 
48
  CXXFLAGS=
 
49
fi
 
50
 
 
51
 
 
52
# Set all version vars based on $VERSION. How do we do this more elegant ?
 
53
# Remember that regexps needs to quote [ and ] since this is run through m4
 
54
# We take some made up examples
 
55
#
 
56
#  VERSION                  5.1.40sp1-alpha     5.0.34a
 
57
#  DRIZZLE_NO_DASH_VERSION    5.1.40sp1           5.0.34a
 
58
#  DRIZZLE_NUMERIC_VERSION    5.1.40              5.0.34
 
59
#  DRIZZLE_BASE_VERSION       5.1                 5.0
 
60
#  DRIZZLE_VERSION_ID         50140               50034
 
61
#
 
62
DRIZZLE_NO_DASH_VERSION=`echo $VERSION | sed -e "s|-.*$||"`
 
63
DRIZZLE_NUMERIC_VERSION=`echo $DRIZZLE_NO_DASH_VERSION | sed -e "s|[[a-z]][[a-z0-9]]*$||"`
 
64
DRIZZLE_BASE_VERSION=`echo $DRIZZLE_NUMERIC_VERSION | sed -e "s|\.[[^.]]*$||"`
 
65
DRIZZLE_VERSION_ID=`echo $DRIZZLE_NUMERIC_VERSION | \
 
66
    awk -F. '{printf "%d%0.2d%0.2d", $1, $2, $3}'`
 
67
 
 
68
# The port should be constant for a LONG time
 
69
DRIZZLE_TCP_PORT_DEFAULT=4427
 
70
 
 
71
sinclude(m4/dtrace.m4)
 
72
sinclude(m4/character_sets.m4)
 
73
 
 
74
AM_GNU_GETTEXT([external])
 
75
AM_GNU_GETTEXT_VERSION(0.17)
 
76
 
 
77
AM_CONDITIONAL([BUILD_GETTEXT],[test "x$MSGMERGE" != "x" -a "x$MSGMERGE" != "x:"])
 
78
 
 
79
AC_SUBST(DRIZZLE_NO_DASH_VERSION)
 
80
AC_SUBST(DRIZZLE_BASE_VERSION)
 
81
AC_SUBST(DRIZZLE_VERSION_ID)
 
82
AC_SUBST(DRIZZLE_PREVIOUS_BASE_VERSION)
 
83
AC_SUBST(PROTOCOL_VERSION)
 
84
AC_DEFINE_UNQUOTED([PROTOCOL_VERSION], [$PROTOCOL_VERSION],
 
85
                   [mysql client protocol version])
 
86
AC_SUBST(DOT_FRM_VERSION)
 
87
AC_DEFINE_UNQUOTED([DOT_FRM_VERSION], [$DOT_FRM_VERSION],
 
88
                   [Version of .frm files])
 
89
AC_SUBST(SHARED_LIB_MAJOR_VERSION)
 
90
AC_SUBST(SHARED_LIB_VERSION)
 
91
AC_SUBST(AVAILABLE_LANGUAGES)
 
92
 
 
93
# General Constants
 
94
AC_DEFINE([IO_SIZE], [4096], [Io buffer size; Must be a power of 2 and 
 
95
  a multiple of 512. May be
 
96
  smaller what the disk page size. This influences the speed of the
 
97
  isam btree library. eg to big to slow.])
 
98
AC_DEFINE([SC_MAXWIDTH],[256], [Max width of screen (for error messages)])
 
99
AC_DEFINE([FN_LEN],[256 ], [Max file name len ])
 
100
AC_DEFINE([FN_HEADLEN],[253], [Max length of filepart of file name ])
 
101
AC_DEFINE([FN_EXTLEN],[20], [Max length of extension (part of FN_LEN) ])
 
102
AC_DEFINE([FN_REFLEN],[512], [Max length of full path-name ])
 
103
AC_DEFINE([FN_EXTCHAR],['.'], [File extension character])
 
104
AC_DEFINE([FN_HOMELIB],['~'], [~/ is used as abbrev for home dir ])
 
105
AC_DEFINE([FN_CURLIB],['.'], [./ is used as abbrev for current dir ])
 
106
AC_DEFINE([FN_PARENTDIR],[".."], [Parent directory; Must be a string ])
 
107
 
 
108
AC_DEFINE([MASTER],[1],[Compile without unireg])
 
109
 
 
110
AH_VERBATIM([QUOTE_ARG],[
 
111
/* Quote argument (before cpp) */
 
112
#ifndef QUOTE_ARG
 
113
# define QUOTE_ARG(x) #x
 
114
#endif
 
115
/* Quote argument, (after cpp) */
 
116
#ifndef STRINGIFY_ARG
 
117
# define STRINGIFY_ARG(x) QUOTE_ARG(x)
 
118
#endif
 
119
])
 
120
 
 
121
AH_VERBATIM([builtin_expect],[
 
122
/*
 
123
 * The macros below are borrowed from include/linux/compiler.h in the
 
124
 * Linux kernel. Use them to indicate the likelyhood of the truthfulness
 
125
 * of a condition. This serves two purposes - newer versions of gcc will be
 
126
 * able to optimize for branch predication, which could yield siginficant
 
127
 * performance gains in frequently executed sections of the code, and the
 
128
 * other reason to use them is for documentation
 
129
 */
 
130
#if !defined(__GNUC__)
 
131
#define __builtin_expect(x, expected_value) (x)
 
132
#endif
 
133
 
 
134
#define likely(x)  __builtin_expect((x),1)
 
135
#define unlikely(x)  __builtin_expect((x),0)
 
136
])
 
137
 
 
138
dnl  InnoDB depends on some Drizzle's internals which other plugins should not
 
139
dnl  need.  This is because of InnoDB's foreign key support, "safe" binlog
 
140
dnl  truncation, and other similar legacy features.
 
141
 
 
142
dnl  We define accessors for these internals unconditionally, but do not
 
143
dnl  expose them in mysql/plugin.h.  They are declared in ha_innodb.h for
 
144
dnl  InnoDB's use.
 
145
 
 
146
AC_DEFINE([INNODB_COMPATIBILITY_HOOKS],[1],[TODO: Remove the need for this])
 
147
dnl TODO: Make a test for when this needs to be set.
 
148
AC_DEFINE([_REENTRANT],[1],[Some thread libraries require this])
 
149
 
 
150
AH_VERBATIM([posix_pthread],[
 
151
/* We want posix threads */
 
152
#ifndef _POSIX_PTHREAD_SEMANTICS
 
153
#define _POSIX_PTHREAD_SEMANTICS
 
154
#endif
 
155
])
 
156
 
 
157
 
 
158
# Canonicalize the configuration name.
 
159
 
 
160
# Check whether --with-system-type or --without-system-type was given.
 
161
AC_ARG_WITH([system-type],
 
162
    [AS_HELP_STRING([--with-system-type],
 
163
       [Set the system type, like "sun-solaris10"])],
 
164
    [SYSTEM_TYPE="$withval"],
 
165
    [SYSTEM_TYPE="$host_vendor-$host_os"])
 
166
AC_ARG_WITH([machine-type],
 
167
    [AS_HELP_STRING([--with-machine-type],
 
168
       [Set the machine type, like "powerpc"])],
 
169
    [MACHINE_TYPE="$withval"],
 
170
    [MACHINE_TYPE="$host_cpu"])
 
171
AC_SUBST(SYSTEM_TYPE)
 
172
AC_DEFINE_UNQUOTED([SYSTEM_TYPE], ["$SYSTEM_TYPE"],
 
173
                   [Name of system, eg sun-solaris])
 
174
AC_SUBST(MACHINE_TYPE)
 
175
AC_DEFINE_UNQUOTED([MACHINE_TYPE], ["$MACHINE_TYPE"],
 
176
                   [Machine type name, eg sparc])
 
177
 
 
178
# Detect intel x86 like processor
 
179
BASE_MACHINE_TYPE=$MACHINE_TYPE
 
180
case $MACHINE_TYPE in
 
181
  i?86) BASE_MACHINE_TYPE=i386 ;;
 
182
esac
 
183
 
 
184
AM_SANITY_CHECK
 
185
# This is needed is SUBDIRS is set
 
186
AC_PROG_MAKE_SET
 
187
 
 
188
##############################################################################
 
189
# The below section needs to be done before AC_PROG_CC
 
190
##############################################################################
 
191
 
 
192
if test "x${CFLAGS-}" = x ; then
 
193
  cflags_is_set=no
 
194
else
 
195
  cflags_is_set=yes
 
196
fi
 
197
 
 
198
if test "x${CPPFLAGS-}" = x ; then
 
199
  cppflags_is_set=no
 
200
else
 
201
  cppflags_is_set=yes
 
202
fi
 
203
 
 
204
if test "x${LDFLAGS-}" = x ; then
 
205
  ldflags_is_set=no
 
206
else
 
207
  ldflags_is_set=yes
 
208
fi
 
209
 
 
210
################ End of section to be done before AC_PROG_CC #################
 
211
 
 
212
dnl Checks for programs.
 
213
AC_PROG_CC
 
214
ifdef([AC_PROG_CC_C99],[
 
215
  dnl TODO: Need to fix this to use c99 instead of gnu99
 
216
  AC_PROG_CC_C99([],[AC_MSG_ERROR([C99 support required for compiling Drizzle])])
 
217
  C99_SUPPORT_HACK=""
 
218
],[C99_SUPPORT_HACK="-std=gnu99"])
 
219
AC_PROG_CXX
 
220
AC_CXX_HEADER_STDCXX_98
 
221
if test "$ac_cv_cxx_stdcxx_98" = "no"
 
222
then
 
223
  AC_MSG_ERROR([C++ Compiler required to compile Drizzle])
 
224
fi
 
225
AC_PROG_CPP
 
226
AM_PROG_CC_C_O
 
227
 
 
228
AC_CXX_STL_HASH
 
229
AC_CXX_CSTDINT
 
230
AC_CXX_CINTTYPES
 
231
AC_CXX_CMATH
 
232
 
 
233
# Print version of CC and CXX compiler (if they support --version)
 
234
case $SYSTEM_TYPE in
 
235
  *apple-darwin*)
 
236
    AC_DEFINE([TARGET_OS_OSX], [1], [Whether we build for OSX])
 
237
    ;;
 
238
  *)
 
239
CC_VERSION=`$CC --version | sed 1q`
 
240
    ;;
 
241
esac
 
242
if test $? -eq "0"
 
243
then
 
244
  AC_MSG_CHECKING("C Compiler version")
 
245
  AC_MSG_RESULT("$CC $CC_VERSION")
 
246
else
 
247
CC_VERSION=""
 
248
fi
 
249
AC_SUBST(CC_VERSION)
 
250
 
 
251
dnl AC_CANONICAL_HOST thinks it's a good idea to just set CFLAGS to 
 
252
dnl -g -O2 if you're running gcc. We would like to use something else, thanks.
 
253
if test "x${CFLAGS}" = "x-g -O2"
 
254
then
 
255
  CFLAGS=
 
256
fi
 
257
if test "x${CXXFLAGS}" = "x-g -O2"
 
258
then
 
259
  CXXFLAGS=
 
260
fi
 
261
 
 
262
DRIZZLE_CHECK_CXX_VERSION
 
263
 
 
264
AC_PROG_AWK
 
265
 
 
266
if test "$ac_cv_c_compiler_gnu" = "yes"
 
267
then
 
268
  AS="$CC -c"
 
269
  AC_SUBST(AS)
 
270
else
 
271
  AC_PATH_PROG(AS, as, as)
 
272
fi
 
273
 
 
274
dnl TODO: This needs to go away and be replaced with _ISOC99_SOURCE
 
275
if test "$ac_cv_compiler_gnu" = "yes" -o "$target_os" = "linux-gnu"
 
276
then
 
277
  AC_DEFINE([_GNU_SOURCE],[1],[Fix problem with S_ISLNK() on Linux])
 
278
fi
 
279
 
 
280
dnl  Solaris 9 include file <sys/feature_tests.h> refers to X/Open document
 
281
 
 
282
dnl  System Interfaces and Headers, Issue 5
 
283
 
 
284
dnl  saying we should define _XOPEN_SOURCE=500 to get POSIX.1c prototypes,
 
285
dnl  but apparently other systems (namely FreeBSD) don't agree.
 
286
 
 
287
dnl  On a newer Solaris 10, the above file recognizes also _XOPEN_SOURCE=600.
 
288
dnl  Furthermore, it tests that if a program requires older standard
 
289
dnl  (_XOPEN_SOURCE<600 or _POSIX_C_SOURCE<200112L) it cannot be
 
290
dnl  run on a new compiler (that defines _STDC_C99) and issues an #error.
 
291
dnl  It's also an #error if a program requires new standard (_XOPEN_SOURCE=600
 
292
dnl  or _POSIX_C_SOURCE=200112L) and a compiler does not define _STDC_C99.
 
293
 
 
294
dnl  To add more to this mess, Sun Studio C compiler defines _STDC_C99 while
 
295
dnl  C++ compiler does not!
 
296
 
 
297
dnl TODO: Can _ISOC99_SOURCE be defined on all platforms and remove the 
 
298
dnl       Need for all of this? 
 
299
case "$target_os" in
 
300
  *solaris*)
 
301
  dnl Do we need both of these? 
 
302
  CXXFLAGS="${CXXFLAGS} -D__C99FEATURES__"
 
303
  CFLAGS="${CFLAGS} -D_XOPEN_SOURCE=600"
 
304
  AC_DEFINE([__EXTENSIONS__],[1],[Turn on needed extensions on Solaris])
 
305
  ;;
 
306
esac
 
307
 
 
308
 
 
309
# We use libtool
 
310
#AC_LIBTOOL_WIN32_DLL
 
311
AC_PROG_LIBTOOL
 
312
 
 
313
# Ensure that we have --preserve-dup-deps defines, otherwise we get link
 
314
# problems of 'mysql' with CXX=g++
 
315
LIBTOOL="$LIBTOOL --preserve-dup-deps"
 
316
AC_SUBST(LIBTOOL)dnl
 
317
 
 
318
AC_SUBST(NM)dnl
 
319
 
 
320
AC_PROG_INSTALL
 
321
test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
 
322
 
 
323
# Not critical since the generated file is distributed
 
324
AC_CHECK_PROGS(YACC, ['bison -y -p MYSQL'])
 
325
if test -z "$YACC" && test -d ".bzr"
 
326
then
 
327
  AC_MSG_ERROR(["bison is required for Drizzle to build from a bzr branch"])
 
328
fi
 
329
 
 
330
AC_PATH_PROG(uname_prog, uname, no)
 
331
 
 
332
# We should go through this and put all the explictly system dependent
 
333
# stuff in one place
 
334
AC_MSG_CHECKING(operating system)
 
335
AC_CACHE_VAL(mysql_cv_sys_os,
 
336
[
 
337
if test "$uname_prog" != "no"; then
 
338
  mysql_cv_sys_os="`uname`"
 
339
else
 
340
  mysql_cv_sys_os="Not Solaris"
 
341
fi
 
342
])
 
343
AC_MSG_RESULT($mysql_cv_sys_os)
 
344
 
 
345
# This should be rewritten to use $target_os
 
346
case "$target_os" in
 
347
  *solaris*)
 
348
    TARGET_SOLARIS="true"
 
349
    AC_DEFINE([TARGET_OS_SOLARIS], [1], [Whether we are building for Solaris])
 
350
    AC_SUBST(TARGET_SOLARIS)
 
351
  ;;
 
352
esac
 
353
 
 
354
# The following is required for portable results of floating point calculations
 
355
# on PowerPC. The same must also be done for IA-64, but this options is missing
 
356
# in the IA-64 gcc backend.
 
357
 
 
358
if test "$GCC" = "yes"
 
359
then
 
360
  case "$host_cpu" in
 
361
    *ppc* | *powerpc*)
 
362
      AM_CFLAGS="$CFLAGS -mno-fused-madd"
 
363
      AM_CXXFLAGS="$CXXFLAGS -mno-fused-madd"
 
364
    ;;
 
365
  esac
 
366
fi
 
367
 
 
368
AC_SUBST(CC)
 
369
AC_SUBST(CFLAGS)
 
370
AC_SUBST(CXX)
 
371
AC_SUBST(CXXFLAGS)
 
372
AC_SUBST(ASFLAGS)
 
373
AC_SUBST(LD)
 
374
AC_SUBST(INSTALL_SCRIPT)
 
375
 
 
376
 
 
377
export CC CXX CFLAGS LD LDFLAGS AR ARFLAGS
 
378
 
 
379
if test "$GCC" = "yes"
 
380
then
 
381
  # Disable exceptions as they seams to create problems with gcc and threads.
 
382
  # drizzled doesn't use run-time-type-checking, so we disable it.
 
383
  AM_CXXFLAGS="${AM_CXXFLAGS} -fno-exceptions"
 
384
fi
 
385
 
 
386
DRIZZLE_PROG_AR
43
387
 
44
388
# libdrizzle versioning when linked with GNU ld.
45
 
AS_IF([test "$lt_cv_prog_gnu_ld" = "yes"],[
 
389
if $LD --version 2>/dev/null|grep -q GNU; then
46
390
  LD_VERSION_SCRIPT="-Wl,--version-script=\$(top_srcdir)/libdrizzle/libdrizzle.ver"
47
 
  ])
 
391
fi
48
392
AC_SUBST(LD_VERSION_SCRIPT)
49
393
 
50
 
 
51
 
dnl Set the default datadir location to /usr/local/var/drizzle. If a
52
 
dnl localstatedir is explicitly given, just use that.
53
 
AS_IF([test "x${localstatedir}" = 'x${prefix}/var'],[
54
 
  localstatedir='${prefix}/var/drizzle'
55
 
])
56
 
 
57
 
AC_PATH_PROG(GPERF, gperf)
58
 
AS_IF([test "x$GPERF" = "x"],
59
 
      AC_MSG_ERROR("Drizzle requires gperf to build."))
60
 
 
61
 
AC_CHECK_PROGS(YACC, ['bison -y'])
62
 
AS_IF([test "x$YACC" = "x" -a "$pandora_building_from_bzr" = "yes"],[
63
 
  AC_MSG_ERROR(["bison is required for Drizzle to build from a bzr branch"])
64
 
])
65
 
 
66
 
# libexecinfo provides backtrace_symbols on FreeBSD
67
 
AC_SEARCH_LIBS(backtrace_symbols, [execinfo])
68
 
 
69
 
PANDORA_RUN_CPPLINT
70
 
 
71
 
PANDORA_REQUIRE_LIBPROTOBUF
72
 
PANDORA_PROTOBUF_REQUIRE_VERSION([2.1.0])
73
 
PANDORA_REQUIRE_PROTOC
74
 
 
75
 
AC_LANG_PUSH(C++)
76
 
PANDORA_REQUIRE_PTHREAD
77
 
PANDORA_REQUIRE_LIBUUID
78
 
PANDORA_REQUIRE_LIBZ
79
 
PANDORA_REQUIRE_LIBPCRE
80
 
PANDORA_REQUIRE_LIBREADLINE
81
 
PANDORA_REQUIRE_LIBDL
82
 
AC_LANG_POP
83
 
 
84
 
DRIZZLE_STACK_DIRECTION
85
 
 
86
 
PANDORA_USE_BETTER_MALLOC
87
 
 
88
 
PANDORA_DRIZZLE_BUILD
89
 
AC_DEFINE([BUILDING_DRIZZLED],[1],
90
 
          [Define indicating we are building and not consuming drizzle.])
91
 
 
92
 
PANDORA_HAVE_LIBGTEST
93
 
PANDORA_HAVE_LIBSQLITE3
94
 
 
95
 
AC_CHECK_FUNC(inet_ntoa, [], [AC_CHECK_LIB(nsl, inet_ntoa)])
 
394
#--------------------------------------------------------------------
 
395
# Check for Google Proto Buffers
 
396
#--------------------------------------------------------------------
 
397
 
 
398
AC_LANG_PUSH([C++])
 
399
AC_CHECK_HEADERS([google/protobuf/message.h])
 
400
if test "x$ac_cv_header_google_protobuf_message_h" != "xyes"
 
401
then
 
402
  AC_MSG_ERROR([Couldn't find message.h. Try installing Google Protocol Buffer development packages])
 
403
fi
 
404
 
 
405
save_CFLAGS="$CFLAGS"
 
406
save_LIBS="$LIBS"
 
407
CFLAGS=""
 
408
LIBS="-lprotobuf"
 
409
 
 
410
AC_CACHE_CHECK([for Message in libprotobuf], ac_libprotobuf_works, [
 
411
  AC_TRY_LINK([
 
412
#include <google/protobuf/descriptor.pb.h>
 
413
  ],[
 
414
    google::protobuf::FileDescriptorProto testFdp;
 
415
  ], ac_libprotobuf_works=yes, [
 
416
        AC_ERROR([could not find Google's libprotobuf])
 
417
  ])
 
418
 
 
419
])
 
420
 
 
421
PROTOBUF_LIBS="${LIBS}"
 
422
AC_SUBST(PROTOBUF_LIBS)
 
423
CFLAGS="$save_CFLAGS"
 
424
LIBS="$save_LIBS"
 
425
AC_LANG_POP()
 
426
 
 
427
#--------------------------------------------------------------------
 
428
# Check for libevent
 
429
#--------------------------------------------------------------------
 
430
 
 
431
AC_MSG_CHECKING(for libevent)
 
432
AC_ARG_WITH(libevent,
 
433
  [AS_HELP_STRING([--with-libevent],
 
434
       [Use libevent build directory])],
 
435
  [ with_libevent=$withval ],
 
436
  [ with_libevent=yes ])
 
437
 
 
438
if test "$with_libevent" = "yes"
 
439
then
 
440
    AC_CHECK_HEADERS(event.h)
 
441
    if test "x$ac_cv_header_event_h" != "xyes"
 
442
    then
 
443
      AC_MSG_ERROR([Couldn't find event.h. Try installing libevent development packages])
 
444
    fi
 
445
    my_save_LIBS="$LIBS"
 
446
    LIBS=""
 
447
    AC_CHECK_LIB(event, event_loop, [], [AC_MSG_ERROR(could not find libevent)])
 
448
    LIBEVENT_LIBS="${LIBS}"
 
449
    LIBS="${my_save_LIBS}"
 
450
    LIBEVENT_CFLAGS=""
 
451
else
 
452
    AC_MSG_RESULT($withval)
 
453
    if test -f $withval/event.h -a -f $withval/libevent.a; then
 
454
       owd=`pwd`
 
455
       if cd $withval; then withval=`pwd`; cd $owd; fi
 
456
       LIBEVENT_CFLAGS="-I$withval"
 
457
       LIBEVENT_LIBS="-L$withval -levent"
 
458
    elif test -f $withval/include/event.h -a -f $withval/lib/libevent.a; then
 
459
       owd=`pwd`
 
460
       if cd $withval; then withval=`pwd`; cd $owd; fi
 
461
       LIBEVENT_CFLAGS="-I$withval/include"
 
462
       LIBEVENT_LIBS="-L$withval/lib -levent"
 
463
    else
 
464
       AC_MSG_ERROR([event.h or libevent.a not found in $withval])
 
465
    fi
 
466
fi
 
467
 
 
468
AC_SUBST(LIBEVENT_CFLAGS)
 
469
AC_SUBST(LIBEVENT_LIBS)
 
470
 
 
471
AC_CACHE_CHECK([for bufferevent in libevent], ac_libevent_works, [
 
472
  save_CFLAGS="$CFLAGS"
 
473
  save_LIBS="$LIBS"
 
474
  CFLAGS="$LIBEVENT_CFLAGS"
 
475
  LIBS="$LIBEVENT_LIBS"
 
476
  AC_TRY_LINK([
 
477
#include <sys/types.h>
 
478
#include <sys/time.h>
 
479
#include <stdlib.h>
 
480
#include <event.h>],[
 
481
        struct bufferevent bev;
 
482
        bufferevent_settimeout(&bev, 1, 1);
 
483
  ], ac_libevent_works=yes, [
 
484
        AC_ERROR([you need to install a more recent version of libevent,
 
485
        check http://www.monkey.org/~provos/libevent/])
 
486
  ])
 
487
 
 
488
  CFLAGS="$save_CFLAGS"
 
489
  LIBS="$save_LIBS"
 
490
])
 
491
 
 
492
 
 
493
#--------------------------------------------------------------------
 
494
# Check for libpthread
 
495
#--------------------------------------------------------------------
 
496
 
 
497
AC_CHECK_HEADERS(pthread.h)
 
498
if test "x$ac_cv_header_pthread_h" != "xyes"
 
499
then
 
500
  AC_MSG_ERROR([Couldn't find pthread.h.])
 
501
fi
 
502
AC_CHECK_LIB(pthread, pthread_create, [], [AC_MSG_ERROR(could not find libpthread)])
 
503
 
 
504
#--------------------------------------------------------------------
 
505
# Check for tcmalloc
 
506
#--------------------------------------------------------------------
 
507
 
 
508
AC_ARG_ENABLE([tcmalloc],
 
509
    [AS_HELP_STRING([--enable-tcmalloc],
 
510
       [Enable linking with tcmalloc @<:@default=off@:>@])],
 
511
    [ac_enable_tcmalloc="$enableval"],
 
512
    [ac_enable_tcmalloc="no"])
 
513
 
 
514
if test "x$ac_enable_tcmalloc" = "xyes"
 
515
then
 
516
  AC_CHECK_LIB(tcmalloc,malloc,[],[])
 
517
fi
 
518
 
 
519
#--------------------------------------------------------------------
 
520
# Check for libz
 
521
#--------------------------------------------------------------------
 
522
 
 
523
my_save_LIBS="$LIBS"
 
524
LIBS=""
 
525
AC_CHECK_HEADERS(zlib.h)
 
526
if test "x$ac_cv_header_zlib_h" != "xyes"
 
527
then
 
528
  AC_MSG_ERROR([Couldn't find zlib.h. Try installing zlib development packages])
 
529
fi
 
530
AC_CHECK_LIB(z, crc32, [], [AC_MSG_ERROR(could not find libz)])
 
531
ZLIB_LIBS="$LIBS"
 
532
LIBS="$my_save_LIBS"
 
533
AC_SUBST(ZLIB_LIBS)
 
534
 
 
535
 
 
536
#--------------------------------------------------------------------
 
537
# Check for libreadline or compatible (libedit on Mac OS X)
 
538
#--------------------------------------------------------------------
 
539
 
 
540
AC_CHECK_HEADERS(readline/history.h readline/readline.h)
 
541
if test "x$ac_cv_header_readline_readline_h" != "xyes"
 
542
then
 
543
  AC_MSG_ERROR([Couldn't find readline/readline.h. Try installing readline development packages.])
 
544
fi
 
545
AC_CHECK_TYPES([HIST_ENTRY], [], [], [AC_INCLUDES_DEFAULT[
 
546
#ifdef HAVE_READLINE_HISTORY_H
 
547
#include <readline/history.h>
 
548
#endif
 
549
#include <readline/readline.h>
 
550
]])
 
551
AC_CHECK_DECLS([completion_matches], [], [], [AC_INCLUDES_DEFAULT[
 
552
#ifdef HAVE_READLINE_HISTORY_H
 
553
#include <readline/history.h>
 
554
#endif
 
555
#include <readline/readline.h>
 
556
]])
 
557
 
 
558
DRIZZLE_CHECK_NEW_RL_INTERFACE
 
559
 
 
560
my_save_LIBS="$LIBS"
 
561
LIBS=""
 
562
AC_CHECK_LIB(readline, rl_initialize, [],
 
563
  [AC_CHECK_LIB(ncurses, tgetent, [], [AC_MSG_ERROR(Couldn't find ncurses)]) 
 
564
   AC_SEARCH_LIBS(rl_initialize, readline, [],
 
565
    [AC_MSG_ERROR(Couldn't find libreadline.)])])
 
566
READLINE_LIBS="$LIBS"
 
567
LIBS="$my_save_LIBS"
 
568
AC_SUBST(READLINE_LIBS)
 
569
 
 
570
 
 
571
#--------------------------------------------------------------------
 
572
# Check for libpcre
 
573
#--------------------------------------------------------------------
 
574
 
 
575
AC_LANG_PUSH([C++])
 
576
AC_PATH_PROG(PKG_CONFIG, pkg-config, AC_MSG_ERROR([pkg-config wasn't found.]))
 
577
PKG_CHECK_MODULES(PCRE, [libpcrecpp >= 3], [found_pcre="yes"],[found_pcre="no"])
 
578
 
 
579
if test "$found_pcre" = "no"
 
580
then
 
581
  dnl Only check the header here, because autoconf can't handle
 
582
  dnl checking for C++ methods without C linkages
 
583
  AC_CHECK_HEADERS(pcrecpp.h)
 
584
  if test "x$ac_cv_header_pcrecpp_h" != "xyes" 
 
585
  then
 
586
    AC_MSG_ERROR([Couldn't find pcrecpp.h. Try installing the development package associated with libpcre on your system.])
 
587
  else
 
588
    # Found headers, now see if we can link
 
589
    AC_MSG_CHECKING(for libpcrecpp)
 
590
    save_LDFLAGS="$LDFLAGS"
 
591
    LDFLAGS="-lpcrecpp -lpcre"
 
592
    AC_TRY_LINK([
 
593
#include <pcrecpp.h>
 
594
    ],
 
595
    [pcrecpp::RE_Options opt;],
 
596
    [found_pcre="yes"],
 
597
    [AC_MSG_ERROR([Couldn't link libpcrecpp])])
 
598
 
 
599
    PCRE_LIBS="$LDFLAGS"
 
600
    LDFLAGS="$save_LDFLAGS"
 
601
    AC_MSG_RESULT([yes])
 
602
  fi
 
603
fi
 
604
AC_LANG_POP([])
 
605
AC_SUBST(PCRE_LIBS)
 
606
AC_SUBST(PCRE_CFLAGS)
 
607
 
 
608
dnl Find paths to some shell programs
 
609
AC_PATH_PROG(LN, ln, ln)
 
610
# This must be able to take a -f flag like normal unix ln.
 
611
AC_PATH_PROG(LN_CP_F, ln, ln)
 
612
 
 
613
AC_PATH_PROG(MV, mv, mv)
 
614
AC_PATH_PROG(RM, rm, rm)
 
615
AC_PATH_PROG(CP, cp, cp)
 
616
AC_PATH_PROG(SED, sed, sed)
 
617
AC_PATH_PROG(CMP, cmp, cmp)
 
618
AC_PATH_PROG(CHMOD, chmod, chmod)
 
619
AC_PATH_PROG(HOSTNAME, hostname, hostname)
 
620
# Check for a GNU tar named 'gtar', or 'gnutar' (MacOS X) and
 
621
# fall back to 'tar' otherwise and hope that it's a GNU tar as well
 
622
AC_CHECK_PROGS(TAR, gnutar gtar tar)
 
623
 
 
624
dnl We use a path for perl so the script startup works
 
625
dnl We make sure to use perl, not perl5, in hopes that the RPMs will
 
626
dnl not depend on the perl5 binary being installed (probably a bug in RPM)
 
627
AC_PATH_PROG(PERL, perl, no)
 
628
if test "$PERL" != "no" && $PERL -e 'require 5' > /dev/null 2>&1
 
629
then
 
630
  PERL5=$PERL
 
631
else
 
632
  AC_PATH_PROG(PERL5, perl5, no)
 
633
  if test "$PERL5" != no
 
634
  then
 
635
    PERL=$PERL5
 
636
    ac_cv_path_PERL=$ac_cv_path_PERL5
 
637
  fi
 
638
fi
 
639
 
 
640
AC_SUBST(HOSTNAME)
 
641
AC_SUBST(PERL)
 
642
AC_SUBST(PERL5)
 
643
 
 
644
# icheck, used for ABI check
 
645
AC_PATH_PROG(ICHECK, icheck, no)
 
646
# "icheck" is also the name of a file system check program on Tru64.
 
647
# Verify the program found is really the interface checker.
 
648
if test "x$ICHECK" != "xno"
 
649
then
 
650
  AC_MSG_CHECKING(if $ICHECK works as expected)
 
651
  echo "int foo;" > conftest.h
 
652
  $ICHECK --canonify -o conftest.ic conftest.h 2>/dev/null
 
653
  if test -f "conftest.ic"
 
654
  then
 
655
    AC_MSG_RESULT(yes)
 
656
  else
 
657
    AC_MSG_RESULT(no)
 
658
    ICHECK=no
 
659
  fi
 
660
  rm -f conftest.ic conftest.h
 
661
fi
 
662
AC_SUBST(ICHECK)
 
663
 
 
664
# Lock for PS
 
665
AC_PATH_PROG(PS, ps, ps)
 
666
AC_MSG_CHECKING("how to check if pid exists")
 
667
PS=$ac_cv_path_PS
 
668
# Linux style
 
669
if $PS p $$ 2> /dev/null | grep `echo $0 | sed s/\-//` > /dev/null
 
670
then
 
671
  FIND_PROC="$PS p \$\$PID | grep -v grep | grep \$\$MYSQLD > /dev/null"
 
672
# Solaris
 
673
elif $PS -fp $$ 2> /dev/null | grep $0 > /dev/null
 
674
then
 
675
  FIND_PROC="$PS -p \$\$PID | grep -v grep | grep \$\$MYSQLD > /dev/null"
 
676
# BSD style
 
677
elif $PS -uaxww 2> /dev/null | grep $0 > /dev/null
 
678
then
 
679
  FIND_PROC="$PS -uaxww | grep -v grep | grep \$\$MYSQLD | grep \" \$\$PID \" > /dev/null"
 
680
# SysV style
 
681
elif $PS -ef 2> /dev/null | grep $0 > /dev/null
 
682
then
 
683
  FIND_PROC="$PS -ef | grep -v grep | grep \$\$MYSQLD | grep \" \$\$PID \" > /dev/null"
 
684
# Do anybody use this?
 
685
elif $PS $$ 2> /dev/null | grep $0 > /dev/null
 
686
then
 
687
  FIND_PROC="$PS \$\$PID | grep -v grep | grep \$\$MYSQLD > /dev/null"
 
688
else
 
689
  case $SYSTEM_TYPE in
 
690
    *freebsd*|*dragonfly*|*cygwin*)
 
691
      FIND_PROC="$PS p \$\$PID | grep -v grep | grep \$\$MYSQLD > /dev/null"
 
692
      ;;
 
693
    *darwin*)
 
694
      FIND_PROC="$PS -uaxww | grep -v grep | grep \$\$MYSQLD | grep \" \$\$PID \" > /dev/null"
 
695
      ;;
 
696
    *)
 
697
      AC_MSG_ERROR([Could not find the right ps switches. Which OS is this ?. See the Installation chapter in the Reference Manual.])
 
698
      ;;
 
699
  esac
 
700
fi
 
701
AC_SUBST(FIND_PROC)
 
702
AC_MSG_RESULT("$FIND_PROC")
 
703
 
 
704
# Check if a pid is valid
 
705
AC_PATH_PROG(KILL, kill, kill)
 
706
AC_MSG_CHECKING("for kill switches")
 
707
if $ac_cv_path_KILL -0 $$
 
708
then
 
709
  CHECK_PID="$ac_cv_path_KILL -0 \$\$PID > /dev/null 2> /dev/null"
 
710
elif kill -s 0 $$
 
711
then
 
712
  CHECK_PID="$ac_cv_path_KILL -s 0 \$\$PID > /dev/null 2> /dev/null"
 
713
else
 
714
  AC_MSG_WARN([kill -0 to check for pid seems to fail])
 
715
    CHECK_PID="$ac_cv_path_KILL -s SIGCONT \$\$PID > /dev/null 2> /dev/null"
 
716
fi
 
717
AC_SUBST(CHECK_PID)
 
718
AC_MSG_RESULT("$CHECK_PID")
 
719
 
 
720
# We need an ANSI C compiler
 
721
AM_PROG_CC_STDC
 
722
 
 
723
# We need an assembler, too
 
724
AM_PROG_AS
 
725
CCASFLAGS="$CCASFLAGS $ASFLAGS"
 
726
 
 
727
# Check if we need noexec stack for assembler
 
728
AC_CHECK_NOEXECSTACK
 
729
 
 
730
if test "$am_cv_prog_cc_stdc" = "no"
 
731
then
 
732
  AC_MSG_ERROR([Drizzle requires an ANSI C compiler (and a C++ compiler). Try gcc. See the Installation chapter in the Reference Manual.])
 
733
fi
96
734
 
97
735
 
98
736
AC_ARG_WITH([server-suffix],
99
737
    [AS_HELP_STRING([--with-server-suffix],
100
738
      [Append value to the version string.])],
101
 
    [ DRIZZLE_SERVER_SUFFIX="$withval" ]
102
 
    [ DRIZZLE_SERVER_SUFFIX= ])
103
 
 
104
 
AC_DEFINE_UNQUOTED([DRIZZLE_SERVER_SUFFIX],[$DRIZZLE_SERVER_SUFFIX],
105
 
                   [Append value to the version string])
106
 
 
107
 
 
108
 
AC_ARG_WITH([drizzled-user],
109
 
    [AS_HELP_STRING([--with-drizzled-user=username],
110
 
            [What user the drizzled daemon shall be run as.
111
 
                @<:@default=drizzle@:>@])],
112
 
    [ DRIZZLED_USER="$withval" ],
113
 
    [ DRIZZLED_USER=drizzle ])
114
 
AC_SUBST(DRIZZLED_USER)
115
 
 
 
739
    [ DRIZZLE_SERVER_SUFFIX=`echo "$withval" | sed -e  's/^\(...................................\)..*$/\1/'` ],
 
740
    [ DRIZZLE_SERVER_SUFFIX= ]
 
741
    )
 
742
AC_SUBST(DRIZZLE_SERVER_SUFFIX)
 
743
 
 
744
# Force use of a curses libs
 
745
AC_ARG_WITH([named-curses-libs],
 
746
    [AS_HELP_STRING([--with-named-curses-libs=ARG],
 
747
            [Use specified curses libraries instead of those
 
748
                automatically found by configure.])],
 
749
    [ with_named_curses=$withval ],
 
750
    [ with_named_curses=no ]
 
751
    )
 
752
 
 
753
AC_ARG_WITH([tcp-port],
 
754
    [AS_HELP_STRING([--with-tcp-port=port-number],
 
755
            [Which port to use for Drizzle services @<:@default=4427@:>@])],
 
756
    [ DRIZZLE_TCP_PORT=$withval ],
 
757
    [ DRIZZLE_TCP_PORT=$DRIZZLE_TCP_PORT_DEFAULT
 
758
      # if we actually defaulted (as opposed to the pathological case of
 
759
      # --with-tcp-port=<DRIZZLE_TCP_PORT_DEFAULT> which might in theory
 
760
      # happen if whole batch of servers was built from a script), set
 
761
      # the default to zero to indicate that; we don't lose information
 
762
      # that way, because 0 obviously indicates that we can get the
 
763
      # default value from DRIZZLE_TCP_PORT. this seems really evil, but
 
764
      # testing for DRIZZLE_TCP_PORT==DRIZZLE_TCP_PORT_DEFAULT would make a
 
765
      # a port of DRIZZLE_TCP_PORT_DEFAULT magic even if the builder did not
 
766
      # intend it to mean "use the default, in fact, look up a good default
 
767
      # from /etc/services if you can", but really, really meant 4427 when
 
768
      # they passed in 4427. When they pass in a specific value, let them
 
769
      # have it; don't second guess user and think we know better, this will
 
770
      # just make people cross.  this makes the the logic work like this
 
771
      # (which is complicated enough):
 
772
      #
 
773
      # - if a port was set during build, use that as a default.
 
774
      #
 
775
      # - otherwise, try to look up a port in /etc/services; if that fails,
 
776
      #   use DRIZZLE_TCP_PORT_DEFAULT (at the time of this writing 4427)
 
777
      #
 
778
      # - allow the DRIZZLE_TCP_PORT environment variable to override that.
 
779
      #
 
780
      # - allow command-line parameters to override all of the above.
 
781
      #
 
782
      # the top-most DRIZZLE_TCP_PORT_DEFAULT is read from win/configure.js,
 
783
      # so don't mess with that.
 
784
      DRIZZLE_TCP_PORT_DEFAULT=0 ]
 
785
    )
 
786
AC_SUBST(DRIZZLE_TCP_PORT)
 
787
# We might want to document the assigned port in the manual.
 
788
AC_SUBST(DRIZZLE_TCP_PORT_DEFAULT)
 
789
 
 
790
# Use this to set the place used for unix socket used to local communication.
 
791
AC_ARG_WITH([mysqld-user],
 
792
    [AS_HELP_STRING([--with-mysqld-user=username],
 
793
            [What user the mysqld daemon shall be run as.
 
794
                @<:@default=mysql@:>@])],
 
795
    [ MYSQLD_USER=$withval ],
 
796
    [ MYSQLD_USER=mysql ]
 
797
    )
 
798
AC_SUBST(MYSQLD_USER)
 
799
 
 
800
# If we should allow LOAD DATA LOCAL
 
801
AC_MSG_CHECKING(If we should should enable LOAD DATA LOCAL by default)
 
802
AC_ARG_ENABLE(local-infile,
 
803
    [  --enable-local-infile   Enable LOAD DATA LOCAL INFILE (default: disabled)],
 
804
    [ ENABLED_LOCAL_INFILE=$enableval ],
 
805
    [ ENABLED_LOCAL_INFILE=no ]
 
806
    )
 
807
if test "$ENABLED_LOCAL_INFILE" = "yes"
 
808
then
 
809
  AC_MSG_RESULT([yes])
 
810
  AC_DEFINE([ENABLED_LOCAL_INFILE], [1],
 
811
            [If LOAD DATA LOCAL INFILE should be enabled by default])
 
812
else
 
813
  AC_MSG_RESULT([no])
 
814
fi
 
815
 
 
816
AC_SYS_LARGEFILE
 
817
AC_FUNC_FSEEKO
 
818
 
 
819
# Types that must be checked AFTER large file support is checked
 
820
AC_TYPE_SIZE_T
 
821
 
 
822
#--------------------------------------------------------------------
 
823
# Check for system header files
 
824
#--------------------------------------------------------------------
 
825
 
 
826
AC_HEADER_DIRENT
 
827
AC_HEADER_STDC
 
828
AC_HEADER_SYS_WAIT
 
829
AC_HEADER_STDBOOL
 
830
AC_CHECK_HEADERS(fcntl.h float.h fpu_control.h ieeefp.h)
 
831
AC_CHECK_HEADERS(limits.h pwd.h select.h linux/config.h)
 
832
AC_CHECK_HEADERS(sys/fpu.h utime.h sys/utime.h )
 
833
AC_CHECK_HEADERS(synch.h sys/mman.h sys/socket.h netinet/in.h arpa/inet.h)
 
834
AC_CHECK_HEADERS(sys/timeb.h sys/vadvise.h sys/wait.h term.h)
 
835
AC_CHECK_HEADERS(termio.h termios.h sched.h alloca.h)
 
836
AC_CHECK_HEADERS(sys/ioctl.h malloc.h sys/malloc.h sys/ipc.h sys/shm.h)
 
837
AC_CHECK_HEADERS(sys/prctl.h sys/resource.h sys/param.h port.h ieeefp.h)
 
838
AC_CHECK_HEADERS(execinfo.h)
 
839
 
 
840
AC_CHECK_HEADERS([xfs/xfs.h])
 
841
 
 
842
#--------------------------------------------------------------------
 
843
# Check for system libraries. Adds the library to $LIBS
 
844
# and defines HAVE_LIBM etc
 
845
#--------------------------------------------------------------------
 
846
 
 
847
AC_CHECK_LIB(m, floor, [], AC_CHECK_LIB(m, __infinity))
 
848
 
 
849
AC_CHECK_FUNC(setsockopt, [], [AC_CHECK_LIB(socket, setsockopt)])
 
850
AC_CHECK_FUNC(yp_get_default_domain, [],
 
851
  [AC_CHECK_LIB(nsl, yp_get_default_domain)])
 
852
AC_CHECK_FUNC(p2open, [], [AC_CHECK_LIB(gen, p2open)])
 
853
# This may get things to compile even if bind-8 is installed
 
854
AC_CHECK_FUNC(bind, [], [AC_CHECK_LIB(bind, bind)])
 
855
# Check if crypt() exists in libc or libcrypt, sets LIBS if needed
 
856
AC_SEARCH_LIBS(crypt, crypt, AC_DEFINE(HAVE_CRYPT, 1, [crypt]))
 
857
 
 
858
# Check rt for aio_read
 
859
AC_CHECK_LIB(rt, aio_read)
 
860
 
 
861
# For the sched_yield() function on Solaris
 
862
AC_CHECK_FUNC(sched_yield, [],
 
863
  [AC_CHECK_LIB(posix4, [sched_yield],
 
864
    [AC_DEFINE(HAVE_SCHED_YIELD) LIBS="$LIBS -lposix4"])])
 
865
 
 
866
if test "$ac_cv_header_termio_h" = "no" -a "$ac_cv_header_termios_h" = "no"
 
867
then
 
868
  AC_CHECK_FUNC(gtty, [], [AC_CHECK_LIB(compat, gtty)])
 
869
fi
 
870
 
 
871
AC_CHECK_TYPES([fp_except], [], [], [
 
872
#include <sys/types.h>
 
873
#include <ieeefp.h>
 
874
])
 
875
 
 
876
my_save_LIBS="$LIBS"
 
877
LIBS=""
 
878
AC_CHECK_LIB(dl,dlopen)
 
879
AC_CHECK_FUNCS(dlopen dlerror)
 
880
if test "$ac_cv_func_dlopen" != "yes"
 
881
then
 
882
  AC_MSG_ERROR([Drizzle requires dlopen])
 
883
fi
 
884
LIBDL_LIBS="$LIBS"
 
885
LIBS="$my_save_LIBS"
 
886
AC_SUBST(LIBDL_LIBS)
 
887
 
 
888
AC_CHECK_FUNCS(strtok_r)
 
889
 
 
890
 
 
891
 
 
892
AC_ARG_WITH([fast-mutexes],
 
893
    [AS_HELP_STRING([--with-fast-mutexes],
 
894
            [Compile with fast mutexes  @<:@default=off@:>@])],
 
895
    [with_fast_mutexes=$withval],
 
896
    [with_fast_mutexes=no])
 
897
 
 
898
if test "$with_fast_mutexes" != "no"
 
899
then
 
900
        AC_DEFINE([MY_PTHREAD_FASTMUTEX], [1], 
 
901
                        [Define to 1 if you want to use fast mutexes])
 
902
fi
 
903
 
 
904
AM_CONDITIONAL(BUILD_FAST_MUTEX,[test "$with_fast_mutexes" != "no"])
116
905
 
117
906
AC_ARG_WITH([comment],
118
907
    [AS_HELP_STRING([--with-comment],
119
908
            [Comment about compilation environment. @<:@default=off@:>@])],
120
909
    [with_comment=$withval],
121
910
    [with_comment=no])
122
 
AS_IF([test "$with_comment" != "no"],[
 
911
if test "$with_comment" != "no"
 
912
then
123
913
  COMPILATION_COMMENT=$with_comment
124
 
],[
125
 
  COMPILATION_COMMENT="Source distribution (${PANDORA_RELEASE_COMMENT})"
 
914
else
 
915
  COMPILATION_COMMENT="Source distribution"
 
916
fi
 
917
AC_SUBST(COMPILATION_COMMENT)
 
918
 
 
919
if expr "$target_os" : "[[Ll]]inux.*" > /dev/null
 
920
then
 
921
  TARGET_LINUX="true"
 
922
  AC_DEFINE([TARGET_OS_LINUX], [1], [Whether we build for Linux])
 
923
else
 
924
  TARGET_LINUX="false"
 
925
fi
 
926
 
 
927
dnl Checks for typedefs, structures, and compiler characteristics.
 
928
AC_C_CONST
 
929
AC_C_INLINE
 
930
AC_TYPE_OFF_T
 
931
AC_HEADER_TIME
 
932
AC_STRUCT_TM
 
933
# off_t is not a builtin type
 
934
AC_CHECK_SIZEOF(off_t, 4)
 
935
if test "$ac_cv_sizeof_off_t" -eq 0
 
936
then
 
937
  AC_MSG_ERROR("Drizzle needs a off_t type.")
 
938
fi
 
939
 
 
940
dnl
 
941
dnl check if time_t is unsigned
 
942
dnl
 
943
 
 
944
DRIZZLE_CHECK_TIME_T
 
945
 
 
946
 
 
947
# This always gives a warning. Ignore it unless you are cross compiling
 
948
AC_C_BIGENDIAN
 
949
#---START: Used in for client configure
 
950
# Check base type of last arg to accept
 
951
DRIZZLE_TYPE_ACCEPT
 
952
#---END:
 
953
# Figure out what type of struct rlimit to use with setrlimit
 
954
DRIZZLE_TYPE_STRUCT_RLIMIT
 
955
# Find where the stack goes
 
956
DRIZZLE_STACK_DIRECTION
 
957
# We want to skip alloca on irix unconditionally. It may work on some version..
 
958
DRIZZLE_FUNC_ALLOCA
 
959
# Do struct timespec have members tv_sec or ts_sec
 
960
DRIZZLE_TIMESPEC_TS
 
961
# Do we have the tzname variable
 
962
DRIZZLE_TZNAME
 
963
# Do the c++ compiler have a bool type
 
964
DRIZZLE_CXX_BOOL
 
965
AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
 
966
AC_CHECK_TYPES([size_t], [], [], [#include <stdio.h>])
 
967
 
 
968
DRIZZLE_PTHREAD_YIELD
 
969
 
 
970
 
 
971
dnl Checks for header files.
 
972
AC_CHECK_HEADERS(malloc.h sys/cdefs.h)
 
973
 
 
974
dnl Checks for library functions.
 
975
AC_FUNC_ALLOCA
 
976
AC_PROG_GCC_TRADITIONAL
 
977
AC_TYPE_SIGNAL
 
978
AC_CHECK_FUNCS(re_comp regcomp strdup)
 
979
 
 
980
dnl Sun compilers have their own vis.h that is about something
 
981
dnl totally different. So, not to change the libedit source, we
 
982
dnl do some additional checks before we define HAVE_VIS_H.
 
983
AC_CHECK_HEADER(vis.h,
 
984
  [AC_CHECK_FUNC(strvis,
 
985
    [AC_DEFINE([HAVE_VIS_H], [1],[Found vis.h and the strvis() function])])])
 
986
 
 
987
AC_CHECK_FUNCS(strlcat strlcpy)
 
988
AC_CHECK_FUNCS(issetugid)
 
989
AC_CHECK_FUNCS(getline flockfile)
 
990
 
 
991
# from old readline settting:
 
992
 
 
993
MAKE_SHELL=/bin/sh
 
994
AC_SUBST(MAKE_SHELL)
 
995
 
 
996
# Already-done: stdlib.h string.h unistd.h termios.h
 
997
AC_CHECK_HEADERS(stdarg.h dirent.h locale.h ndir.h sys/dir.h \
 
998
 sys/file.h sys/ndir.h sys/ptem.h sys/pte.h sys/select.h sys/stream.h \
 
999
 sys/mman.h curses.h termcap.h termio.h termbits.h asm/termbits.h grp.h \
 
1000
paths.h semaphore.h)
 
1001
 
 
1002
# Already-done: strcasecmp
 
1003
AC_CHECK_FUNCS(lstat putenv select setenv setlocale strcoll tcgetattr)
 
1004
 
 
1005
AC_HEADER_STAT
 
1006
DRIZZLE_SIGNAL_CHECK
 
1007
DRIZZLE_CHECK_GETPW_FUNCS
 
1008
DRIZZLE_HAVE_TIOCGWINSZ
 
1009
DRIZZLE_HAVE_FIONREAD
 
1010
DRIZZLE_HAVE_TIOCSTAT
 
1011
DRIZZLE_STRUCT_DIRENT_D_INO
 
1012
DRIZZLE_STRUCT_DIRENT_D_NAMLEN
 
1013
DRIZZLE_TYPE_SIGHANDLER
 
1014
DRIZZLE_CHECK_MULTIBYTE
 
1015
if test "$with_named_curses" = "no"
 
1016
then
 
1017
  DRIZZLE_CHECK_LIB_TERMCAP
 
1018
else
 
1019
  TERMCAP_LIBS="$with_named_curses"
 
1020
fi
 
1021
AC_SUBST(TERMCAP_LIBS)
 
1022
 
 
1023
# Check if the termcap function 'tgoto' is already declared in
 
1024
# system header files or if it need to be declared locally
 
1025
AC_CHECK_DECLS(tgoto,,,[
 
1026
#ifdef HAVE_CURSES_H
 
1027
# include <curses.h>
 
1028
#elif HAVE_NCURSES_H
 
1029
# include <ncurses.h>
 
1030
#endif
 
1031
#ifdef HAVE_TERM_H
 
1032
# include <term.h>
 
1033
#endif
126
1034
])
127
 
AC_DEFINE_UNQUOTED([COMPILATION_COMMENT],["$COMPILATION_COMMENT"],
128
 
                   [Comment about compilation environment])
129
 
 
130
 
 
 
1035
 
 
1036
# End of readline/libedit stuff
131
1037
#########################################################################
132
1038
 
133
 
 
134
 
dnl Has to be done late, as the plugin may need to check for existence of
135
 
dnl functions tested above
136
 
PANDORA_PLUGINS([drizzled/module/load_list.h])
 
1039
dnl Checks for library functions.
 
1040
 
 
1041
#
 
1042
# The following code disables intrinsic function support while we test for
 
1043
# library functions.  This is to avoid configure problems with Intel ecc
 
1044
# compiler
 
1045
 
 
1046
ORG_CFLAGS="$CFLAGS"
 
1047
if test "$GCC" != "yes"; then
 
1048
  AC_SYS_COMPILER_FLAG(-nolib_inline,nolib_inline,CFLAGS,[],[])
 
1049
fi
 
1050
 
 
1051
#AC_FUNC_MMAP
 
1052
AC_TYPE_SIGNAL
 
1053
DRIZZLE_TYPE_QSORT
 
1054
AC_FUNC_UTIME_NULL
 
1055
AC_FUNC_VPRINTF
 
1056
 
 
1057
AC_CHECK_FUNCS(fcntl)
 
1058
if test "x$ac_cv_func_fcntl" != "xyes"
 
1059
then
 
1060
  AC_MSG_ERROR("Drizzle requires fcntl.")
 
1061
fi
 
1062
 
 
1063
AC_CONFIG_LIBOBJ_DIR([mystrings])
 
1064
 
 
1065
AC_CHECK_FUNCS(bsearch \
 
1066
  cuserid fchmod \
 
1067
  fdatasync finite fpresetsticky fpsetmask fsync ftruncate \
 
1068
  getcwd getpassphrase getpwnam \
 
1069
  getpwuid getrlimit getrusage getwd index initgroups isnan \
 
1070
  localtime_r gethrtime gmtime_r \
 
1071
  locking longjmp lrand48 madvise mallinfo \
 
1072
  memmove \
 
1073
  mkstemp mlockall perror poll pread pthread_attr_create mmap mmap64 \
 
1074
  pthread_attr_getstacksize pthread_attr_setprio pthread_attr_setschedparam \
 
1075
  pthread_attr_setstacksize pthread_condattr_create pthread_getsequence_np \
 
1076
  pthread_key_delete pthread_rwlock_rdlock pthread_setprio \
 
1077
  pthread_setprio_np pthread_setschedparam pthread_sigmask readlink \
 
1078
  realpath rename rwlock_init setupterm \
 
1079
  shmget shmat shmdt shmctl sigaction sigemptyset sigaddset \
 
1080
  sighold sigset sigthreadmask port_create sleep \
 
1081
  snprintf socket strcasecmp strerror strsignal strpbrk \
 
1082
  tell tempnam vidattr \
 
1083
  posix_fallocate backtrace backtrace_symbols backtrace_symbols_fd)
 
1084
 
 
1085
AC_LANG_PUSH(C++)
 
1086
# Test whether madvise() is declared in C++ code -- it is not on some
 
1087
# systems, such as Solaris
 
1088
AC_CHECK_DECLS([madvise], [], [], [AC_INCLUDES_DEFAULT[
 
1089
#if HAVE_SYS_MMAN_H
 
1090
#include <sys/types.h>
 
1091
#include <sys/mman.h>
 
1092
#endif
 
1093
]])
 
1094
AC_LANG_POP()
 
1095
 
 
1096
 
 
1097
AM_CONDITIONAL(BUILD_THR_RWLOCK,[test "$ac_cv_func_rwlock_init" -a "$ac_cv_funn_pthread_rwlock_rdlock"])
 
1098
 
 
1099
# Check that isinf() is available in math.h and can be used in both C and C++
 
1100
# code
 
1101
AC_MSG_CHECKING(for isinf in math.h)
 
1102
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <math.h>]], [[
 
1103
    float f = 0.0; 
 
1104
    int r = isinf(f); 
 
1105
    return r;
 
1106
  ]])],[
 
1107
    AC_MSG_RESULT(yes)
 
1108
    AC_MSG_CHECKING(whether isinf() can be used in C++ code)
 
1109
    AC_LANG_PUSH([C++])
 
1110
    AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <math.h>]], [[
 
1111
      float f = 0.0;
 
1112
      int r = isinf(f);
 
1113
      return r;
 
1114
    ]])],[
 
1115
      AC_MSG_RESULT(yes)
 
1116
      AC_DEFINE(HAVE_ISINF, [1], [isinf() macro or function])
 
1117
    ],[
 
1118
      AC_MSG_RESULT(no)
 
1119
    ])
 
1120
    AC_LANG_POP([])
 
1121
  ],[
 
1122
  AC_MSG_RESULT(no)])
 
1123
 
 
1124
 
 
1125
CFLAGS="$ORG_CFLAGS"
 
1126
 
 
1127
# Sanity check: We chould not have any fseeko symbol unless
 
1128
# large_file_support=yes
 
1129
AC_CHECK_FUNC(fseeko,
 
1130
[if test "$large_file_support" = no -a "$TARGET_LINUX" = "true";
 
1131
then
 
1132
  AC_MSG_ERROR("Found fseeko symbol but large_file_support is not enabled!")
 
1133
fi]
 
1134
)
 
1135
 
 
1136
# Check definition of pthread_getspecific
 
1137
AC_CACHE_CHECK([args to pthread_getspecific], [mysql_cv_getspecific_args],
 
1138
  [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#if !defined(_REENTRANT)
 
1139
#define _REENTRANT
 
1140
#endif
 
1141
#define _POSIX_PTHREAD_SEMANTICS 
 
1142
#include <pthread.h> ]], [[ void *pthread_getspecific(pthread_key_t key);
 
1143
pthread_getspecific((pthread_key_t) NULL); ]])],
 
1144
    [mysql_cv_getspecific_args=POSIX],
 
1145
    [mysql_cv_getspecific_args=other])])
 
1146
  if test "$mysql_cv_getspecific_args" = "other"
 
1147
  then
 
1148
    AC_DEFINE([HAVE_NONPOSIX_PTHREAD_GETSPECIFIC], [1],
 
1149
              [For some non posix threads])
 
1150
  fi
 
1151
 
 
1152
  # Check definition of pthread_mutex_init
 
1153
  AC_CACHE_CHECK([args to pthread_mutex_init], [mysql_cv_mutex_init_args],
 
1154
    [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#define _REENTRANT
 
1155
#define _POSIX_PTHREAD_SEMANTICS 
 
1156
#include <pthread.h> ]], [[ 
 
1157
  pthread_mutexattr_t attr;
 
1158
  pthread_mutex_t mp;
 
1159
  pthread_mutex_init(&mp,&attr); ]])],
 
1160
      [mysql_cv_mutex_init_args=POSIX],
 
1161
      [mysql_cv_mutex_init_args=other])])
 
1162
  if test "$mysql_cv_mutex_init_args" = "other"
 
1163
  then
 
1164
    AC_DEFINE([HAVE_NONPOSIX_PTHREAD_MUTEX_INIT], [1],
 
1165
              [For some non posix threads])
 
1166
  fi
 
1167
#---END:
 
1168
 
 
1169
#---START: Used in for client configure
 
1170
# Check definition of readdir_r
 
1171
AC_CACHE_CHECK([args to readdir_r], [mysql_cv_readdir_r],
 
1172
  [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define _REENTRANT
 
1173
#define _POSIX_PTHREAD_SEMANTICS 
 
1174
#include <pthread.h>
 
1175
#include <dirent.h>]], [[ int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);
 
1176
readdir_r((DIR *) NULL, (struct dirent *) NULL, (struct dirent **) NULL); ]])],
 
1177
    [mysql_cv_readdir_r=POSIX],
 
1178
    [mysql_cv_readdir_r=other])])
 
1179
if test "$mysql_cv_readdir_r" = "POSIX"
 
1180
then
 
1181
  AC_DEFINE([HAVE_READDIR_R], [1], [POSIX readdir_r])
 
1182
fi
 
1183
 
 
1184
# Check definition of posix sigwait()
 
1185
AC_CACHE_CHECK([style of sigwait], [mysql_cv_sigwait],
 
1186
  [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
 
1187
#define _REENTRANT
 
1188
#define _POSIX_PTHREAD_SEMANTICS 
 
1189
#include <pthread.h>
 
1190
#include <signal.h>
 
1191
      ]], [[
 
1192
#ifndef _AIX
 
1193
sigset_t set;
 
1194
int sig;
 
1195
sigwait(&set,&sig);
 
1196
#endif
 
1197
      ]])],
 
1198
    [mysql_cv_sigwait=POSIX],
 
1199
    [mysql_cv_sigwait=other])])
 
1200
if test "$mysql_cv_sigwait" = "POSIX"
 
1201
then
 
1202
  AC_DEFINE([HAVE_SIGWAIT], [1], [POSIX sigwait])
 
1203
fi
 
1204
 
 
1205
if test "$mysql_cv_sigwait" != "POSIX"
 
1206
then
 
1207
unset mysql_cv_sigwait
 
1208
# Check definition of posix sigwait()
 
1209
AC_CACHE_CHECK([style of sigwait], [mysql_cv_sigwait],
 
1210
  [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
 
1211
#define _REENTRANT
 
1212
#define _POSIX_PTHREAD_SEMANTICS 
 
1213
#include <pthread.h>
 
1214
#include <signal.h>
 
1215
      ]], [[
 
1216
sigset_t set;
 
1217
int sig;
 
1218
sigwait(&set);
 
1219
      ]])],
 
1220
    [mysql_cv_sigwait=NONPOSIX],
 
1221
    [mysql_cv_sigwait=other])])
 
1222
if test "$mysql_cv_sigwait" = "NONPOSIX"
 
1223
then
 
1224
  AC_DEFINE([HAVE_NONPOSIX_SIGWAIT], [1], [sigwait with one argument])
 
1225
fi
 
1226
fi
 
1227
#---END:
 
1228
 
 
1229
# Check if pthread_attr_setscope() exists
 
1230
AC_CACHE_CHECK([for pthread_attr_setscope], [mysql_cv_pthread_attr_setscope],
 
1231
  [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
 
1232
#define _REENTRANT
 
1233
#define _POSIX_PTHREAD_SEMANTICS 
 
1234
#include <pthread.h>
 
1235
      ]], [[
 
1236
pthread_attr_t thr_attr;
 
1237
pthread_attr_setscope(&thr_attr,0);
 
1238
      ]])],
 
1239
    [mysql_cv_pthread_attr_setscope=yes],
 
1240
    [mysql_cv_pthread_attr_setscope=no])])
 
1241
if test "$mysql_cv_pthread_attr_setscope" = "yes"
 
1242
then
 
1243
  AC_DEFINE([HAVE_PTHREAD_ATTR_SETSCOPE], [1], [pthread_attr_setscope])
 
1244
fi
 
1245
 
 
1246
# Check for bad includes
 
1247
AC_MSG_CHECKING("can netinet files be included")
 
1248
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
 
1249
#include <sys/socket.h>
 
1250
#include <netinet/in_systm.h>
 
1251
#include <netinet/in.h>
 
1252
#include <netinet/ip.h>
 
1253
#include <netinet/tcp.h>]], [[ printf("1\n"); ]])],[netinet_inc=yes],[netinet_inc=no])
 
1254
if test "$netinet_inc" = "no"
 
1255
then
 
1256
  AC_DEFINE([HAVE_BROKEN_NETINET_INCLUDES], [1], [Can netinet be included])
 
1257
fi
 
1258
AC_MSG_RESULT("$netinet_inc")
 
1259
 
 
1260
AC_LANG_PUSH([C++])
 
1261
AC_CHECK_HEADERS(cxxabi.h)
 
1262
AC_CACHE_CHECK([checking for abi::__cxa_demangle], mysql_cv_cxa_demangle,
 
1263
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <cxxabi.h>]], [[
 
1264
  char *foo= 0; int bar= 0;
 
1265
  foo= abi::__cxa_demangle(foo, foo, 0, &bar);
 
1266
]])],[mysql_cv_cxa_demangle=yes],[mysql_cv_cxa_demangle=no])])
 
1267
AC_LANG_POP([])
 
1268
 
 
1269
if test "x$mysql_cv_cxa_demangle" = xyes; then
 
1270
  AC_DEFINE(HAVE_ABI_CXA_DEMANGLE, 1,
 
1271
            [Define to 1 if you have the `abi::__cxa_demangle' function.])
 
1272
fi
 
1273
 
 
1274
#--------------------------------------------------------------------
 
1275
# Check for requested features
 
1276
#--------------------------------------------------------------------
 
1277
 
 
1278
DRIZZLE_CHECK_BIG_TABLES
 
1279
DRIZZLE_CHECK_MAX_INDEXES
 
1280
DRIZZLE_CHECK_VIO
 
1281
 
 
1282
#--------------------------------------------------------------------
 
1283
# Declare our plugin modules
 
1284
# Has to be done late, as the plugin may need to check for existence of
 
1285
# functions tested above
 
1286
#--------------------------------------------------------------------
 
1287
 
 
1288
DRIZZLE_CONFIGURE_PLUGINS([none])
 
1289
 
 
1290
AC_SUBST(mysql_plugin_dirs)
 
1291
AC_SUBST(mysql_plugin_libs)
 
1292
AC_SUBST(mysql_plugin_defs)
 
1293
 
 
1294
# Build optimized or debug version ?
 
1295
# First check for gcc and g++
 
1296
if test "$ac_cv_c_compiler_gnu" = "yes"
 
1297
then
 
1298
  SYMBOLS_CFLAGS="-ggdb3"
 
1299
  DEBUG_OPTIMIZE_CC="-O0"
 
1300
  OPTIMIZE_CFLAGS="-O3"
 
1301
else
 
1302
  SYMBOLS_CFLAGS="-g"
 
1303
  DEBUG_OPTIMIZE_CC=""
 
1304
  OPTIMIZE_CFLAGS="-O"
 
1305
fi
 
1306
if test "$ac_cv_prog_cxx_g" = "yes"
 
1307
then
 
1308
  SYMBOLS_CXXFLAGS="-ggdb3"
 
1309
  DEBUG_OPTIMIZE_CXX="-O0"
 
1310
  OPTIMIZE_CXXFLAGS="-O3"
 
1311
else
 
1312
  SYMBOLS_CXXFLAGS="-g"
 
1313
  DEBUG_OPTIMIZE_CXX=""
 
1314
  OPTIMIZE_CXXFLAGS="-O"
 
1315
fi
 
1316
 
 
1317
dnl TODO: Remove this define once we are using 2.61 across the board.
 
1318
# AX_HEADER_ASSERT
 
1319
# ----------------
 
1320
# Check whether to enable assertions.
 
1321
AC_DEFUN([AX_HEADER_ASSERT],
 
1322
[
 
1323
  AC_MSG_CHECKING([whether to enable assertions])
 
1324
  AC_ARG_ENABLE([assert],
 
1325
    [AS_HELP_STRING([--disable-assert],
 
1326
       [Turn off assertions])],
 
1327
    [ac_cv_assert="no"],
 
1328
    [ac_cv_assert="yes"])
 
1329
  AC_MSG_RESULT([$ac_cv_assert])
 
1330
])
 
1331
 
 
1332
AX_HEADER_ASSERT
 
1333
 
 
1334
CFLAGS="${SYMBOLS_CFLAGS} ${CFLAGS}"
 
1335
CXXFLAGS="${SYMBOLS_CXXFLAGS} ${CXXFLAGS}"
 
1336
#CXXFLAGS="${SYMBOLS_CXXFLAGS} ${CXXFLAGS}  -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS"
 
1337
 
 
1338
AC_ARG_WITH([debug],
 
1339
    [AS_HELP_STRING([--with-debug],
 
1340
       [Add debug code/turns off optimizations (yes|no) @<:@default=no@:>@])],
 
1341
    [with_debug=$withval],
 
1342
    [with_debug=no])
 
1343
if test "$with_debug" = "yes"
 
1344
then
 
1345
  # Medium debug.
 
1346
  CFLAGS="$DEBUG_OPTIMIZE_CC $CFLAGS ${SAVE_CFLAGS}"
 
1347
  CXXFLAGS="$DEBUG_OPTIMIZE_CXX $CXXFLAGS ${SAVE_CXXFLAGS}"
 
1348
else
 
1349
  # Optimized version. No debug
 
1350
  CFLAGS="${OPTIMIZE_CFLAGS} ${CFLAGS} ${SAVE_CFLAGS}"
 
1351
  CXXFLAGS="$OPTIMIZE_CXXFLAGS $CXXFLAGS ${SAVE_CXXFLAGS}"
 
1352
fi
 
1353
 
 
1354
AC_ARG_ENABLE([profiling],
 
1355
    [AS_HELP_STRING([--enable-profiling],
 
1356
       [Toggle profiling @<:@default=off@:>@])],
 
1357
    [ac_profiling="$enableval"],
 
1358
    [ac_profiling="no"])
 
1359
 
 
1360
AC_ARG_ENABLE([coverage],
 
1361
    [AS_HELP_STRING([--enable-coverage],
 
1362
       [Toggle coverage @<:@default=off@:>@])],
 
1363
    [ac_coverage="$enableval"],
 
1364
    [ac_coverage="no"])
 
1365
 
 
1366
AC_ARG_ENABLE([pedantic-warnings],
 
1367
    [AS_HELP_STRING([--disable-pedantic-warnings],
 
1368
       [Toggle pedanticness @<:@default=on@:>@])],
 
1369
    [ac_warn_pedantic="$enableval"],
 
1370
    [ac_warn_pedantic="yes"])
 
1371
 
 
1372
AC_ARG_ENABLE([fail],
 
1373
    [AS_HELP_STRING([--disable-fail],
 
1374
       [Turn warnings into failures @<:@default=on@:>@])],
 
1375
    [ac_warn_fail="$enableval"],
 
1376
    [ac_warn_fail="yes"])
 
1377
 
 
1378
AC_ARG_ENABLE([unreachable],
 
1379
    [AS_HELP_STRING([--enable-unreachable],
 
1380
       [Enable warnings about unreachable code @<:@default=off@:>@])],
 
1381
    [ac_warn_unreachable="$enableval"],
 
1382
    [ac_warn_unreachable="no"])
 
1383
 
 
1384
AC_ARG_ENABLE([longlong-warnings],
 
1385
    [AS_HELP_STRING([--enable-longlong-warnings],
 
1386
       [Enable warnings about longlong in C++ @<:@default=off@:>@])],
 
1387
    [ac_warn_longlong="$enableval"],
 
1388
    [ac_warn_longlong="no"])
 
1389
 
 
1390
AC_ARG_ENABLE([strict-aliasing],
 
1391
    [AS_HELP_STRING([--enable-strict-aliasing],
 
1392
       [Enable warnings about stict-aliasing @<:@default=off@:>@])],
 
1393
    [ac_warn_strict_aliasing="$enableval"],
 
1394
    [ac_warn_strict_aliasing="no"])
 
1395
 
 
1396
 
 
1397
if test "$GCC" = "yes"
 
1398
then
 
1399
 
 
1400
  if test "$ac_warn_longlong" = "yes"
 
1401
  then
 
1402
    W_LONGLONG="-Wlong-long"
 
1403
  else
 
1404
    W_LONGLONG="-Wno-long-long"
 
1405
  fi
 
1406
 
 
1407
  if test "$ac_warn_strict_aliasing" = "yes"
 
1408
  then
 
1409
    W_STRICT_ALIASING="-Wstrict-aliasing"
 
1410
  else
 
1411
    W_STRICT_ALIASING="-Wno-strict-aliasing"
 
1412
  fi
 
1413
 
 
1414
  if test "$ac_profiling" = "yes"
 
1415
  then
 
1416
    GPROF_PROFILING="-pg"
 
1417
  else
 
1418
    GPROF_PROFILING=" "
 
1419
  fi
 
1420
 
 
1421
  if test "$ac_coverage" = "yes"
 
1422
  then
 
1423
    GPROF_COVERAGE="-fprofile-arcs -ftest-coverage"
 
1424
  else
 
1425
    GPROF_COVERAGE=" "
 
1426
  fi
 
1427
 
 
1428
  if test "$ac_warn_pedantic" = "yes"
 
1429
  then
 
1430
    GCC_PEDANTIC="-pedantic -Wundef -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls ${W_STRICT_ALIASING}"
 
1431
    GXX_PEDANTIC="-pedantic -Wundef -Wredundant-decls ${W_LONGLONG} ${W_STRICT_ALIASING}"
 
1432
  fi
 
1433
 
 
1434
  if test "$ac_warn_unreachable" = "yes"
 
1435
  then
 
1436
    W_UNREACHABLE="-Wunreachable-code"
 
1437
  fi
 
1438
 
 
1439
  if test "$ac_warn_fail" = "yes"
 
1440
  then
 
1441
    W_FAIL="-Werror"
 
1442
  fi
 
1443
 
 
1444
  BASE_WARNINGS="-W -Wall -Wextra"
 
1445
  GCC_WARNINGS="${C99_SUPPORT_HACK} ${BASE_WARNINGS} ${GCC_PEDANTIC} ${W_UNREACHABLE} ${W_FAIL} ${GPROF_PROFILING} ${GPROF_COVERAGE}"
 
1446
  GXX_WARNINGS="${BASE_WARNINGS} ${GXX_PEDANTIC} ${W_UNREACHABLE} ${W_FAIL} ${GPROF_PROFILING} ${GPROF_COVERAGE}"
 
1447
 
 
1448
  AM_CXXFLAGS="${GXX_WARNINGS} ${AM_CXXFLAGS}"
 
1449
  AM_CFLAGS="${GCC_WARNINGS} ${AM_CFLAGS}"
 
1450
fi
 
1451
 
 
1452
AC_SUBST([GLOBAL_CPPFLAGS],['-I$(top_srcdir) -I$(top_builddir)'])
 
1453
AC_SUBST([AM_CPPFLAGS],['${GLOBAL_CPPFLAGS}'])
 
1454
AC_SUBST([AM_CFLAGS])
 
1455
AC_SUBST([AM_CXXFLAGS])
 
1456
 
 
1457
# Some usefull subst
 
1458
AC_SUBST(CC)
 
1459
AC_SUBST(GXX)
 
1460
 
 
1461
# Set configuration options for make_binary_distribution
 
1462
case $SYSTEM_TYPE in
 
1463
  *netware*)
 
1464
    MAKE_BINARY_DISTRIBUTION_OPTIONS="$MAKE_BINARY_DISTRIBUTION_OPTIONS --no-strip"
 
1465
    ;;
 
1466
  *)
 
1467
    : # no change for other platforms yet
 
1468
    ;;
 
1469
esac
 
1470
AC_SUBST(MAKE_BINARY_DISTRIBUTION_OPTIONS)
137
1471
 
138
1472
dnl GCC Precompiled Header Support
139
 
dnl re-enable later
140
 
dnl AM_CONDITIONAL([BUILD_GCC_PCH],[test "$GCC" = "yes"])
141
 
AM_CONDITIONAL([BUILD_GCC_PCH],[test "no" = "yes"])
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
 
1473
AM_CONDITIONAL([GCC_PCH],[test "x$GCC" = "xyes"])
 
1474
 
 
1475
AC_CONFIG_FILES(Makefile extra/Makefile mysys/Makefile dnl
 
1476
 mystrings/Makefile storage/Makefile dnl
 
1477
 vio/Makefile po/Makefile.in dnl
 
1478
 libdrizzle/Makefile client/Makefile dnl
 
1479
 drizzled/Makefile dnl
 
1480
 drizzled/field/Makefile dnl
 
1481
 drizzled/serialize/Makefile dnl
 
1482
 drizzled/functions/Makefile dnl
 
1483
 drizzled/util/Makefile dnl
 
1484
 drizzled/sql_builtin.cc dnl
 
1485
 support-files/Makefile dnl
 
1486
 tests/Makefile tests/install_test_db dnl
 
1487
 drizzled/version.h plugin/Makefile dnl
 
1488
 drizzled/drizzled_safe support-files/libdrizzle.pc dnl
 
1489
 support-files/drizzle.server support-files/drizzle-log-rotate)
 
1490
 
 
1491
AC_CONFIG_COMMANDS([default], , test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h)
 
1492
 
 
1493
# Ensure that table handlers gets all modifications to CFLAGS/CXXFLAGS
 
1494
AC_CONFIG_COMMANDS_POST(ac_configure_args="$ac_configure_args CFLAGS='$CFLAGS' CXXFLAGS='$CXXFLAGS' AM_CFLAGS='$AM_CFLAGS' AM_CXXFLAGS='$AM_CXXFLAGS'")
167
1495
 
168
1496
AC_OUTPUT
169
1497
 
170
1498
echo "---"
171
 
echo "Configuration summary for $PACKAGE_NAME version $VERSION $PANDORA_RELEASE_COMMENT"
 
1499
echo "Configuration summary for $PACKAGE_NAME version $VERSION"
172
1500
echo ""
173
1501
echo "   * Installation prefix:       $prefix"
174
 
echo "   * System type:               $host_vendor-$host_os"
175
 
echo "   * pandora-build version:     PANDORA_CANONICAL_VERSION"
 
1502
echo "   * System type:               $SYSTEM_TYPE"
176
1503
echo "   * Host CPU:                  $host_cpu"
177
1504
echo "   * C Compiler:                $CC_VERSION"
178
 
echo "   * C++ Compiler:              $CXX_VERSION"
 
1505
echo "   * C++ Compiler:              $CXX"
 
1506
echo "   * Build auth_pam:            $ac_cv_header_security_pam_appl_h"
179
1507
echo "   * Assertions enabled:        $ac_cv_assert"
180
1508
echo "   * Debug enabled:             $with_debug"
181
1509
echo "   * Profiling enabled:         $ac_profiling"
182
1510
echo "   * Coverage enabled:          $ac_coverage"
183
 
echo "   * Warnings as failure:       $ac_cv_warnings_as_errors"
 
1511
echo "   * Warnings as failure:       $ac_warn_fail"
 
1512
echo "   * C++ cstdint location:      $ac_cv_cxx_cstdint"
 
1513
echo "   * C++ hash_map location:     $ac_cv_cxx_hash_map"
 
1514
echo "   * C++ hash namespace:        $ac_cv_cxx_hash_namespace"
 
1515
echo "   * C++ cmath location:        $ac_cv_cxx_cmath"
 
1516
echo "   * C++ cmath namespace:       $ac_cv_cxx_cmath_namespace"
184
1517
echo ""
185
1518
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], [])