~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to configure.ac

  • Committer: Padraig O'Sullivan
  • Date: 2009-09-13 01:03:01 UTC
  • mto: (1126.9.2 captain-20090915-01)
  • mto: This revision was merged to the branch mainline in revision 1133.
  • Revision ID: osullivan.padraig@gmail.com-20090913010301-tcvvezipx1124acy
Added calls to the dtrace delete begin/end probes.

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([drizzle],[7],[http://bugs.launchpad.net/drizzle])
 
21
AC_INIT([drizzle],[RELEASE_VERSION],[http://bugs.launchpad.net/drizzle])
24
22
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, skip-visibility, version-from-vc)
28
 
 
29
 
dnl Set the default datadir location to /usr/local/var/drizzle. If a
30
 
dnl localstatedir is explicitly given, just use that.
31
 
AS_IF([test "x${localstatedir}" = 'x${prefix}/var'],[
32
 
  localstatedir='${prefix}/var/drizzle'
33
 
])
 
23
AC_CONFIG_AUX_DIR(config)
 
24
AC_CONFIG_HEADERS([config.h])
 
25
AC_CONFIG_MACRO_DIR([m4])
 
26
 
 
27
PANDORA_CANONICAL_TARGET(less-warnings, warnings-always-on, use-gnulib, require-cxx, force-gcc42)
 
28
 
 
29
# Version with no dots
 
30
AC_DEFINE([DRIZZLE_VERSION_ID],RELEASE_ID,
 
31
          [Version ID that can be easily used for numeric comparison])
 
32
 
 
33
AC_DEFINE([_BACKWARD_BACKWARD_WARNING_H],[1],[Hack to disable deprecation warning in gcc])
 
34
 
 
35
# The port that was assigned by IANA.
 
36
DRIZZLE_TCP_PORT_DEFAULT=4427
 
37
 
 
38
# Set this for plugins to use
 
39
ac_build_drizzle="yes"
 
40
 
34
41
 
35
42
AC_PATH_PROG(GPERF, gperf)
36
43
AS_IF([test "x$GPERF" = "x"],
37
44
      AC_MSG_ERROR("Drizzle requires gperf to build."))
38
45
 
 
46
AC_PATH_PROG(LCOV, lcov)
 
47
AC_PATH_PROG(GENHTML, genhtml)
 
48
 
 
49
AM_CONDITIONAL(HAVE_LCOV,[test "x$LCOV" != "x"])
 
50
 
39
51
AC_CHECK_PROGS(YACC, ['bison -y'])
40
 
AS_IF([test "x$YACC" = "x" -a "$pandora_building_from_bzr" = "yes"],[
 
52
AS_IF([test "x$YACC" = "x" -a "$building_from_bzr" = "yes"],[
41
53
  AC_MSG_ERROR(["bison is required for Drizzle to build from a bzr branch"])
42
54
])
43
55
 
44
56
 
45
 
PANDORA_RUN_CPPLINT
 
57
AM_GNU_GETTEXT(external, need-formatstring-macros)
 
58
if test "x$MSGMERGE" = "x" -o "x$MSGMERGE" = "x:"
 
59
then
 
60
  AM_PATH_PROG_WITH_TEST(GMSGMERGE, gmsgmerge,
 
61
    [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :)
 
62
  MSGMERGE="${GMSGMERGE}"
 
63
fi
 
64
AM_CONDITIONAL([BUILD_GETTEXT],[test "x$MSGMERGE" != "x" -a "x$MSGMERGE" != "x:"])
 
65
 
 
66
 
 
67
AC_CXX_STL_HASH
 
68
AC_CXX_CSTDINT
 
69
AC_CXX_CINTTYPES
 
70
 
 
71
PANDORA_REQUIRE_PTHREAD
46
72
 
47
73
PANDORA_REQUIRE_LIBPROTOBUF
48
 
PANDORA_PROTOBUF_REQUIRE_VERSION([2.1.0])
 
74
PANDORA_PROTOBUF_REQUIRE_VERSION([2.0.3])
49
75
PANDORA_REQUIRE_PROTOC
50
76
 
 
77
#--------------------------------------------------------------------
 
78
# Check for libuuid
 
79
#--------------------------------------------------------------------
 
80
 
 
81
dnl Do this by hand. Need to check for uuid/uuid.h, but uuid may or may
 
82
dnl not be a lib is weird.
 
83
 
 
84
AC_CHECK_HEADERS(uuid/uuid.h)
 
85
if test "x$ac_cv_header_uuid_uuid_h" = "xno"
 
86
then
 
87
  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.])
 
88
fi
 
89
AC_LIB_HAVE_LINKFLAGS(uuid,,
 
90
[
 
91
#include <uuid/uuid.h>
 
92
],
 
93
[
 
94
  uuid_t uout;
 
95
  uuid_generate(uout);
 
96
])
 
97
 
 
98
 
 
99
 
 
100
 
 
101
#--------------------------------------------------------------------
 
102
# Check for tcmalloc/mtmalloc
 
103
#--------------------------------------------------------------------
 
104
 
 
105
PANDORA_HAVE_BETTER_MALLOC
 
106
LIBS="${LIBS} ${BETTER_MALLOC_LIBS}"
 
107
 
 
108
#--------------------------------------------------------------------
 
109
# Check for libdrizzle
 
110
#--------------------------------------------------------------------
 
111
 
51
112
AC_LANG_PUSH(C++)
52
 
PANDORA_REQUIRE_PTHREAD
53
 
PANDORA_REQUIRE_LIBUUID
54
113
PANDORA_REQUIRE_LIBDRIZZLE
55
 
PANDORA_REQUIRE_LIBZ
56
 
PANDORA_REQUIRE_LIBPCRE
57
 
PANDORA_REQUIRE_LIBREADLINE
58
 
PANDORA_REQUIRE_LIBDL
59
114
AC_LANG_POP
60
115
 
61
 
PANDORA_USE_BETTER_MALLOC
62
 
 
63
 
PANDORA_DRIZZLE_BUILD
64
 
AC_DEFINE([BUILDING_DRIZZLE],[1],
65
 
          [Define indicating we are building and not consuming drizzle.])
 
116
 
 
117
#--------------------------------------------------------------------
 
118
# Check for libz
 
119
#--------------------------------------------------------------------
 
120
 
 
121
AC_LIB_HAVE_LINKFLAGS(z,,
 
122
[#include <zlib.h>],
 
123
[
 
124
  crc32(0, Z_NULL, 0);
 
125
])
 
126
AS_IF([test x$ac_cv_libz = xno],
 
127
      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.]))
 
128
 
 
129
#--------------------------------------------------------------------
 
130
# Check for libreadline or compatible (libedit on Mac OS X)
 
131
#--------------------------------------------------------------------
 
132
 
 
133
save_LIBS="${LIBS}"
 
134
LIBS=""
 
135
VL_LIB_READLINE
 
136
AS_IF([test "x$vl_cv_lib_readline" = "xno"],
 
137
      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.]))
 
138
READLINE_LIBS="${LIBS}"
 
139
LIBS="${save_LIBS}"
 
140
AC_SUBST(READLINE_LIBS)
 
141
 
 
142
DRIZZLE_CHECK_NEW_RL_INTERFACE
 
143
 
 
144
#--------------------------------------------------------------------
 
145
# Check for libpcre
 
146
#--------------------------------------------------------------------
 
147
 
 
148
AC_LIB_HAVE_LINKFLAGS(pcre,,
 
149
[#include <pcre.h>],
 
150
[
 
151
  pcre *re= NULL;
 
152
  pcre_version();
 
153
])
 
154
AS_IF([test "x$ac_cv_libpcre" = "xno"],
 
155
[
 
156
  unset ac_cv_libpcre
 
157
  unset HAVE_LIBPCRE
 
158
  unset LIBPCRE
 
159
  unset LIBPCRE_PREFIX
 
160
  unset LTLIBPCRE
 
161
  AC_LIB_HAVE_LINKFLAGS(pcre,,
 
162
  [#include <pcre/pcre.h>],
 
163
  [
 
164
    pcre *re= NULL;
 
165
    pcre_version();
 
166
  ])
 
167
  AS_IF([test "x$ac_cv_libpcre" = "xno"],
 
168
  [
 
169
    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.])
 
170
  ],[
 
171
    AC_DEFINE(PCRE_HEADER,[<pcre/pcre.h>],[Location of pcre header])
 
172
  ])
 
173
],[
 
174
  AC_DEFINE(PCRE_HEADER,[<pcre.h>],[Location of pcre header])
 
175
])
 
176
 
 
177
 
 
178
AC_PATH_PROG(PERL, perl, no)
66
179
 
67
180
 
68
181
AC_ARG_WITH([server-suffix],
69
182
    [AS_HELP_STRING([--with-server-suffix],
70
183
      [Append value to the version string.])],
71
 
    [ DRIZZLE_SERVER_SUFFIX="$withval" ]
72
 
    [ DRIZZLE_SERVER_SUFFIX= ])
73
 
 
 
184
    [ DRIZZLE_SERVER_SUFFIX=`echo "$withval" | sed -e  's/^\(...................................\)..*$/\1/'` ],
 
185
    [ DRIZZLE_SERVER_SUFFIX= ]
 
186
    )
