~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to configure.ac

  • Committer: Brian Aker
  • Date: 2009-05-20 23:51:08 UTC
  • mfrom: (1022.2.18 mordred)
  • Revision ID: brian@gaz-20090520235108-nb5he1em112798pb
Merge Monty

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 
19
19
 
20
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])
 
21
 
 
22
m4_include(m4/bzr_version.m4)
 
23
 
24
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
 
  ])
48
 
AC_SUBST(LD_VERSION_SCRIPT)
49
 
 
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
 
])
 
25
AC_CONFIG_AUX_DIR(config)
 
26
AC_CONFIG_HEADERS([config.h])
 
27
AC_CONFIG_MACRO_DIR([m4])
 
28
 
 
29
# Setting CFLAGS here prevents AC_CANONICAL_TARGET from injecting them
 
30
SAVE_CFLAGS=${CFLAGS}
 
31
SAVE_CXXFLAGS=${CXXFLAGS}
 
32
CFLAGS=
 
33
CXXFLAGS=
 
34
 
 
35
AC_CANONICAL_TARGET
 
36
 
 
37
CFLAGS=${SAVE_CFLAGS}
 
38
CXXFLAGS=${SAVE_CXXFLAGS}
 
39
 
 
40
AM_INIT_AUTOMAKE(nostdinc subdir-objects -Wall -Werror)
 
41
 
 
42
if test "x${enable_dependency_tracking}" = "x"
 
43
then
 
44
  enable_dependency_tracking=yes
 
45
fi
 
46
 
 
47
gl_EARLY
 
48
 
 
49
 
 
50
dnl Checks for programs.
 
51
AC_PROG_CXX
 
52
 
 
53
gl_USE_SYSTEM_EXTENSIONS
 
54
if test "$GCC" = "yes"
 
55
then
 
56
  # If you're on a Mac, and you didn't ask for a specific compiler
 
57
  # You're gonna get 4.2.
 
58
  if test "$host_vendor" = "apple" -a "x${ac_cv_env_CC_set}" = "x"
 
59
  then
 
60
    CPP="/usr/bin/gcc-4.2 -E"
 
61
    CC=/usr/bin/gcc-4.2
 
62
    CXX=/usr/bin/g++-4.2
 
63
  fi
 
64
  AC_CACHE_CHECK([if GCC is recent enough], [drizzle_cv_gcc_recent],
 
65
    [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 
66
#if !defined(__GNUC__) || (__GNUC__ < 4) || ((__GNUC__ >= 4) && (__GNUC_MINOR__ < 1))
 
67
# error GCC is Too Old!
 
68
#endif
 
69
      ]])],
 
70
      [drizzle_cv_gcc_recent=yes],
 
71
      [drizzle_cv_gcc_recent=no])])
 
72
  if test "$drizzle_cv_gcc_recent" = "no" -a "$host_vendor" = "apple"
 
73
  then
 
74
    AC_MSG_ERROR([Your version of GCC is too old. Drizzle requires at least version 4.2 on OSX. You may need to install a version of XCode >= 3.1.2])
 
75
  fi
 
76
  if test "$drizzle_cv_gcc_recent" = "no"
 
77
  then
 
78
    AC_MSG_ERROR([Your version of GCC is too old. Drizzle requires at least version 4.1])
 
79
  fi
 
80
fi
 
81
AC_CXX_HEADER_STDCXX_98
 
82
if test "$ac_cv_cxx_stdcxx_98" = "no"
 
83
then
 
84
  AC_MSG_ERROR([No working C++ Compiler has been found. Drizzle requires a C++ compiler that can handle C++98])
 
85
fi
 
86
AC_PROG_CPP
 
87
AM_PROG_CC_C_O
 
88
 
 
89
if test "$am_cv_prog_cc_stdc" = "no"
 
90
then
 
91
  AC_MSG_ERROR([Drizzle requires an ANSI C compiler (and a C++ compiler). Try gcc. See the Installation chapter in the Reference Manual.])
 
92
fi
 
93
 
 
94
 
 
95
 
 
96
gl_INIT
 
97
 
 
98
AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
 
99
 
 
100
AC_PROG_GCC_TRADITIONAL
 
101
 
 
102
 
 
103
# Set all version vars based on $VERSION. How do we do this more elegant ?
 
104
# Remember that regexps needs to quote [ and ] since this is run through m4
 
105
# We take some made up examples
 
106
#
 
107
#  VERSION                  5.1.40sp1-alpha     5.0.34a
 
108
#  DRIZZLE_NO_DASH_VERSION    5.1.40sp1           5.0.34a
 
109
#  DRIZZLE_NUMERIC_VERSION    5.1.40              5.0.34
 
110
#  DRIZZLE_BASE_VERSION       5.1                 5.0
 
111
#  DRIZZLE_VERSION_ID         50140               50034
 
112
#
 
113
DRIZZLE_NO_DASH_VERSION=`echo $VERSION | sed -e "s|-.*$||"`
 
114
DRIZZLE_NUMERIC_VERSION=`echo $DRIZZLE_NO_DASH_VERSION | sed -e "s|[[a-z]][[a-z0-9]]*$||"`
 
115
DRIZZLE_BASE_VERSION=`echo $DRIZZLE_NUMERIC_VERSION | sed -e "s|\.[[^.]]*$||"`
 
116
DRIZZLE_VERSION_ID=`echo $DRIZZLE_NUMERIC_VERSION | \
 
117
    awk -F. '{printf "%d%0.2d%0.2d", $1, $2, $3}'`
 
118
AC_DEFINE_UNQUOTED(DRIZZLE_BASE_VERSION,["$DRIZZLE_BASE_VERSION"],
 
119
                   [Major and minor version])
 
120
AC_DEFINE_UNQUOTED([DRIZZLE_VERSION_ID],[$DRIZZLE_VERSION_ID],
 
121
                   [Version ID that can be easily used for numeric comparison])
 
122
 
 
123
AC_DEFINE([_BACKWARD_BACKWARD_WARNING_H],[1],[Hack to disable deprecation warning in gcc])
 
124
 
 
125
# The port should be constant for a LONG time
 
126
DRIZZLE_TCP_PORT_DEFAULT=4427
 
127
 
 
128
m4_include(m4/dtrace.m4)
 
129
 
 
130
m4_include(m4/character_sets.m4)
 
131
AC_SUBST(AVAILABLE_LANGUAGES)
 
132
 
 
133
 
 
134
# Set this for plugins to use
 
135
ac_build_drizzle="yes"
 
136
 
 
137
 
 
138
# Canonicalize the configuration name.
 
139
 
 
140
# Check whether --with-system-type or --without-system-type was given.
 
141
AC_ARG_WITH([system-type],
 
142
    [AS_HELP_STRING([--with-system-type],
 
143
       [Set the system type, like "sun-solaris10"])],
 
144
    [SYSTEM_TYPE="$withval"],
 
145
    [SYSTEM_TYPE="$host_vendor-$host_os"])
 
146
AC_ARG_WITH([machine-type],
 
147
    [AS_HELP_STRING([--with-machine-type],
 
148
       [Set the machine type, like "sparc"])],
 
149
    [MACHINE_TYPE="$withval"],
 
150
    [MACHINE_TYPE="$host_cpu"])
 
151
AC_SUBST(SYSTEM_TYPE)
 
152
AC_DEFINE_UNQUOTED([SYSTEM_TYPE], ["$SYSTEM_TYPE"],
 
153
                   [Name of system, eg sun-solaris])
 
154
AC_SUBST(MACHINE_TYPE)
 
155
AC_DEFINE_UNQUOTED([MACHINE_TYPE], ["$MACHINE_TYPE"],
 
156
                   [Machine type name, eg sparc])
 
157
 
 
158
# Detect intel x86 like processor
 
159
BASE_MACHINE_TYPE=$MACHINE_TYPE
 
160
case $MACHINE_TYPE in
 
161
  i?86) BASE_MACHINE_TYPE=i386 ;;
 
162
esac
 
163
 
 
164
 
 
165
case "$target_os" in
 
166
  *linux*)
 
167
  TARGET_LINUX="true"
 
168
  AC_SUBST(TARGET_LINUX)
 
169
  AC_DEFINE([TARGET_OS_LINUX], [1], [Whether we build for Linux])
 
170
    ;;
 
171
  *apple-darwin*)
 
172
    TARGET_OSX="true"
 
173
    AC_SUBST(TARGET_OSX)
 
174
    AC_DEFINE([TARGET_OS_OSX], [1], [Whether we build for OSX])
 
175
    ;;
 
176
  *solaris*)
 
177
    TARGET_SOLARIS="true"
 
178
    AC_SUBST(TARGET_SOLARIS)
 
179
    AC_DEFINE([TARGET_OS_SOLARIS], [1], [Whether we are building for Solaris])
 
180
    ;;
 
181
  *)
 
182
    ;;
 
183
esac
 
184
 
 
185
DRIZZLE_CHECK_C_VERSION
 
186
DRIZZLE_CHECK_CXX_VERSION
 
187
 
 
188
AC_SYS_LARGEFILE
 
189
 
 
190
AC_PROG_AWK
 
191
 
55
192
 
56
193
AC_PATH_PROG(GPERF, gperf)
57
194
AS_IF([test "x$GPERF" = "x"],
58
195
      AC_MSG_ERROR("Drizzle requires gperf to build."))
59
196
 
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
 
197
AC_PATH_PROG(LCOV, lcov)
 
198
AC_PATH_PROG(GENHTML, genhtml)
 
199
 
 
200
AM_CONDITIONAL(HAVE_LCOV,[test "x$LCOV" != "x"])
 
201
 
 
202
AC_SUBST(NM)dnl
 
203
 
 
204
AC_PROG_INSTALL
 
205
 
 
206
dnl Not critical since the generated file is distributed
 
207
AC_CHECK_PROGS(YACC, ['bison -y'])
 
208
if test -z "$YACC" && test -d "$srcdir/.bzr"
 
209
then
 
