~drizzle-trunk/drizzle/development

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