74
187
AC_DEFINE_UNQUOTED([DRIZZLE_SERVER_SUFFIX],[$DRIZZLE_SERVER_SUFFIX],
75
188
                   [Append value to the version string])
76
189
 
77
 
 
 
190
# Force use of a curses libs
 
191
AC_ARG_WITH([named-curses-libs],
 
192
    [AS_HELP_STRING([--with-named-curses-libs=ARG],
 
193
            [Use specified curses libraries instead of those
 
194
                automatically found by configure.])],
 
195
    [ with_named_curses=$withval ],
 
196
    [ with_named_curses=no ]
 
197
    )
 
198
 
 
199
AC_ARG_WITH([tcp-port],
 
200
    [AS_HELP_STRING([--with-tcp-port=port-number],
 
201
            [Which port to use for Drizzle TCP services @<:@default=4427@:>@])],
 
202
    [ DRIZZLE_TCP_PORT=$withval ],
 
203
    [ DRIZZLE_TCP_PORT=$DRIZZLE_TCP_PORT_DEFAULT
 
204
      # if we actually defaulted (as opposed to the pathological case of
 
205
      # --with-tcp-port=<DRIZZLE_TCP_PORT_DEFAULT> which might in theory
 
206
      # happen if whole batch of servers was built from a script), set
 
207
      # the default to zero to indicate that; we don't lose information
 
208
      # that way, because 0 obviously indicates that we can get the
 
209
      # default value from DRIZZLE_TCP_PORT. this seems really evil, but
 
210
      # testing for DRIZZLE_TCP_PORT==DRIZZLE_TCP_PORT_DEFAULT would make a
 
211
      # a port of DRIZZLE_TCP_PORT_DEFAULT magic even if the builder did not
 
212
      # intend it to mean "use the default, in fact, look up a good default
 
213
      # from /etc/services if you can", but really, really meant 4427 when
 
214
      # they passed in 4427. When they pass in a specific value, let them
 
215
      # have it; don't second guess user and think we know better, this will
 
216
      # just make people cross.  this makes the the logic work like this
 
217
      # (which is complicated enough):
 
218
      #
 
219
      # - if a port was set during build, use that as a default.
 
220
      #
 
221
      # - otherwise, try to look up a port in /etc/services; if that fails,
 
222
      #   use DRIZZLE_TCP_PORT_DEFAULT (at the time of this writing 4427)
 
223
      #
 
224
      # - allow the DRIZZLE_TCP_PORT environment variable to override that.
 
225
      #
 
226
      # - allow command-line parameters to override all of the above.
 
227
      #
 
228
      # the top-most DRIZZLE_TCP_PORT_DEFAULT is read from win/configure.js,
 
229
      # so don't mess with that.
 
230
      DRIZZLE_TCP_PORT_DEFAULT=0 ]
 
231
    )
 
