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