210
  AC_MSG_ERROR(["bison is required for Drizzle to build from a bzr branch"])
 
211
fi
 
212
 
 
213
AC_CHECK_PROGS(ISAINFO, [isainfo], [no])
 
214
AS_IF([test "x$ISAINFO" != "xno"],
 
215
      [isainfo_b=`isainfo -b`],
 
216
      [isainfo_b="x"])
 
217
 
 
218
# Build optimized or debug version ?
 
219
# First check for gcc and g++
 
220
if test "$GCC" = "yes"
 
221
then
 
222
  if test "$isainfo_b" = "64"
 
223
  then
 
224
    IS_64="-m64"
 
225
  fi
 
226
  AC_DEFINE([_GNU_SOURCE],[1],[Fix problem with S_ISLNK() on Linux])
 
227
 
 
228
  dnl The following is required for portable results of floating point 
 
229
  dnl calculations on PowerPC. The same must also be done for IA-64, but 
 
230
  dnl this options is missing in the IA-64 gcc backend.
 
231
  case "$host_cpu" in
 
232
    *ppc* | *powerpc*)
 
233
      CFLAGS="-mno-fused-madd ${CFLAGS}"
 
234
      CXXFLAGS="-mno-fused-madd ${CXXFLAGS}"
 
235
    ;;
 
236
  esac
 
237
 
 
238
  CFLAGS="-ggdb3 ${IS_64} -std=gnu99 ${CFLAGS}"
 
239
  CXXFLAGS="-ggdb3  ${IS_64} ${CXXFLAGS}"
 
240
  AC_CXX_CHECK_STANDARD
 
241
  
 
242
 
 
243
  DEBUG_CFLAGS="-O0"
 
244
  DEBUG_CXXFLAGS="-O0"
 
245
 
 
246
  OPTIMIZE_CFLAGS="-O3"
 
247
  OPTIMIZE_CXXFLAGS="-O3"
 
248
fi
 
249
if test "$SUNCC" = "yes"
 
250
then
 
251
  if test "$isainfo_b" = "64"
 
252
  then
 
253
    IS_64="-m64"
 
254
  fi
 
255
  dnl we put CPPFLAGS and LDFLAGS first here, because if the user has specified
 
256
  dnl command line CPPFLAGS or LDFLAGS, their -I or -L should come _first_
 
257
  if test "$target_cpu" = "sparc"
 
258
  then
 
259
    MEMALIGN_FLAGS="-xmemalign=8s"
 
260
  fi
 
261
 
 
262
  if test "x$use_additional" != "xyes"
 
263
  then
 
264
    AS_IF([test "$isainfo_b" != "none"],[
 
265
      LDFLAGS="${LDFLAGS} -L/usr/local/lib/${isainfo_b} -L/usr/local/lib -L/opt/csw/lib/${isainfo_b} -L/opt/csw/lib"
 
266
      ],[
 
267
      LDFLAGS="${LDFLAGS} -L/usr/local/lib -L/opt/csw/lib"
 
268
      ])
 
269
      CPPFLAGS="${CPPFLAGS} -I/usr/local/include -I/opt/csw/include"
 
270
  fi
 
271
  AS_IF([test "$isainfo_b" != "none"],
 
272
        [LDFLAGS="${LDFLAGS} -L/usr/lib/${isainfo_b}"])
 
273
 
 
274
  CXXFLAGS="-xlang=c99 -g -mt -compat=5 -library=stlport4 -template=no%extdef ${IS_64} ${MEMALIGN_FLAGS} ${CXXFLAGS}"
 
275
  CFLAGS="-g -mt -xc99=all ${IS_64} ${MEMALIGN_FLAGS} ${CFLAGS}"
 
276
  DEBUG_CFLAGS="-xO0"
 
277
  DEBUG_CXXFLAGS="-xO0" 
 
278
 
 
279
  dnl TODO: -xO4 causes a Sun Studio failure in innodb... let's check back
 
280
  dnl       in on this one.
 
281
  OPTIMIZE_FLAGS="-xO3 -xlibmil -xdepend"
 
282
  OPTIMIZE_CFLAGS="${OPTIMIZE_FLAGS} -Xa -xstrconst"
 
283
  OPTIMIZE_CXXFLAGS="${OPTIMIZE_FLAGS}"
 
284
 
 
285
fi
 
286
 
 
287
m4_include(m4/gettext.m4)
 
288
AM_GNU_GETTEXT(external, need-formatstring-macros)
 
289
if test "x$MSGMERGE" = "x" -o "x$MSGMERGE" = "x:"
 
290
then
 
291
  AM_PATH_PROG_WITH_TEST(GMSGMERGE, gmsgmerge,
 
292
    [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :)
 
293
  MSGMERGE="${GMSGMERGE}"
 
294
fi
 
295
AM_CONDITIONAL([BUILD_GETTEXT],[test "x$MSGMERGE" != "x" -a "x$MSGMERGE" != "x:"])
 
296
 
 
297
 
 
298
# We use libtool
 
299
AC_PROG_LIBTOOL
 
300
 
 
301
dnl TODO: Remove this define once we are using 2.61 across the board.
 
302
# AX_HEADER_ASSERT
 
303
# ----------------
 
304
# Check whether to enable assertions.
 
305
AC_DEFUN([AX_HEADER_ASSERT],
 
306
[
 
307
  AC_MSG_CHECKING([whether to enable assertions])
 
308
  AC_ARG_ENABLE([assert],
 
309
    [AS_HELP_STRING([--disable-assert],
 
310
       [Turn off assertions])],
 
311
    [ac_cv_assert="no"],
 
312
    [ac_cv_assert="yes"])
 
313
  AC_MSG_RESULT([$ac_cv_assert])
 
314
])
 
315
 
 
316
AX_HEADER_ASSERT
 
317
 
 
318
AC_ARG_WITH([debug],
 
319
    [AS_HELP_STRING([--with-debug],
 
320
       [Add debug code/turns off optimizations (yes|no) @<:@default=no@:>@])],
 
321
    [with_debug=$withval],
 
322
    [with_debug=no])
 
323
if test "$with_debug" = "yes"
 
324
then
 
325
  # Debuging. No optimization.
 
326
  CFLAGS="${DEBUG_CFLAGS} ${CFLAGS}"
 
327
  CXXFLAGS="${DEBUG_CXXFLAGS} ${CXXFLAGS}"
 
328
else
 
329
  # Optimized version. No debug
 
330
  CFLAGS="${OPTIMIZE_CFLAGS} ${CFLAGS}"
 
331
  CXXFLAGS="${OPTIMIZE_CXXFLAGS} ${CXXFLAGS}"
 
332
fi
 
333
 
 
334
 
 
335
AC_CXX_STL_HASH
 
336
AC_CXX_CSTDINT
 
337
AC_CXX_CINTTYPES
 
338
AC_CXX_SHARED_PTR
 
339
 
 
340
DRIZZLE_PROG_AR
 
341
 
 
342
AC_LIB_PREFIX
 
343
 
 
344
#--------------------------------------------------------------------
 
345
# Check for Google Proto Buffers
 
346
#--------------------------------------------------------------------
 
347
 
 
348
AC_LANG_PUSH([C++])
 
349
AC_LIB_HAVE_LINKFLAGS(protobuf,pthread,
 
350
[#include <google/protobuf/descriptor.h>
 
351
],
 
352
[google::protobuf::FileDescriptor* file;],system)
 
353
AS_IF([test x$ac_cv_libprotobuf = xno],
 
354
      AC_MSG_ERROR([protobuf is required for Drizzle. On Debian this can be found in libprotobuf-dev. On RedHat this can be found in protobuf-devel.]))
 
355
 
 
356
AC_CACHE_CHECK([if protobuf is recent enough], [drizzle_cv_protobuf_recent],
 
357
  [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 
358
#include <google/protobuf/descriptor.h>
 
359
#if GOOGLE_PROTOBUF_VERSION < 2000002
 
360
# error Your version of Protobuf is too old
 
361
#endif
 
362
    ]])],
 
363
    [drizzle_cv_protobuf_recent=yes],
 
364
    [drizzle_cv_protobuf_recent=no])])
 
365
if test "$drizzle_cv_protobuf_recent" = "no"
 
366
then
 
367
  AC_MSG_ERROR([Your version of Google Protocol Buffers is too old. Drizzle requires at least version 2.0.2])
 
368
fi
 
369
 
 
370
AC_PATH_PROG([PROTOC],[protoc],[no],[$LIBPROTOBUF_PREFIX/bin:$PATH])
 
371
if test "x$PROTOC" = "xno"
 
372
then
 