232
 
 
233
AC_SUBST(DRIZZLE_TCP_PORT)
 
234
AC_SUBST(DRIZZLE_TCP_PORT_DEFAULT)
 
235
AC_DEFINE_UNQUOTED([DRIZZLE_TCP_PORT],[$DRIZZLE_TCP_PORT],
 
236
                   [Drizzle port to use])
 
237
AC_DEFINE_UNQUOTED([DRIZZLE_TCP_PORT_DEFAULT],[$DRIZZLE_TCP_PORT_DEFAULT],
 
238
                   [If we defaulted to DRIZZLE_PORT, then this will be zero])
 
239
 
 
240
 
 
241
# Use this to set the place used for unix socket used to local communication.
78
242
AC_ARG_WITH([drizzled-user],
79
243
    [AS_HELP_STRING([--with-drizzled-user=username],
80
244
            [What user the drizzled daemon shall be run as.
81
245
                @<:@default=drizzle@:>@])],
82
 
    [ DRIZZLED_USER="$withval" ],
83
 
    [ DRIZZLED_USER=drizzle ])
 
246
    [ DRIZZLED_USER=$withval ],
 
247
    [ DRIZZLED_USER=drizzle ]
 
248
    )
84
249
AC_SUBST(DRIZZLED_USER)
85
250
 
 
251
# If we should allow LOAD DATA LOCAL
 
