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