373
  AC_MSG_ERROR([Couldn't find the protoc compiler. On Debian this can be found in protobuf-compiler. On RedHat this can be found in protobuf-compiler.])
 
374
fi
 
375
 
 
376
AC_LANG_POP()
 
377
 
 
378
#--------------------------------------------------------------------
 
379
# Check for libuuid
 
380
#--------------------------------------------------------------------
 
381
 
 
382
dnl Do this by hand. Need to check for uuid/uuid.h, but uuid may or may
 
383
dnl not be a lib is weird.
 
384
 
 
385
AC_CHECK_HEADERS(uuid/uuid.h)
 
386
if test "x$ac_cv_header_uuid_uuid_h" = "xno"
 
387
then
 
388
  AC_MSG_ERROR([Couldn't find uuid/uuid.h. On Debian this can be found in uuid-dev. On Redhat this can be found in e2fsprogs-devel.])
 
389
fi
 
390
AC_LIB_HAVE_LINKFLAGS(uuid,,
 
391
[
 
392
#include <uuid/uuid.h>
 
393
],
 
394
[
 
395
  uuid_t uout;
 
396
  uuid_generate(uout);
 
397
])
 
398
 
 
399
 
 
400
 
 
401
#--------------------------------------------------------------------
 
402
# Check for libpthread
 
403
#--------------------------------------------------------------------
 
404
 
 
405
ACX_PTHREAD(,AC_MSG_ERROR(could not find libpthread))
 
406
LIBS="$PTHREAD_LIBS $LIBS"
 
407
CFLAGS="${CFLAGS} ${PTHREAD_CFLAGS}"
 
408
CC="$PTHREAD_CC"
 
409
 
 
410
#--------------------------------------------------------------------
 
411
# Check for tcmalloc/mtmalloc
 
412
#--------------------------------------------------------------------
 
413
 
 
414
AC_ARG_ENABLE([tcmalloc],
 
415
    [AS_HELP_STRING([--disable-tcmalloc],
 
416
       [Enable linking with tcmalloc @<:@default=on@:>@])],
 
417
    [ac_enable_tcmalloc="$enableval"],
 
418
    [ac_enable_tcmalloc="yes"])
 
419
 
 
420
if test "x$ac_enable_tcmalloc" != "xno"
 
421
then
 
422
  AC_CHECK_LIB(tcmalloc,malloc,[],[])
 
423
fi
 
424
 
 
425
if test "x$ac_cv_lib_tcmalloc_malloc" != "xyes"
 
426
then
 
427
  AC_CHECK_LIB(mtmalloc,malloc,[],[])
 
428
fi
 
429
 
 
430
 
 
431
#--------------------------------------------------------------------
 
432
# Check for libdrizzle
 
433
#--------------------------------------------------------------------
 
434
 
 
435
AC_LIB_HAVE_LINKFLAGS(drizzle,,
 
436
[#include <libdrizzle/drizzle.h>],
 
437
[
 
438
  const char *version= drizzle_version()
 
439
])
 
440
AS_IF([test x$ac_cv_libdrizzle = xno],
 
441
      AC_MSG_ERROR([libdrizzle is required for Drizzle]))
 
442
 
 
443
 
 
444
#--------------------------------------------------------------------
 
445
# Check for libz
 
446
#--------------------------------------------------------------------
 
447
 
 
448
AC_LIB_HAVE_LINKFLAGS(z,,
 
449
[#include <zlib.h>],
 
450
[
 
451
  crc32(0, Z_NULL, 0);
 
452
])
 
453
AS_IF([test x$ac_cv_libz = xno],
 
454
      AC_MSG_ERROR([libz is required for Drizzle. On Debian this can be found in zlib1g-dev. On RedHat this can be found in zlib-devel.]))
 
455
 
 
456
#--------------------------------------------------------------------
 
457
# Check for TBB
 
458
#--------------------------------------------------------------------
68
459
 
69
460
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)])
90
 
 
 
461
AC_LIB_HAVE_LINKFLAGS(tbb,,
 
462
[#include <tbb/atomic.h>
 
463
 #include <stdint.h>
 
464
],
 
465
[
 
466
  tbb::atomic<uint64_t> x;
 
467
  tbb::atomic<uint8_t> y;
 
468
  x=0;
 
469
  y=0;
 
470
  x++;
 
471
  y++;
 
472
])
 
473
AC_LANG_POP()
 
474
 
 
475
#--------------------------------------------------------------------
 
476
# Check for libreadline or compatible (libedit on Mac OS X)
 
477
#--------------------------------------------------------------------
 
478
 
 
479
save_LIBS="${LIBS}"
 
480
LIBS=""
 
481
VL_LIB_READLINE
 
482
AS_IF([test "x$vl_cv_lib_readline" = "xno"],
 
483
      AC_MSG_ERROR([libreadline is required for Drizzle. On Debian this can be found in libreadline5-dev. On RedHat this can be found in readline-devel.]))
 
484
READLINE_LIBS="${LIBS}"
 
485
LIBS="${save_LIBS}"
 
486
AC_SUBST(READLINE_LIBS)
 
487
 
 
488
DRIZZLE_CHECK_NEW_RL_INTERFACE
 
489
 
 
490
#--------------------------------------------------------------------
 
491
# Check for libpcre
 
492
#--------------------------------------------------------------------
 
493
 
 
494
AC_LIB_HAVE_LINKFLAGS(pcre,,
 
495
[#include <pcre.h>],
 
496
[
 
497
  pcre *re= NULL;
 
498
  pcre_version();
 
499
])
 
500
AS_IF([test "x$ac_cv_libpcre" = "xno"],
 
501
[
 
502
  unset ac_cv_libpcre
 
503
  unset HAVE_LIBPCRE
 
504
  unset LIBPCRE
 
505
  unset LIBPCRE_PREFIX
 
506
  unset LTLIBPCRE
 
507
  AC_LIB_HAVE_LINKFLAGS(pcre,,
 
508
  [#include <pcre/pcre.h>],
 
509
  [
 
510
    pcre *re= NULL;
 
511
    pcre_version();
 
512
  ])
 
513
  AS_IF([test "x$ac_cv_libpcre" = "xno"],
 
514
  [
 
515
    AC_MSG_ERROR([libpcre is required for Drizzle. On Debian this can be found in libpcre3-dev. On RedHat this can be found in pcre-devel.])
 
516
  ],[
 
517
    AC_DEFINE(PCRE_HEADER,[<pcre/pcre.h>],[Location of pcre header])
 
518
  ])
 
519
],[
 
520
  AC_DEFINE(PCRE_HEADER,[<pcre.h>],[Location of pcre header])
 
521
])
 
522
 
 
523
 
 
524
dnl Find paths to some shell programs
 
525
AC_PATH_PROG(LN, ln, ln)
 
526
# This must be able to take a -f flag like normal unix ln.
 
527
AC_PATH_PROG(LN_CP_F, ln, ln)
 
528
 
 
529
AC_PATH_PROG(MV, mv, mv)
 
530
AC_PATH_PROG(RM, rm, rm)
 
531
AC_PATH_PROG(CP, cp, cp)
 
532
AC_PATH_PROG(SED, sed, sed)
 
533
AC_PATH_PROG(CMP, cmp, cmp)
 
534
AC_PATH_PROG(CHMOD, chmod, chmod)
 
535
AC_PATH_PROG(HOSTNAME, hostname, hostname)
 
536
# Check for a GNU tar named 'gtar', or 'gnutar' (MacOS X) and
 
537
# fall back to 'tar' otherwise and hope that it's a GNU tar as well
 
538
AC_CHECK_PROGS(TAR, gnutar gtar tar)
 
539
 
 
540
dnl We use a path for perl so the script startup works
 
541
dnl We make sure to use perl, not perl5, in hopes that the RPMs will
 
542
dnl not depend on the perl5 binary being installed (probably a bug in RPM)
 
543
AC_PATH_PROG(PERL, perl, no)
 
544
if test "$PERL" != "no" && $PERL -e 'require 5' > /dev/null 2>&1
 
545
then
 
546
  PERL5=$PERL
 
547
else
 
548
  AC_PATH_PROG(PERL5, perl5, no)
 
549
  if test "$PERL5" != no
 
550
  then
 
551
    PERL=$PERL5
 
552
    ac_cv_path_PERL=$ac_cv_path_PERL5
 
553
  fi
 
554
fi
 
555
 
 
556
AC_SUBST(HOSTNAME)
 
557
AC_SUBST(PERL)
 
558
AC_SUBST(PERL5)
 
559
 
 
560
# icheck, used for ABI check
 
561
AC_PATH_PROG(ICHECK, icheck, no)
 
562
# "icheck" is also the name of a file system check program on Tru64.
 
563
# Verify the program found is really the interface checker.
 
564
if test "x$ICHECK" != "xno"
 
565
then
 
566
  AC_MSG_CHECKING(if $ICHECK works as expected)
 
567
  echo "int foo;" > conftest.h
 
568
  $ICHECK --canonify -o conftest.ic conftest.h 2>/dev/null
 
569
  if test -f "conftest.ic"
 
570
  then
 
571
    AC_MSG_RESULT(yes)
 
572
  else
 
573
    AC_MSG_RESULT(no)
 
574
    ICHECK=no
 
575
  fi
 
576
  rm -f conftest.ic conftest.h
 
577
fi
 
578
AC_SUBST(ICHECK)
 
579
 
 
580
# Lock for PS
 
581
AC_PATH_PROG(PS, ps, ps)
 
582
AC_MSG_CHECKING("how to check if pid exists")
 
583
PS=$ac_cv_path_PS
 
584
# Linux style
 
585
if $PS p $$ 2> /dev/null | grep `echo $0 | sed s/\-//` > /dev/null
 
586
then
 
587
  FIND_PROC="$PS p \$\$PID | grep -v grep | grep \$\$MYSQLD > /dev/null"
 
588
# Solaris
 
589
elif $PS -fp $$ 2> /dev/null | grep $0 > /dev/null
 
590
then
 
591
  FIND_PROC="$PS -p \$\$PID | grep -v grep | grep \$\$MYSQLD > /dev/null"
 
592
# BSD style
 
593
elif $PS -uaxww 2> /dev/null | grep $0 > /dev/null
 
594
then
 
595
  FIND_PROC="$PS -uaxww | grep -v grep | grep \$\$MYSQLD | grep \" \$\$PID \" > /dev/null"
 
596
# SysV style
 
597
elif $PS -ef 2> /dev/null | grep $0 > /dev/null
 
598
then
 
599
  FIND_PROC="$PS -ef | grep -v grep | grep \$\$MYSQLD | grep \" \$\$PID \" > /dev/null"
 
600
# Do anybody use this?
 
601
elif $PS $$ 2> /dev/null | grep $0 > /dev/null
 
602
then
 
603
  FIND_PROC="$PS \$\$PID | grep -v grep | grep \$\$MYSQLD > /dev/null"
 
604
else
 
605
  case $SYSTEM_TYPE in
 
606
    *freebsd*|*dragonfly*|*cygwin*)
 
607
      FIND_PROC="$PS p \$\$PID | grep -v grep | grep \$\$MYSQLD > /dev/null"
 
608
      ;;
 
609
    *darwin*)
 
610
      FIND_PROC="$PS -uaxww | grep -v grep | grep \$\$MYSQLD | grep \" \$\$PID \" > /dev/null"
 
611
      ;;
 
612
    *)
 
613
      AC_MSG_ERROR([Could not find the right ps switches. Which OS is this ?. See the Installation chapter in the Reference Manual.])
 
614
      ;;
 
615
  esac
 
616
fi
 
617
AC_SUBST(FIND_PROC)
 
618
AC_MSG_RESULT("$FIND_PROC")
 
619
 
 
620
# Check if a pid is valid
 
621
AC_PATH_PROG(KILL, kill, kill)
 
622
AC_MSG_CHECKING("for kill switches")
 
623
if $ac_cv_path_KILL -0 $$
 
624
then
 
625
  CHECK_PID="$ac_cv_path_KILL -0 \$\$PID > /dev/null 2> /dev/null"
 
626
elif kill -s 0 $$
 
627
then
 
628
  CHECK_PID="$ac_cv_path_KILL -s 0 \$\$PID > /dev/null 2> /dev/null"
 
629
else
 
630
  AC_MSG_WARN([kill -0 to check for pid seems to fail])
 
631
    CHECK_PID="$ac_cv_path_KILL -s SIGCONT \$\$PID > /dev/null 2> /dev/null"
 
632
fi
 
633
AC_SUBST(CHECK_PID)
 
634
AC_MSG_RESULT("$CHECK_PID")
 
635
 
 
636
 
 
637
# Check if we need noexec stack for assembler
 
638
AC_CHECK_NOEXECSTACK
91
639
 
92
640
AC_ARG_WITH([server-suffix],
93
641
    [AS_HELP_STRING([--with-server-suffix],
94
642
      [Append value to the version string.])],
95
 
    [ DRIZZLE_SERVER_SUFFIX="$withval" ]
96
 
    [ DRIZZLE_SERVER_SUFFIX= ])
97
 
 
 
643
    [ DRIZZLE_SERVER_SUFFIX=`echo "$withval" | sed -e  's/^\(...................................\)..*$/\1/'` ],
 
644
    [ DRIZZLE_SERVER_SUFFIX= ]
 
645
    )
98
646
AC_DEFINE_UNQUOTED([DRIZZLE_SERVER_SUFFIX],[$DRIZZLE_SERVER_SUFFIX],
99
647
                   [Append value to the version string])
100
648
 
101
 
 
 
649
# Force use of a curses libs
 
650
AC_ARG_WITH([named-curses-libs],
 
651
    [AS_HELP_STRING([--with-named-curses-libs=ARG],
 
652
            [Use specified curses libraries instead of those
 
653
                automatically found by configure.])],
 
654
    [ with_named_curses=$withval ],
 
655
    [ with_named_curses=no ]
 
656
    )
 
657
 
 
658
AC_ARG_WITH([tcp-port],
 
659
    [AS_HELP_STRING([--with-tcp-port=port-number],
 
660
            [Which port to use for Drizzle services @<:@default=4427@:>@])],
 
661
    [ DRIZZLE_TCP_PORT=$withval ],
 
662
    [ DRIZZLE_TCP_PORT=$DRIZZLE_TCP_PORT_DEFAULT
 
663
      # if we actually defaulted (as opposed to the pathological case of
 
664
      # --with-tcp-port=<DRIZZLE_TCP_PORT_DEFAULT> which might in theory
 
665
      # happen if whole batch of servers was built from a script), set
 
666
      # the default to zero to indicate that; we don't lose information
 
667
      # that way, because 0 obviously indicates that we can get the
 
668
      # default value from DRIZZLE_TCP_PORT. this seems really evil, but
 
669
      # testing for DRIZZLE_TCP_PORT==DRIZZLE_TCP_PORT_DEFAULT would make a
 
670
      # a port of DRIZZLE_TCP_PORT_DEFAULT magic even if the builder did not
 
671
      # intend it to mean "use the default, in fact, look up a good default
 
672
      # from /etc/services if you can", but really, really meant 4427 when
 
673
      # they passed in 4427. When they pass in a specific value, let them
 
674
      # have it; don't second guess user and think we know better, this will
 
675
      # just make people cross.  this makes the the logic work like this
 
676
      # (which is complicated enough):
 
677
      #
 
678
      # - if a port was set during build, use that as a default.
 
679
      #
 
680
      # - otherwise, try to look up a port in /etc/services; if that fails,
 
681
      #   use DRIZZLE_TCP_PORT_DEFAULT (at the time of this writing 4427)
 
682
      #
 
683
      # - allow the DRIZZLE_TCP_PORT environment variable to override that.
 
684
      #
 
685
      # - allow command-line parameters to override all of the above.
 
686
      #
 
687
      # the top-most DRIZZLE_TCP_PORT_DEFAULT is read from win/configure.js,
 
688
      # so don't mess with that.
 
689
      DRIZZLE_TCP_PORT_DEFAULT=0 ]
 
690
    )
 
691
AC_SUBST(DRIZZLE_TCP_PORT)
 
692
# We might want to document the assigned port in the manual.
 
693
AC_SUBST(DRIZZLE_TCP_PORT_DEFAULT)
 
694
AC_DEFINE_UNQUOTED([DRIZZLE_PORT],[$DRIZZLE_TCP_PORT],
 
695
                   [Drizzle port to use])
 
696
AC_DEFINE_UNQUOTED([DRIZZLE_PORT_DEFAULT],[$DRIZZLE_TCP_PORT_DEFAULT],
 
697
                   [If we defaulted to DRIZZLE_PORT, then this will be zero])
 
698
 
 
699
# Use this to set the place used for unix socket used to local communication.
102
700
AC_ARG_WITH([drizzled-user],
103
701
    [AS_HELP_STRING([--with-drizzled-user=username],
104
702
            [What user the drizzled daemon shall be run as.
105
703
                @<:@default=drizzle@:>@])],
106
 
    [ DRIZZLED_USER="$withval" ],
107
 
    [ DRIZZLED_USER=drizzle ])
 
704
    [ DRIZZLED_USER=$withval ],
 
705
    [ DRIZZLED_USER=drizzle ]
 
706
    )