252
AC_MSG_CHECKING(If we should should enable LOAD DATA LOCAL by default)
 
253
AC_ARG_ENABLE(local-infile,
 
254
    [  --enable-local-infile   Enable LOAD DATA LOCAL INFILE (default: disabled)],
 
255
    [ ENABLED_LOCAL_INFILE=$enableval ],
 
256
    [ ENABLED_LOCAL_INFILE=no ]
 
257
    )
 
258
if test "$ENABLED_LOCAL_INFILE" = "yes"
 
259
then
 
260
  AC_MSG_RESULT([yes])
 
261
  AC_DEFINE([ENABLED_LOCAL_INFILE], [1],
 
262
            [If LOAD DATA LOCAL INFILE should be enabled by default])
 
263
else
 
264
  AC_MSG_RESULT([no])
 
265
fi
 
266
 
 
267
#--------------------------------------------------------------------
 
268
# Check for system header files
 
269
#--------------------------------------------------------------------
 
270
 
 
271
AC_HEADER_DIRENT
 
272
AC_HEADER_STDC
 
273
AC_HEADER_SYS_WAIT
 
274
AC_HEADER_STDBOOL
 
275
AC_CHECK_HEADERS(fcntl.h float.h fpu_control.h ieeefp.h)
 
276
AC_CHECK_HEADERS(limits.h pwd.h select.h linux/config.h)
 
277
AC_CHECK_HEADERS(sys/fpu.h utime.h sys/utime.h )
 
278
AC_CHECK_HEADERS(synch.h sys/mman.h sys/socket.h)
 
279
AC_CHECK_HEADERS([curses.h term.h],[],[],
 
280
[[#ifdef HAVE_CURSES_H
 
281
# include <curses.h>
 
282
#endif
 
283
]])
 
284
AC_CHECK_HEADERS(termio.h termios.h sched.h alloca.h)
 
285
AC_CHECK_HEADERS(sys/prctl.h ieeefp.h)
 
286
AC_CHECK_HEADERS(execinfo.h)
 
287
 
 
288
#--------------------------------------------------------------------
 
289
# Check for system libraries. Adds the library to $LIBS
 
290
# and defines HAVE_LIBM etc
 
291
#--------------------------------------------------------------------
 
292
 
 
293
AC_CHECK_LIB(m, floor, [], AC_CHECK_LIB(m, __infinity))
 
294
 
 
295
AC_CHECK_FUNC(setsockopt, [], [AC_CHECK_LIB(socket, setsockopt)])
 
296
AC_CHECK_FUNC(yp_get_default_domain, [],
 
297
  [AC_CHECK_LIB(nsl, yp_get_default_domain)])
 
298
AC_CHECK_FUNC(p2open, [], [AC_CHECK_LIB(gen, p2open)])
 
299
# This may get things to compile even if bind-8 is installed
 
300
AC_CHECK_FUNC(bind, [], [AC_CHECK_LIB(bind, bind)])
 
301
# Check if crypt() exists in libc or libcrypt, sets LIBS if needed
 
302
AC_SEARCH_LIBS(crypt, crypt, AC_DEFINE(HAVE_CRYPT, 1, [crypt]))
 
303
 
 
304
# Check rt for aio_read
 
305
AC_CHECK_LIB(rt, aio_read)
 
306
 
 
307
# For the sched_yield() function on Solaris
 
308
AC_CHECK_FUNC(sched_yield, [],
 
309
  [AC_CHECK_LIB(posix4, [sched_yield],
 
310
    [AC_DEFINE(HAVE_SCHED_YIELD, 1, [Have sched_yield function]) LIBS="$LIBS -lposix4"])])
 
311
 
 
312
if test "$ac_cv_header_termio_h" = "no" -a "$ac_cv_header_termios_h" = "no"
 
313
then
 
314
  AC_CHECK_FUNC(gtty, [], [AC_CHECK_LIB(compat, gtty)])
 
315
fi
 
316
 
 
317
AC_CHECK_TYPES([fp_except], [], [], [
 
318
#include <sys/types.h>
 
319
#include <ieeefp.h>
 
320
])
 
321
 
 
322
my_save_LIBS="$LIBS"
 
323
LIBS=""
 
324
AC_CHECK_LIB(dl,dlopen)
 
325
AC_CHECK_FUNCS(dlopen)
 
326
if test "$ac_cv_func_dlopen" != "yes"
 
