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