108
707
AC_SUBST(DRIZZLED_USER)
109
708
 
 
709
# If we should allow LOAD DATA LOCAL
 
710
AC_MSG_CHECKING(If we should should enable LOAD DATA LOCAL by default)
 
711
AC_ARG_ENABLE(local-infile,
 
712
    [  --enable-local-infile   Enable LOAD DATA LOCAL INFILE (default: disabled)],
 
713
    [ ENABLED_LOCAL_INFILE=$enableval ],
 
714
    [ ENABLED_LOCAL_INFILE=no ]
 
715
    )
 
716
if test "$ENABLED_LOCAL_INFILE" = "yes"
 
717
then
 
718
  AC_MSG_RESULT([yes])
 
719
  AC_DEFINE([ENABLED_LOCAL_INFILE], [1],
 
720
            [If LOAD DATA LOCAL INFILE should be enabled by default])
 
721
else
 
722
  AC_MSG_RESULT([no])
 
723
fi
 
724
 
 
725
# Types that must be checked AFTER large file support is checked
 
726
AC_TYPE_SIZE_T
 
727
 
 
728
#--------------------------------------------------------------------
 
729
# Check for system header files
 
730
#--------------------------------------------------------------------
 
731
 
 
732
AC_HEADER_DIRENT
 
733
AC_HEADER_STDC
 
734
AC_HEADER_SYS_WAIT
 
735
AC_HEADER_STDBOOL
 
736
AC_CHECK_HEADERS(fcntl.h float.h fpu_control.h ieeefp.h)
 
737
AC_CHECK_HEADERS(limits.h pwd.h select.h linux/config.h)
 
738
AC_CHECK_HEADERS(sys/fpu.h utime.h sys/utime.h )
 
739
AC_CHECK_HEADERS(synch.h sys/mman.h sys/socket.h)
 
740
AC_CHECK_HEADERS([curses.h term.h],[],[],
 
741
[[#ifdef HAVE_CURSES_H
 
742
# include <curses.h>
 
743
#endif
 
744
]])
 
745
AC_CHECK_HEADERS(termio.h termios.h sched.h alloca.h)
 
746
AC_CHECK_HEADERS(sys/prctl.h ieeefp.h)
 
747
AC_CHECK_HEADERS(execinfo.h)
 
748
 
 
749
#--------------------------------------------------------------------
 
750
# Check for system libraries. Adds the library to $LIBS
 
751
# and defines HAVE_LIBM etc
 
752
#--------------------------------------------------------------------
 
753
 
 
754
AC_CHECK_LIB(m, floor, [], AC_CHECK_LIB(m, __infinity))
 
755
 
 
756
AC_CHECK_FUNC(setsockopt, [], [AC_CHECK_LIB(socket, setsockopt)])
 
757
AC_CHECK_FUNC(yp_get_default_domain, [],
 
758
  [AC_CHECK_LIB(nsl, yp_get_default_domain)])
 
759
AC_CHECK_FUNC(p2open, [], [AC_CHECK_LIB(gen, p2open)])
 
760
# This may get things to compile even if bind-8 is installed
 
761
AC_CHECK_FUNC(bind, [], [AC_CHECK_LIB(bind, bind)])
 
762
# Check if crypt() exists in libc or libcrypt, sets LIBS if needed
 
763
AC_SEARCH_LIBS(crypt, crypt, AC_DEFINE(HAVE_CRYPT, 1, [crypt]))
 
764
 
 
765
# Check rt for aio_read
 
766
AC_CHECK_LIB(rt, aio_read)
 
767
 
 
768
# For the sched_yield() function on Solaris
 
769
AC_CHECK_FUNC(sched_yield, [],
 
770
  [AC_CHECK_LIB(posix4, [sched_yield],
 
771
    [AC_DEFINE(HAVE_SCHED_YIELD, 1, [Have sched_yield function]) LIBS="$LIBS -lposix4"])])
 
772
 
 
773
if test "$ac_cv_header_termio_h" = "no" -a "$ac_cv_header_termios_h" = "no"
 
774
then
 