327
then
 
328
  AC_MSG_ERROR([Drizzle requires dlopen])
 
329
fi
 
330
LIBDL_LIBS="$LIBS"
 
331
LIBS="$my_save_LIBS"
 
332
AC_SUBST(LIBDL_LIBS)
 
333
 
 
334
 
 
335
AC_ARG_WITH([atomic-ops],
 
336
    [AS_HELP_STRING([--with-atomic-ops=rwlocks|smp|up],
 
337
       [Implement atomic operations using pthread rwlocks or atomic CPU
 
338
        instructions for multi-processor or uniprocessor
 
339
        configuration. By default gcc built-in sync functions are used,
 
340
        if available and 'smp' configuration otherwise.])],
 
341
    [with_atomic_ops="$withval"],
 
342
    [with_atomic_ops=smp])
 
343
 
 
344
case "$with_atomic_ops" in
 
345
  "up") AC_DEFINE([MY_ATOMIC_MODE_DUMMY], [1],
 
346
                  [Assume single-CPU mode, no concurrency]) ;;
 
347
  "rwlocks") AC_DEFINE([MY_ATOMIC_MODE_RWLOCKS], [1],
 
348
                  [Use pthread rwlocks for atomic ops]) ;;
 
349
  "smp") 
 
350
    AC_CACHE_CHECK(
 
351
      [whether the compiler provides atomic builtins],
 
352
      [ac_cv_gcc_atomic_builtins],
 
353
      [AC_RUN_IFELSE(
 
354
        [AC_LANG_PROGRAM([],[[
 
355
          int foo= -10; int bar= 10;
 
356
          if (!__sync_fetch_and_add(&foo, bar) || foo)
 
357
            return -1;
 
358
          bar= __sync_lock_test_and_set(&foo, bar);
 
359
          if (bar || foo != 10)
 
360
            return -1;
 
361
          bar= __sync_val_compare_and_swap(&bar, foo, 15);
 
362
          if (bar)
 
363
            return -1;
 
364
          return 0;
 
365
        ]])],
 
366
       [ac_cv_gcc_atomic_builtins=yes],
 
367
       [ac_cv_gcc_atomic_builtins=no])])
 
368
 
 
369
    if test "x$ac_cv_gcc_atomic_builtins" = "xyes"; then
 
370
      AC_DEFINE(HAVE_GCC_ATOMIC_BUILTINS, 1,
 
371
                [Define to 1 if compiler provides atomic builtins.])
 
372
    fi
 
373
   ;;
 
374
   *) AC_MSG_ERROR(["$with_atomic_ops" is not a valid value for --with-atomic-ops]) ;;
 
375
esac
 
376
 
86
377
 
87
378
AC_ARG_WITH([comment],
88
379
    [AS_HELP_STRING([--with-comment],
89
380
            [Comment about compilation environment. @<:@default=off@:>@])],
90
381
    [with_comment=$withval],
91
382
    [with_comment=no])
92
 
AS_IF([test "$with_comment" != "no"],[
 
383
if test "$with_comment" != "no"
 
384
then
93
385
  COMPILATION_COMMENT=$with_comment
94
 
],[
95
 
  COMPILATION_COMMENT="Source distribution (${PANDORA_RELEASE_COMMENT})"
96
 
])
 
386
else
 
387
  COMPILATION_COMMENT="Source distribution (RELEASE_COMMENT)"
 
388
fi
97
389
AC_DEFINE_UNQUOTED([COMPILATION_COMMENT],["$COMPILATION_COMMENT"],
98
390
                   [Comment about compilation environment])
99
391
 
 
392
dnl Checks for typedefs, structures, and compiler characteristics.
 
393
 
 
394
AC_STRUCT_TM
 
395
# off_t is not a builtin type
 
396
AC_CHECK_SIZEOF(off_t, 4)
 
397
if test "$ac_cv_sizeof_off_t" -eq 0
 
398
then
 
399
  AC_MSG_ERROR("Drizzle needs a off_t type.")
 
400
fi
 
401
AC_CHECK_SIZEOF(size_t)
 
402
AC_DEFINE_UNQUOTED([SIZEOF_SIZE_T],[$ac_cv_sizeof_size_t],[Size of size_t as computed by sizeof()])
 
403
AC_CHECK_SIZEOF(long long)
 
404
AC_DEFINE_UNQUOTED(SIZEOF_LONG_LONG,[$ac_cv_sizeof_long_long],[Size of long long as computed by sizeof()])
 