775
  AC_CHECK_FUNC(gtty, [], [AC_CHECK_LIB(compat, gtty)])
 
776
fi
 
777
 
 
778
AC_CHECK_TYPES([fp_except], [], [], [
 
779
#include <sys/types.h>
 
780
#include <ieeefp.h>
 
781
])
 
782
 
 
783
my_save_LIBS="$LIBS"
 
784
LIBS=""
 
785
AC_CHECK_LIB(dl,dlopen)
 
786
AC_CHECK_FUNCS(dlopen)
 
787
if test "$ac_cv_func_dlopen" != "yes"
 
788
then
 
789
  AC_MSG_ERROR([Drizzle requires dlopen])
 
790
fi
 
791
LIBDL_LIBS="$LIBS"
 
792
LIBS="$my_save_LIBS"
 
793
AC_SUBST(LIBDL_LIBS)
 
794
 
 
795
 
 
796
AC_ARG_WITH([atomic-ops],
 
797
    [AS_HELP_STRING([--with-atomic-ops=rwlocks|smp|up],
 
798
       [Implement atomic operations using pthread rwlocks or atomic CPU
 
799
        instructions for multi-processor or uniprocessor
 
800
        configuration. By default gcc built-in sync functions are used,
 
801
        if available and 'smp' configuration otherwise.])],
 
802
    [with_atomic_ops="$withval"],
 
803
    [with_atomic_ops=smp])
 
804
 
 
805
case "$with_atomic_ops" in
 
806
  "up") AC_DEFINE([MY_ATOMIC_MODE_DUMMY], [1],
 
807
                  [Assume single-CPU mode, no concurrency]) ;;
 
808
  "rwlocks") AC_DEFINE([MY_ATOMIC_MODE_RWLOCKS], [1],
 
809
                  [Use pthread rwlocks for atomic ops]) ;;
 
810
  "smp") 
 
811
    AC_CACHE_CHECK(
 
812
      [whether the compiler provides atomic builtins],
 
813
      [ac_cv_gcc_atomic_builtins],
 
814
      [AC_RUN_IFELSE(
 
815
        [AC_LANG_PROGRAM([],[[
 
816
          int foo= -10; int bar= 10;
 
817
          if (!__sync_fetch_and_add(&foo, bar) || foo)
 
818
            return -1;
 
819
          bar= __sync_lock_test_and_set(&foo, bar);
 
820
          if (bar || foo != 10)
 
821
            return -1;
 
822
          bar= __sync_val_compare_and_swap(&bar, foo, 15);
 
823
          if (bar)
 
824
            return -1;
 
825
          return 0;
 
826
        ]])],
 
827
       [ac_cv_gcc_atomic_builtins=yes],
 
828
       [ac_cv_gcc_atomic_builtins=no])])
 
829
 
 
830
    if test "x$ac_cv_gcc_atomic_builtins" = "xyes"; then
 
831
      AC_DEFINE(HAVE_GCC_ATOMIC_BUILTINS, 1,
 
832
                [Define to 1 if compiler provides atomic builtins.])
 
833
    fi
 
834
   ;;
 
835
   *) AC_MSG_ERROR(["$with_atomic_ops" is not a valid value for --with-atomic-ops]) ;;
 
836
esac
 
837
 
110
838
 
111
839
AC_ARG_WITH([comment],
112
840
    [AS_HELP_STRING([--with-comment],
113
841
            [Comment about compilation environment. @<:@default=off@:>@])],
114
842
    [with_comment=$withval],
115
843
    [with_comment=no])
116
 
AS_IF([test "$with_comment" != "no"],[
 
844
if test "$with_comment" != "no"
 
845
then
117
846
  COMPILATION_COMMENT=$with_comment
118
 
],[
119
 
  COMPILATION_COMMENT="Source distribution (${PANDORA_RELEASE_COMMENT})"
120
 
])
 
847
else
 
848
  COMPILATION_COMMENT="Source distribution"
 
849
fi
121
850
AC_DEFINE_UNQUOTED([COMPILATION_COMMENT],["$COMPILATION_COMMENT"],
122
851
                   [Comment about compilation environment])
123
852
 
 
853
dnl Checks for typedefs, structures, and compiler characteristics.
 
854
AC_C_CONST
 
855
AC_C_INLINE
 
856
AC_C_VOLATILE
 
857
AC_TYPE_OFF_T
 
858
AC_HEADER_TIME
 
859
AC_STRUCT_TM
 
860
# off_t is not a builtin type
 
861
AC_CHECK_SIZEOF(off_t, 4)
 
862
if test "$ac_cv_sizeof_off_t" -eq 0
 
863
then
 
864
  AC_MSG_ERROR("Drizzle needs a off_t type.")
 
865
fi
 
866
AC_CHECK_SIZEOF(size_t)
 
867
AC_DEFINE_UNQUOTED([SIZEOF_SIZE_T],[$ac_cv_sizeof_size_t],[Size of size_t as computed by sizeof()])
 
868
AC_CHECK_SIZEOF(long long)
 
869
AC_DEFINE_UNQUOTED(SIZEOF_LONG_LONG,[$ac_cv_sizeof_long_long],[Size of long long as computed by sizeof()])
 
870
 
 
871
dnl
 
872
dnl check if time_t is unsigned
 
873
dnl
 
874
 
 
875
DRIZZLE_CHECK_TIME_T
 
876
 
 
877
 
 
878
# This always gives a warning. Ignore it unless you are cross compiling
 
879
AC_C_BIGENDIAN
 
880
 
 
881
# Find where the stack goes
 
882
DRIZZLE_STACK_DIRECTION
 
883
# We want to skip alloca on irix unconditionally. It may work on some version..
 
884
DRIZZLE_FUNC_ALLOCA
 
885
 
 
886
AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
 
887
AC_CHECK_TYPES([uint, ulong])
 
888
 
 
889
DRIZZLE_PTHREAD_YIELD
 
890
 
 
891
 
 
892
dnl Checks for header files.
 
893
AC_CHECK_HEADERS(malloc.h)
 
894
 
 
895
dnl Checks for library functions.
 
896
AC_FUNC_ALLOCA
 
897
AC_PROG_GCC_TRADITIONAL
 
898
AC_TYPE_SIGNAL
 
899
 
 
900
AC_CHECK_FUNCS(issetugid)
 
901
 
 
902
# from old readline settting:
 
903
 
 
904
MAKE_SHELL=/bin/sh
 
905
AC_SUBST(MAKE_SHELL)
 
906
 
 
907
# Already-done: stdlib.h string.h unistd.h termios.h
 
908
AC_CHECK_HEADERS(stdarg.h dirent.h locale.h ndir.h sys/dir.h \
 
909
 sys/ndir.h sys/select.h \
 
910
 sys/mman.h termcap.h termio.h asm/termbits.h grp.h \
 
911
 paths.h)
 
912
 
 
913
# Already-done: strcasecmp
 
914
AC_CHECK_FUNCS(lstat select)
 
915
 
 
916
AC_HEADER_STAT
 
917
DRIZZLE_SIGNAL_CHECK
 
918
DRIZZLE_CHECK_GETPW_FUNCS
 
919
DRIZZLE_HAVE_TIOCGWINSZ
 
920
DRIZZLE_HAVE_TIOCSTAT
124
921
 
125
922
#########################################################################
126
923
 
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])
 
924
dnl Checks for library functions.
 
925
 
 
926
AC_FUNC_UTIME_NULL
 
927
AC_FUNC_VPRINTF
 
928
 
 
929
AC_CHECK_FUNCS(fcntl)
 
930
if test "x$ac_cv_func_fcntl" != "xyes"
 
931
then
 
932
  AC_MSG_ERROR("Drizzle requires fcntl.")
 
933
fi
 
934
 
 
935
AC_CONFIG_LIBOBJ_DIR([gnulib])
 
936
 
 
937
AC_CHECK_FUNCS( \
 
938
  cuserid fchmod \
 
939
  fdatasync fpresetsticky fpsetmask fsync \
 
940
  getpassphrase getpwnam \
 
941
  getpwuid getrlimit getrusage index initgroups isnan \
 
942
  localtime_r gethrtime gmtime_r \
 
943
  madvise \
 
944
  mkstemp mlockall poll pread pthread_attr_create mmap mmap64 \
 
945
  pthread_attr_getstacksize pthread_attr_setprio pthread_attr_setschedparam \
 
946
  pthread_attr_setstacksize pthread_condattr_create pthread_getsequence_np \
 
947
  pthread_key_delete pthread_rwlock_rdlock pthread_setprio \
 
948
  pthread_setprio_np pthread_setschedparam pthread_sigmask readlink \
 
949
  realpath rename rwlock_init setupterm \
 
950
  sigaction \
 
951
  sigthreadmask \
 
952
  snprintf strpbrk \
 
953
  tell tempnam \
 
954
  backtrace backtrace_symbols backtrace_symbols_fd)
 
955
 
 
956
AC_LANG_PUSH(C++)
 
957
# Test whether madvise() is declared in C++ code -- it is not on some
 
958
# systems, such as Solaris
 
959
AC_CHECK_DECLS([madvise], [], [], [AC_INCLUDES_DEFAULT[
 
960
#if HAVE_SYS_MMAN_H
 
961
#include <sys/types.h>
 
962
#include <sys/mman.h>
 
963
#endif
 
964
]])
 
965
AC_LANG_POP()
 
966
 
 
967
 
 
968
AM_CONDITIONAL(BUILD_THR_RWLOCK,[test "$ac_cv_func_rwlock_init" -a "$ac_cv_funn_pthread_rwlock_rdlock"])
 
969
 
 
970
 
 
971
# Sanity check: We chould not have any fseeko symbol unless
 
972
# large_file_support=yes
 
973
AC_CHECK_FUNC(fseeko,
 
974
[if test "$large_file_support" = no -a "x$TARGET_LINUX" = "xtrue";
 
975
then
 
976
  AC_MSG_ERROR("Found fseeko symbol but large_file_support is not enabled!")
 
977
fi]
 
978
)
 
979
 
 
980
# Check definition of pthread_getspecific
 
981
AC_CACHE_CHECK([args to pthread_getspecific], [mysql_cv_getspecific_args],
 
982
  [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 
983
#if !defined(_REENTRANT)
 
984
#define _REENTRANT
 
985
#endif
 
986
#ifndef _POSIX_PTHREAD_SEMANTICS 
 
987
#define _POSIX_PTHREAD_SEMANTICS 
 
988
#endif
 
989
#include <pthread.h>
 
990
   ]], [[
 
991
void *pthread_getspecific(pthread_key_t key);
 
992
pthread_getspecific((pthread_key_t) NULL);
 
993
   ]])],
 
994
    [mysql_cv_getspecific_args=POSIX],
 
995
    [mysql_cv_getspecific_args=other])])
 
996
  if test "$mysql_cv_getspecific_args" = "other"
 
997
  then
 
998
    AC_DEFINE([HAVE_NONPOSIX_PTHREAD_GETSPECIFIC], [1],
 
999
              [For some non posix threads])
 
1000
  fi
 
1001
 
 
1002
  # Check definition of pthread_mutex_init
 
1003
  AC_CACHE_CHECK([args to pthread_mutex_init], [mysql_cv_mutex_init_args],
 
1004
    [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 
1005
#ifndef _REENTRANT
 
1006
#define _REENTRANT
 
1007
#endif
 
1008
#ifndef _POSIX_PTHREAD_SEMANTICS
 
1009
#define _POSIX_PTHREAD_SEMANTICS 
 
1010
#endif
 
1011
#include <pthread.h> ]], [[ 
 
1012
  pthread_mutexattr_t attr;
 
1013
  pthread_mutex_t mp;
 
1014
  pthread_mutex_init(&mp,&attr); ]])],
 
1015
      [mysql_cv_mutex_init_args=POSIX],
 
1016
      [mysql_cv_mutex_init_args=other])])
 
1017
  if test "$mysql_cv_mutex_init_args" = "other"
 
1018
  then
 
1019
    AC_DEFINE([HAVE_NONPOSIX_PTHREAD_MUTEX_INIT], [1],
 
1020
              [For some non posix threads])
 
1021
  fi
 
1022
#---END:
 
1023
 
 
1024
#---START: Used in for client configure
 
1025
# Check definition of readdir_r
 
1026
AC_CACHE_CHECK([args to readdir_r], [mysql_cv_readdir_r],
 
1027
  [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
 
1028
#ifndef _REENTRANT
 
1029
#define _REENTRANT
 
1030
#endif
 
1031
#ifndef _POSIX_PTHREAD_SEMANTICS 
 
1032
#define _POSIX_PTHREAD_SEMANTICS 
 
1033
#endif
 
1034
#include <pthread.h>
 
1035
#include <dirent.h>]], [[ int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);
 
1036
readdir_r((DIR *) NULL, (struct dirent *) NULL, (struct dirent **) NULL); ]])],
 
1037
    [mysql_cv_readdir_r=POSIX],
 
1038
    [mysql_cv_readdir_r=other])])
 
1039
if test "$mysql_cv_readdir_r" = "POSIX"
 
1040
then
 
1041
  AC_DEFINE([HAVE_READDIR_R], [1], [POSIX readdir_r])
 
1042
fi
 
1043
 
 
1044
# Check definition of posix sigwait()
 
1045
AC_CACHE_CHECK([style of sigwait], [mysql_cv_sigwait],
 
1046
  [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
 
1047
#ifndef _REENTRANT
 
1048
#define _REENTRANT
 
1049
#endif
 
1050
#ifndef _POSIX_PTHREAD_SEMANTICS
 
1051
#define _POSIX_PTHREAD_SEMANTICS 
 
1052
#endif
 
1053
#include <pthread.h>
 
1054
#include <signal.h>
 
1055
      ]], [[
 
1056
#ifndef _AIX
 
1057
sigset_t set;
 
1058
int sig;
 
1059
sigwait(&set,&sig);
 
1060
#endif
 
1061
      ]])],
 
1062
    [mysql_cv_sigwait=POSIX],
 
1063
    [mysql_cv_sigwait=other])])
 
1064
if test "$mysql_cv_sigwait" = "POSIX"
 
1065
then
 
1066
  AC_DEFINE([HAVE_SIGWAIT], [1], [POSIX sigwait])
 
1067
fi
 
1068
 
 
1069
if test "$mysql_cv_sigwait" != "POSIX"
 
1070
then
 
1071
unset mysql_cv_sigwait
 
1072
# Check definition of posix sigwait()
 
1073
AC_CACHE_CHECK([style of sigwait], [mysql_cv_sigwait],
 
1074
  [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
 
1075
#ifndef _REENTRANT
 
1076
#define _REENTRANT
 
1077
#endif
 
1078
#ifndef _POSIX_PTHREAD_SEMANTICS
 
1079
#define _POSIX_PTHREAD_SEMANTICS 
 
1080
#endif
 
1081
#include <pthread.h>
 
1082
#include <signal.h>
 
1083
      ]], [[
 
1084
sigset_t set;
 
1085
int sig;
 
1086
sigwait(&set);
 
1087
      ]])],
 
1088
    [mysql_cv_sigwait=NONPOSIX],
 
1089
    [mysql_cv_sigwait=other])])
 
1090
if test "$mysql_cv_sigwait" = "NONPOSIX"
 
1091
then
 
1092
  AC_DEFINE([HAVE_NONPOSIX_SIGWAIT], [1], [sigwait with one argument])
 
1093
fi
 
1094
fi
 
1095
#---END:
 
1096
 
 
1097
# Check if pthread_attr_setscope() exists
 
1098
AC_CACHE_CHECK([for pthread_attr_setscope], [mysql_cv_pthread_attr_setscope],
 
1099
  [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
 
1100
#ifndef _REENTRANT
 
1101
#define _REENTRANT
 
1102
#endif
 
1103
#ifndef _POSIX_PTHREAD_SEMANTICS
 
1104
#define _POSIX_PTHREAD_SEMANTICS 
 
1105
#endif
 
1106
#include <pthread.h>
 
1107
      ]], [[
 
1108
pthread_attr_t thr_attr;
 
1109
pthread_attr_setscope(&thr_attr,0);
 
1110
      ]])],
 
1111
    [mysql_cv_pthread_attr_setscope=yes],
 
1112
    [mysql_cv_pthread_attr_setscope=no])])
 
1113
if test "$mysql_cv_pthread_attr_setscope" = "yes"
 
1114
then
 
1115
  AC_DEFINE([HAVE_PTHREAD_ATTR_SETSCOPE], [1], [pthread_attr_setscope])
 
1116
fi
 
1117
 
 
1118
AC_LANG_PUSH([C++])
 
1119
AC_CHECK_HEADERS(cxxabi.h)
 
1120
AC_CACHE_CHECK([checking for abi::__cxa_demangle], mysql_cv_cxa_demangle,
 
1121
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <cxxabi.h>]], [[
 
1122
  char *foo= 0; int bar= 0;
 
1123
  foo= abi::__cxa_demangle(foo, foo, 0, &bar);
 
1124
]])],[mysql_cv_cxa_demangle=yes],[mysql_cv_cxa_demangle=no])])
 
1125
AC_LANG_POP([])
 
1126
 
 
1127
if test "x$mysql_cv_cxa_demangle" = xyes; then
 