405
 
 
406
dnl
 
407
dnl check if time_t is unsigned
 
408
dnl
 
409
 
 
410
DRIZZLE_CHECK_TIME_T
 
411
 
 
412
DRIZZLE_STACK_DIRECTION
 
413
 
 
414
AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
 
415
AC_CHECK_TYPES([uint, ulong])
 
416
 
 
417
DRIZZLE_PTHREAD_YIELD
 
418
 
 
419
 
 
420
dnl Checks for header files.
 
421
AC_CHECK_HEADERS(malloc.h)
 
422
 
 
423
dnl Checks for library functions.
 
424
AC_FUNC_ALLOCA
 
425
 
 
426
AC_CHECK_FUNCS(issetugid)
 
427
 
 
428
# Already-done: stdlib.h string.h unistd.h termios.h
 
429
AC_CHECK_HEADERS(stdarg.h dirent.h locale.h ndir.h sys/dir.h \
 
430
 sys/ndir.h sys/select.h \
 
431
 sys/mman.h termcap.h termio.h asm/termbits.h grp.h \
 
432
 paths.h)
 
433
 
 
434
# Already-done: strcasecmp
 
435
AC_CHECK_FUNCS(lstat select)
 
436
 
 
437
AC_HEADER_STAT
 
438
DRIZZLE_HAVE_TIOCGWINSZ
 
439
DRIZZLE_HAVE_TIOCSTAT
100
440
 
101
441
#########################################################################
102
442
 
 
443
dnl Checks for library functions.
 
444
 
 
445
AC_FUNC_UTIME_NULL
 
446
AC_FUNC_VPRINTF
 
447
 
 
448
AC_CHECK_FUNCS(fcntl)
 
449
if test "x$ac_cv_func_fcntl" != "xyes"
 
450
then
 
451
  AC_MSG_ERROR("Drizzle requires fcntl.")
 
452
fi
 
453
 
 
454
AC_CONFIG_LIBOBJ_DIR([gnulib])
 
455
 
 
456
AC_CHECK_FUNCS( \
 
457
  cuserid fchmod \
 
458
  fdatasync fpresetsticky fpsetmask fsync \
 
459
  getpassphrase getpwnam \
 
460
  getpwuid getrlimit getrusage index initgroups isnan \
 
461
  localtime_r log log2 gethrtime gmtime_r \
 
462
  madvise \
 
463
  mkstemp mlockall poll pread pthread_attr_create mmap mmap64 \
 
464
  pthread_attr_getstacksize pthread_attr_setprio pthread_attr_setschedparam \
 
465
  pthread_attr_setstacksize pthread_condattr_create pthread_getsequence_np \
 
466
  pthread_key_delete pthread_rwlock_rdlock pthread_setprio \
 
467
  pthread_setprio_np pthread_setschedparam pthread_sigmask readlink \
 
468
  realpath rename rwlock_init setupterm \
 
469
  sigaction \
 
470
  sigthreadmask \
 
471
  snprintf strpbrk \
 
472
  tell tempnam \
 
473
  backtrace backtrace_symbols backtrace_symbols_fd)
 
474
 
 
475
AC_LANG_PUSH(C++)
 
476
# Test whether madvise() is declared in C++ code -- it is not on some
 
477
# systems, such as Solaris
 
478
AC_CHECK_DECLS([madvise], [], [], [AC_INCLUDES_DEFAULT[
 
479
#if HAVE_SYS_MMAN_H
 
480
#include <sys/types.h>
 
481
#include <sys/mman.h>
 
482
#endif
 
483
]])
 
484
AC_LANG_POP()
 
485
 
 
486
 
 
487
AM_CONDITIONAL(BUILD_THR_RWLOCK,[test "$ac_cv_func_rwlock_init" -a "$ac_cv_funn_pthread_rwlock_rdlock"])
 
488
 
 
489
 
 
490
# Sanity check: We chould not have any fseeko symbol unless
 
491
# large_file_support=yes
 
492
AC_CHECK_FUNC(fseeko,
 
493
[if test "$large_file_support" = no -a "x$TARGET_LINUX" = "xtrue";
 
494
then
 
495
  AC_MSG_ERROR("Found fseeko symbol but large_file_support is not enabled!")
 
496
fi]
 
497
)
 
498
 
 
499
# Check definition of pthread_getspecific
 
500
AC_CACHE_CHECK([args to pthread_getspecific], [mysql_cv_getspecific_args],
 
501
  [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 
502
#if !defined(_REENTRANT)
 
503
#define _REENTRANT
 
504
#endif
 
505
#ifndef _POSIX_PTHREAD_SEMANTICS 
 
506
#define _POSIX_PTHREAD_SEMANTICS 
 
507
#endif
 
508
#include <pthread.h>
 
509
   ]], [[
 
510
void *pthread_getspecific(pthread_key_t key);
 
511
pthread_getspecific((pthread_key_t) NULL);
 
512
   ]])],
 
513
    [mysql_cv_getspecific_args=POSIX],
 
514
    [mysql_cv_getspecific_args=other])])
 
515
  if test "$mysql_cv_getspecific_args" = "other"
 
516
  then
 
517
    AC_DEFINE([HAVE_NONPOSIX_PTHREAD_GETSPECIFIC], [1],
 
518
              [For some non posix threads])
 
519
  fi
 
520
 
 
521
  # Check definition of pthread_mutex_init
 
522
  AC_CACHE_CHECK([args to pthread_mutex_init], [mysql_cv_mutex_init_args],
 
523
    [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 
524
#ifndef _REENTRANT
 
525
#define _REENTRANT
 
526
#endif
 
527
#ifndef _POSIX_PTHREAD_SEMANTICS
 
528
#define _POSIX_PTHREAD_SEMANTICS 
 
529
#endif
 
530
#include <pthread.h> ]], [[ 
 
531
  pthread_mutexattr_t attr;
 
532
  pthread_mutex_t mp;
 
533
  pthread_mutex_init(&mp,&attr); ]])],
 
534
      [mysql_cv_mutex_init_args=POSIX],
 
535
      [mysql_cv_mutex_init_args=other])])
 
536
  if test "$mysql_cv_mutex_init_args" = "other"
 
537
  then
 
538
    AC_DEFINE([HAVE_NONPOSIX_PTHREAD_MUTEX_INIT], [1],
 
539
              [For some non posix threads])
 
540
  fi
 
541
#---END:
 
542
 
 
543
#---START: Used in for client configure
 
544
# Check definition of readdir_r
 
545
AC_CACHE_CHECK([args to readdir_r], [mysql_cv_readdir_r],
 
546
  [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
 
547
#ifndef _REENTRANT
 
548
#define _REENTRANT
 
549
#endif
 
550
#ifndef _POSIX_PTHREAD_SEMANTICS 
 
551
#define _POSIX_PTHREAD_SEMANTICS 
 
552
#endif
 
553
#include <pthread.h>
 
554
#include <dirent.h>]], [[ int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);
 
555
readdir_r((DIR *) NULL, (struct dirent *) NULL, (struct dirent **) NULL); ]])],
 
556
    [mysql_cv_readdir_r=POSIX],
 
557
    [mysql_cv_readdir_r=other])])
 
558
if test "$mysql_cv_readdir_r" = "POSIX"
 
559
then
 
560
  AC_DEFINE([HAVE_READDIR_R], [1], [POSIX readdir_r])
 
561
fi
 
562
 
 
563
# Check definition of posix sigwait()
 
564
AC_CACHE_CHECK([style of sigwait], [mysql_cv_sigwait],
 
565
  [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
 
566
#ifndef _REENTRANT
 
567
#define _REENTRANT
 
568
#endif
 
569
#ifndef _POSIX_PTHREAD_SEMANTICS
 
570
#define _POSIX_PTHREAD_SEMANTICS 
 
571
#endif
 
572
#include <pthread.h>
 
573
#include <signal.h>
 
574
      ]], [[
 
575
#ifndef _AIX
 
576
sigset_t set;
 
577
int sig;
 
578
sigwait(&set,&sig);
 
579
#endif
 
580
      ]])],
 
581
    [mysql_cv_sigwait=POSIX],
 
582
    [mysql_cv_sigwait=other])])
 
583
if test "$mysql_cv_sigwait" = "POSIX"
 
584
then
 
585
  AC_DEFINE([HAVE_SIGWAIT], [1], [POSIX sigwait])
 
586
fi
 
587
 
 
588
if test "$mysql_cv_sigwait" != "POSIX"
 
589
then
 
590
unset mysql_cv_sigwait
 
591
# Check definition of posix sigwait()
 