1128
  AC_DEFINE(HAVE_ABI_CXA_DEMANGLE, 1,
 
1129
            [Define to 1 if you have the `abi::__cxa_demangle' function.])
 
1130
fi
 
1131
 
 
1132
#--------------------------------------------------------------------
 
1133
# Check for requested features
 
1134
#--------------------------------------------------------------------
 
1135
 
 
1136
DRIZZLE_CHECK_MAX_INDEXES
 
1137
 
 
1138
#--------------------------------------------------------------------
 
1139
# Declare our plugin modules
 
1140
# Has to be done late, as the plugin may need to check for existence of
 
1141
# functions tested above
 
1142
#--------------------------------------------------------------------
 
1143
 
 
1144
m4_include(config/plugin.ac)
 
1145
dnl Add code here to read set plugin lists and  set drizzled_default_plugin_list
 
1146
AC_DEFINE_UNQUOTED([DRIZZLED_PLUGIN_LIST],[$drizzled_default_plugin_list],
 
1147
                   [List of plugins that should be loaded on startup if no
 
1148
                    value is given for --plugin-load])
 
1149
 
 
1150
drizzled_builtin_list=`echo $drizzled_builtin_list | sed 's/, *$//'`
 
1151
AC_DEFINE_UNQUOTED([DRIZZLED_BUILTIN_LIST],[$drizzled_builtin_list],
 
1152
                   [List of plugins to be loaded in sql_builtin.cc])
 
1153
AC_SUBST(drizzled_plugin_libs)
 
1154
 
 
1155
AC_SUBST(mysql_plugin_dirs)
 
1156
AC_SUBST(mysql_plugin_libs)
 
1157
drizzled_plugin_defs=`echo $drizzled_plugin_defs | sed 's/, *$//'`
 
1158
AC_SUBST(drizzled_plugin_defs)
 
1159
AC_SUBST(DRIZZLED_PLUGIN_DEP_LIBS)
 
1160
 
 
1161
 
 
1162
AC_ARG_ENABLE([profiling],
 
1163
    [AS_HELP_STRING([--enable-profiling],
 
1164
       [Toggle profiling @<:@default=off@:>@])],
 
1165
    [ac_profiling="$enableval"],
 
1166
    [ac_profiling="no"])
 
1167
 
 
1168
AC_ARG_ENABLE([coverage],
 
1169
    [AS_HELP_STRING([--enable-coverage],
 
1170
       [Toggle coverage @<:@default=off@:>@])],
 
1171
    [ac_coverage="$enableval"],
 
1172
    [ac_coverage="no"])
 
1173
 
 
1174
AC_ARG_ENABLE([pedantic-warnings],
 
1175
    [AS_HELP_STRING([--disable-pedantic-warnings],
 
1176
       [Toggle pedanticness @<:@default=on@:>@])],
 
1177
    [ac_warn_pedantic="$enableval"],
 
1178
    [ac_warn_pedantic="yes"])
 
1179
 
 
1180
AC_ARG_ENABLE([fail],
 
1181
    [AS_HELP_STRING([--disable-fail],
 
1182
       [Turn warnings into failures @<:@default=on@:>@])],
 
1183
    [ac_warn_fail="$enableval"],
 
1184
    [ac_warn_fail="yes"])
 
1185
 
 
1186
AC_ARG_ENABLE([unreachable],
 
1187
    [AS_HELP_STRING([--enable-unreachable],
 
1188
       [Enable warnings about unreachable code @<:@default=off@:>@])],
 
1189
    [ac_warn_unreachable="$enableval"],
 
1190
    [ac_warn_unreachable="no"])
 
1191
 
 
1192
AC_ARG_ENABLE([longlong-warnings],
 
1193
    [AS_HELP_STRING([--enable-longlong-warnings],
 
1194
       [Enable warnings about longlong in C++ @<:@default=off@:>@])],
 
1195
    [ac_warn_longlong="$enableval"],
 
1196
    [ac_warn_longlong="no"])
 
1197
 
 
1198
AC_ARG_ENABLE([strict-aliasing],
 
1199
    [AS_HELP_STRING([--enable-strict-aliasing],
 
1200
       [Enable warnings about stict-aliasing @<:@default=off@:>@])],
 
1201
    [ac_warn_strict_aliasing="$enableval"],
 
1202
    [ac_warn_strict_aliasing="no"])
 
1203
 
 
1204
AC_ARG_ENABLE([cast-warnings],
 
1205
    [AS_HELP_STRING([--enable-cast-warnings],
 
1206
       [Enable warnings about use of old C-style casts @<:@default=off@:>@])],
 
1207
    [ac_warn_cast="$enableval"],
 
1208
    [ac_warn_cast="no"])
 
1209
 
 
1210
AC_ARG_ENABLE([effective-style],
 
1211
    [AS_HELP_STRING([--enable-effective-style],
 
1212
       [Enable warnings violating Effective C++ Style Guidelines @<:@default=off@:>@])],
 
1213
    [ac_warn_effc="$enableval"],
 
1214
    [ac_warn_effc="no"])
 
1215
 
 
1216
AC_ARG_ENABLE([shadow],
 
1217
    [AS_HELP_STRING([--disable-shadow],
 
1218
       [Disables warnings about scope shadowing @<:@default=on@:>@])],
 
1219
    [ac_warn_shadow="$enableval"],
 
1220
    [ac_warn_shadow="yes"])
 
1221
 
 
1222
AC_ARG_ENABLE([conversion],
 
1223
    [AS_HELP_STRING([--enable-conversion],
 
1224
       [Enables conversion warnings @<:@default=off@:>@])],
 
1225
    [ac_warn_conversion="$enableval"],
 
1226
    [ac_warn_conversion="no"])
 
1227
 
 
1228
AC_ARG_ENABLE([datarace],
 
1229
    [AS_HELP_STRING([--enable-datarace],
 
1230
       [Enables Sun Studio data race detection @<:@default=off@:>@])],
 
1231
    [ac_datarace="$enableval"],
 
1232
    [ac_datarace="no"])
 
1233
 
 
1234
AC_ARG_ENABLE([exceptions],
 
1235
    [AS_HELP_STRING([--disable-exceptions],
 
1236
        [Disables use of Exceptions in the build @<:@default=on@:>@])],
 
1237
    [ac_exceptions="$enableval"],
 
1238
    [ac_exceptions="yes"])
 
1239
 
 
1240
AC_ARG_ENABLE([cast-align-warnings],
 
1241
    [AS_HELP_STRING([--enable-cast-align-warnings],
 
1242
       [Toggle cast alignment warnings @<:@default=off@:>@])],
 
1243
    [ac_warn_cast_align="$enableval"],
 
1244
    [ac_warn_cast_align="no"])
 
1245
 
 
1246
if test "$GCC" = "yes"
 
1247
then
 
1248
  if test "$ac_warn_cast_align" = "yes"
 
1249
  then
 
1250
    W_CAST_ALIGN="-Wcast-align"
 
1251
  else
 
1252
    W_CAST_ALIGN="-Wno-cast-align"
 
1253
  fi
 
1254
 
 
1255
  if test "$ac_warn_fail" = "yes"
 
1256
  then
 
1257
    W_FAIL="-Werror"
 
1258
  fi
 
1259
  BASE_WARNINGS="-Wall -Wextra ${W_FAIL} ${W_CAST_ALIGN}"
 
1260
 
 
1261
  if test "$ac_warn_longlong" = "yes"
 
1262
  then
 
1263
    W_LONGLONG="-Wlong-long"
 
1264
  else
 
1265
    W_LONGLONG="-Wno-long-long"
 
1266
  fi
 
1267
 
 
1268
  if test "$ac_warn_strict_aliasing" = "yes"
 
1269
  then
 
1270
    W_STRICT_ALIASING="-Wstrict-aliasing"
 
1271
  else
 
1272
    W_STRICT_ALIASING="-Wno-strict-aliasing"
 
1273
  fi
 
1274
 
 
1275
  if test "$ac_warn_shadow" = "yes"
 
1276
  then
 
1277
    W_SHADOW="-Wshadow"
 
1278
    NO_SHADOW="-Wno-shadow"
 
1279
  else
 
1280
    W_SHADOW="-Wno-shadow"
 
1281
    NO_SHADOW=""
 
1282
  fi
 
1283
 
 
1284
  if test "$ac_profiling" = "yes"
 
1285
  then
 
1286
    GPROF_PROFILING="-pg"
 
1287
    save_LIBS="${LIBS}"
 
1288
    LIBS=""
 
1289
    AC_CHECK_LIB(c_p, read)
 
1290
    LIBC_P="${LIBS}"
 
1291
    LIBS="${save_LIBS}"
 
1292
  else
 
1293
    GPROF_PROFILING=" "
 
1294
  fi
 
1295
 
 
1296
  if test "$ac_coverage" = "yes"
 
1297
  then
 
1298
    GPROF_COVERAGE="-fprofile-arcs -ftest-coverage"
 
1299
  else
 
1300
    GPROF_COVERAGE=" "
 
1301
  fi
 
1302
 
 
1303
  if test "$ac_warn_pedantic" = "yes"
 
1304
  then
 
1305
    AC_CACHE_CHECK([whether it is safe to use -Wredundant-decls],
 
1306
      [ac_cv_safe_to_use_Wredundant_decls_],
 
1307
      [AC_LANG_PUSH(C++)
 
1308
       save_CXXFLAGS="${CXXFLAGS}"
 
1309
       CXXFLAGS="${CXXFLAGS} ${W_FAIL} -Wredundant-decls"
 
1310
       AC_COMPILE_IFELSE(
 
1311
         [AC_LANG_PROGRAM([
 
1312
template <typename E> struct C { void foo(); };
 
1313
template <typename E> void C<E>::foo() { }
 
1314
template <> void C<int>::foo();
 
1315
            AC_INCLUDES_DEFAULT])],
 
1316
          [ac_cv_safe_to_use_Wredundant_decls_=yes],
 
1317
          [ac_cv_safe_to_use_Wredundant_decls_=no])
 
1318
        CXXFLAGS="${save_CXXFLAGS}"
 
1319
        AC_LANG_POP()])
 
1320
    if test $ac_cv_safe_to_use_Wredundant_decls_ = yes
 
1321
    then
 
1322
      GXX_W_REDUNDANT_DECLS="-Wredundant-decls"
 
1323
    else
 
1324
      GXX_W_REDUNDANT_DECLS="-Wno-redundant-decls"
 
1325
    fi
 
1326
    
 
1327
    GCC_PEDANTIC="-pedantic -Wundef -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls ${W_STRICT_ALIASING}"
 
1328
    GXX_PEDANTIC="-pedantic -Wundef -Woverloaded-virtual  -Wnon-virtual-dtor -Wctor-dtor-privacy ${GXX_W_REDUNDANT_DECLS} ${W_LONGLONG} ${W_STRICT_ALIASING}"
 
1329
  fi
 
1330
 
 
1331
  if test "$ac_warn_unreachable" = "yes"
 
1332
  then
 
1333
    W_UNREACHABLE="-Wunreachable-code"
 
1334
  fi
 
1335
 
 
1336
  if test "$ac_warn_cast" = "yes"
 
1337
  then
 
1338
    W_CAST="-Wold-style-cast"
 
1339
  fi
 
1340
 
 
1341
  if test "$ac_warn_effc" = "yes"
 
1342
  then
 
1343
    W_EFFC="-Weffc++"
 
1344
  fi
 
1345
 
 
1346
  if test "$ac_warn_conversion" = "yes"
 
1347
  then
 
1348
    W_CONVERSION="-Wconversion"
 
1349
  fi
 
1350
 
 
1351
  CC_WARNINGS="${BASE_WARNINGS} ${GCC_PEDANTIC} ${W_UNREACHABLE} ${GPROF_PROFILING} ${GPROF_COVERAGE} ${W_SHADOW} ${W_CONVERSION}"
 
1352
  CXX_WARNINGS="${BASE_WARNINGS} ${GXX_PEDANTIC} ${W_UNREACHABLE} ${GPROF_PROFILING} ${GPROF_COVERAGE} ${W_CAST} ${W_SHADOW} ${W_EFFC} ${W_CONVERSION}"
 
1353
 
 
1354
  if test "$ac_exceptions" = "no"
 
1355
  then
 
1356
    NO_EXCEPTIONS="-fno-exceptions"
 
1357
    W_EXCEPTIONS="-fexceptions"
 
1358
  fi
 
1359
  NO_REDUNDANT_DECLS="-Wno-redundant-decls"
 
1360
  PROTOSKIP_WARNINGS="-Wno-effc++ -Wno-shadow"
 
1361
fi
 
1362
if test "$SUNCC" = "yes"
 
1363
then
 
1364
  if test "$ac_datarace" = "yes"
 
1365
  then
 
1366
    CFLAGS="-xinstrument=datarace ${CFLAGS}"
 
1367
    CXXFLAGS="-xinstrument=datarace ${CXXFLAGS}"
 
1368
  fi
 
1369
 
 
1370
  if test "$ac_warn_fail" = "yes"
 
1371
  then
 
1372
    W_FAIL="-errwarn=%all"
 
1373
  fi
 
1374
 
 
1375
  CC_WARNINGS="-v -errtags=yes -erroff=E_ATTRIBUTE_NOT_VAR ${W_FAIL}"
 
1376
  CXX_WARNINGS="+w +w2 -xport64 -errtags=yes -erroff=attrskipunsup,doubunder,reftotemp,inllargeuse,truncwarn1,signextwarn,inllargeint ${W_FAIL}" 
 
1377
  PROTOSKIP_WARNINGS="-erroff=attrskipunsup,doubunder,reftotemp,wbadinitl,identexpected,inllargeuse,truncwarn1,signextwarn"
 
1378
  NO_UNREACHED="-erroff=E_STATEMENT_NOT_REACHED"
 
1379
  if test "$ac_exceptions" = "no"
 
1380
  then
 
1381
    NO_EXCEPTIONS="-features=no%except"
 
1382
    W_EXCEPTIONS="-features=except"
 
1383
  fi
 
1384
fi
 
1385
AC_SUBST(NO_EXCEPTIONS)
 
1386
AC_SUBST(W_EXCEPTIONS)
 
1387
AC_SUBST(NO_SHADOW)
 
1388
AC_SUBST(W_SHADOW)
 
1389
AC_SUBST(NO_REDUNDANT_DECLS)
 
1390
AC_SUBST(PROTOSKIP_WARNINGS)
 
1391
AC_SUBST(NO_UNREACHED)
 
1392
 
 
1393
if test "x${gl_LIBOBJS}" != "x"
 
1394
then
 
1395
  if test "$GCC" = "yes"
 
1396
  then
 
1397
    CPPFLAGS="-isystem \$(top_srcdir)/gnulib -isystem \$(top_builddir)/gnulib ${CPPFLAGS}"
 
1398
  else
 
1399
    CPPFLAGS="-I\$(top_srcdir)/gnulib -I\$(top_builddir)/gnulib ${CPPFLAGS}"
 
1400
  fi
 
1401
fi
 
1402
 
 
1403
CPPFLAGS="-I\$(top_srcdir) -I\$(top_builddir) ${CPPFLAGS}"
 
1404
CFLAGS="${CC_WARNINGS} ${CFLAGS}"
 
1405
CXXFLAGS="${CXX_WARNINGS} ${W_EXCEPTIONS} ${CXXFLAGS}"
 
1406
 
 
1407
dnl Must be done once we turn on warnings and such
 
1408
AC_CACHE_CHECK(
 
1409
  [whether __attribute__ visibility "hidden" is supported],
 
1410
  [ac_cv_can_use_hidden_],[
 
1411
    AC_LANG_PUSH(C++)
 
1412
    AC_LINK_IFELSE([
 
1413
      AC_LANG_PROGRAM(
 
1414
        [[
 
1415
__attribute__((visibility ("hidden")))
 
1416
void testme() {  }
 
1417
        ]],[[testme()]]
 
1418
      )],  
 
1419
      [ac_cv_can_use_hidden_=yes],
 
1420
      [ac_cv_can_use_hidden_=no])
 
1421
    AC_LANG_POP()])
 
1422
if test "$ac_cv_can_use_hidden_" = "yes"
 
1423
then
 
1424
  AC_DEFINE(HAVE_ATTR_HIDDEN, 1,
 
1425
  [Define to 1 if you have support for __attribute__((visibility("hidden")))])
 
1426
fi
 
1427
 
 
1428
AM_CPPFLAGS="${CPPFLAGS}"
 
1429
AM_CFLAGS="${CFLAGS}"
 
1430
AM_CXXFLAGS="${CXXFLAGS}"
 
1431
 
 
1432
AC_SUBST([AM_CPPFLAGS])
 
1433
AC_SUBST([AM_CFLAGS])
 
1434
AC_SUBST([AM_CXXFLAGS])
 
1435
 
 
1436
dnl We've collected the flags in AM_*FLAGS now, so blank these.
 
1437
CFLAGS=""
 
1438
CXXFLAGS=""
 
1439
CPPFLAGS=""
 
1440
 
 
1441
AC_SUBST(pkgplugindir,"\$(pkglibdir)/plugin")
131
1442
 
132
1443
dnl GCC Precompiled Header Support
133
1444
dnl re-enable later
134
1445
dnl AM_CONDITIONAL([BUILD_GCC_PCH],[test "$GCC" = "yes"])
135
1446
AM_CONDITIONAL([BUILD_GCC_PCH],[test "no" = "yes"])
136
1447
 
137
 
AS_IF([test "$lt_cv_prog_gnu_ld" = "yes"],[
138
 
  LDFLAGS="${LDFLAGS} ${LD_VERSION_SCRIPT}"
139
 
  ])
140
 
 
141
 
WITH_VALGRIND
142
 
 
143
1448
AC_CONFIG_FILES(Makefile dnl
144
 
 tests/Makefile dnl
145
 
 drizzled/plugin/version.h dnl
146
 
 support-files/libdrizzle.pc dnl
 
1449
 gnulib/Makefile dnl
 
1450
 po/Makefile.in dnl
 
1451
 drizzled/message/Makefile dnl
 
1452
 drizzled/Makefile dnl
 
1453
 support-files/Makefile dnl
 
1454
 tests/Makefile tests/install_test_db dnl
 
1455
 drizzled/drizzled_safe dnl
147
1456
 support-files/drizzle.server support-files/drizzle-log-rotate
 
1457
 support-files/smf/Makefile dnl
148
1458
 support-files/smf/install.sh dnl
149
 
 support-files/drizzle.spec dnl
150
1459
 support-files/smf/drizzle.xml dnl
151
1460
 support-files/smf/drizzle)
152
1461
 
165
1474
  fi
166
1475
done
167
1476
 
 
1477
AC_CONFIG_COMMANDS([timestamp-h], , test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h)
 
1478
 
 
1479
AC_CONFIG_COMMANDS_PRE([
 
1480
if test "x$EGREP" != "x" -a -d po
 
1481
then
 
1482
  echo "# This file is auto-generated from configure. Do not edit directly" > po/POTFILES.in.in
 
1483
  # The grep -v 'drizzle-' is to exclude any distcheck leftovers
 
1484
  for f in `find . | grep -v 'drizzle-' | ${EGREP} '\.(cc|c|h|yy)$' | cut -c3- | sort`
 
1485
  do
 
1486
    if grep gettext.h "$f" | grep include >/dev/null 2>&1
 
1487
    then
 
1488
      echo "$f" >> po/POTFILES.in.in
 
1489
    fi
 
1490
  done
 
1491
  if ! diff po/POTFILES.in.in po/POTFILES.in >/dev/null 2>&1
 
1492
  then
 
1493
    mv po/POTFILES.in.in po/POTFILES.in
 
1494
  else
 
1495
    rm po/POTFILES.in.in
 
1496
  fi
 
1497
else
 
1498
  touch po/POTFILES.in
 
1499
fi
 
1500
])
 
1501
 
 
1502
# Ensure that table handlers gets all modifications to CFLAGS/CXXFLAGS
 
1503
AC_CONFIG_COMMANDS_POST(ac_configure_args="$ac_configure_args CFLAGS='$CFLAGS' CXXFLAGS='$CXXFLAGS' AM_CFLAGS='$AM_CFLAGS' AM_CXXFLAGS='$AM_CXXFLAGS'")
 
1504
 
168
1505
AC_OUTPUT
169
1506
 
170
1507
echo "---"
171
 
echo "Configuration summary for $PACKAGE_NAME version $VERSION $PANDORA_RELEASE_COMMENT"
 
1508
echo "Configuration summary for $PACKAGE_NAME version $VERSION"
172
1509
echo ""
173
1510
echo "   * Installation prefix:       $prefix"
174
 
echo "   * System type:               $host_vendor-$host_os"
175
 
echo "   * pandora-build version:     PANDORA_CANONICAL_VERSION"
 
1511
echo "   * System type:               $SYSTEM_TYPE"
176
1512
echo "   * Host CPU:                  $host_cpu"
177
1513
echo "   * C Compiler:                $CC_VERSION"
178
1514
echo "   * C++ Compiler:              $CXX_VERSION"
 
1515
echo "   * Build auth_pam:            $ac_cv_header_security_pam_appl_h"
179
1516
echo "   * Assertions enabled:        $ac_cv_assert"
180
1517
echo "   * Debug enabled:             $with_debug"
181
1518
echo "   * Profiling enabled:         $ac_profiling"
182
1519
echo "   * Coverage enabled:          $ac_coverage"
183
 
echo "   * Warnings as failure:       $ac_cv_warnings_as_errors"
 
1520
echo "   * Warnings as failure:       $ac_warn_fail"
 
1521
echo "   * Scheduling Plugins:        $scheduling_plugins"
 
1522
echo "   * C++ cstdint location:      $ac_cv_cxx_cstdint"
 
1523
echo "   * C++ hash_map location:     $ac_cv_cxx_hash_map"
 
1524
echo "   * C++ hash namespace:        $ac_cv_cxx_hash_namespace"
 
1525
echo "   * C++ shared_ptr namespace:  $ac_cv_shared_ptr_namespace"
184
1526
echo ""
185
1527
echo "---"
186
1528
 
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
1529
dnl libtoolize scans configure.ac  and needs to see some text
203
1530
m4_define([LIBTOOLIZE_AC_INIT], [])