592
AC_CACHE_CHECK([style of sigwait], [mysql_cv_sigwait],
 
593
  [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
 
594
#ifndef _REENTRANT
 
595
#define _REENTRANT
 
596
#endif
 
597
#ifndef _POSIX_PTHREAD_SEMANTICS
 
598
#define _POSIX_PTHREAD_SEMANTICS 
 
599
#endif
 
600
#include <pthread.h>
 
601
#include <signal.h>
 
602
      ]], [[
 
603
sigset_t set;
 
604
int sig;
 
605
sigwait(&set);
 
606
      ]])],
 
607
    [mysql_cv_sigwait=NONPOSIX],
 
608
    [mysql_cv_sigwait=other])])
 
609
if test "$mysql_cv_sigwait" = "NONPOSIX"
 
610
then
 
611
  AC_DEFINE([HAVE_NONPOSIX_SIGWAIT], [1], [sigwait with one argument])
 
612
fi
 
613
fi
 
614
#---END:
 
615
 
 
616
# Check if pthread_attr_setscope() exists
 
617
AC_CACHE_CHECK([for pthread_attr_setscope], [mysql_cv_pthread_attr_setscope],
 
618
  [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
 
619
#ifndef _REENTRANT
 
620
#define _REENTRANT
 
621
#endif
 
622
#ifndef _POSIX_PTHREAD_SEMANTICS
 
623
#define _POSIX_PTHREAD_SEMANTICS 
 
624
#endif
 
625
#include <pthread.h>
 
626
      ]], [[
 
627
pthread_attr_t thr_attr;
 
628
pthread_attr_setscope(&thr_attr,0);
 
629
      ]])],
 
630
    [mysql_cv_pthread_attr_setscope=yes],
 
631
    [mysql_cv_pthread_attr_setscope=no])])
 
632
if test "$mysql_cv_pthread_attr_setscope" = "yes"
 
633
then
 
634
  AC_DEFINE([HAVE_PTHREAD_ATTR_SETSCOPE], [1], [pthread_attr_setscope])
 
635
fi
 
636
 
 
637
AC_LANG_PUSH([C++])
 
638
AC_CHECK_HEADERS(cxxabi.h)
 
639
AC_CACHE_CHECK([checking for abi::__cxa_demangle], mysql_cv_cxa_demangle,
 
640
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <cxxabi.h>]], [[
 
641
  char *foo= 0; int bar= 0;
 
642
  foo= abi::__cxa_demangle(foo, foo, 0, &bar);
 
643
]])],[mysql_cv_cxa_demangle=yes],[mysql_cv_cxa_demangle=no])])
 
644
AC_LANG_POP([])
 
645
 
 
646
if test "x$mysql_cv_cxa_demangle" = xyes; then
 
647
  AC_DEFINE(HAVE_ABI_CXA_DEMANGLE, 1,
 
648
            [Define to 1 if you have the `abi::__cxa_demangle' function.])
 
649
fi
 
650
 
 
651
#--------------------------------------------------------------------
 
652
# Check for requested features
 
653
#--------------------------------------------------------------------
 
654
 
 
655
DRIZZLE_CHECK_MAX_INDEXES
103
656
 
104
657
dnl Has to be done late, as the plugin may need to check for existence of
105
658
dnl functions tested above
106
 
PANDORA_PLUGINS([drizzled/plugin/load_list.h])
 
659
PANDORA_PLUGINS
107
660
 
108
661
dnl GCC Precompiled Header Support
109
662
dnl re-enable later
113
666
AC_CONFIG_FILES(Makefile dnl
114
667
 gnulib/Makefile dnl
115
668
 po/Makefile.in dnl
116
 
 tests/Makefile dnl
117
 
 drizzled/plugin/version.h dnl
 
669
 drizzled/message/Makefile dnl
 
670
 drizzled/Makefile dnl
 
671
 support-files/Makefile dnl
 
672
 tests/Makefile tests/install_test_db dnl
118
673
 support-files/drizzle.server support-files/drizzle-log-rotate
 
674
 support-files/smf/Makefile dnl
119
675
 support-files/smf/install.sh dnl
120
 
 support-files/drizzle.spec dnl
121
676
 support-files/smf/drizzle.xml dnl
122
677
 support-files/smf/drizzle)
123
678
 
139
694
AC_OUTPUT
140
695
 
141
696
echo "---"
142
 
echo "Configuration summary for $PACKAGE_NAME version $VERSION $PANDORA_RELEASE_COMMENT"
 
697
echo "Configuration summary for $PACKAGE_NAME version $VERSION RELEASE_COMMENT"
143
698
echo ""
144
699
echo "   * Installation prefix:       $prefix"
145
700
echo "   * System type:               $host_vendor-$host_os"