summaryrefslogtreecommitdiff
path: root/storage/innobase/configure.in
blob: 91afcc1c9b312586c3c293be1ddee9cbeb16b56d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
# Process this file with autoconf to produce a configure script
AC_INIT
AC_CANONICAL_SYSTEM
AM_MAINTAINER_MODE
AM_CONFIG_HEADER(ib_config.h)
AM_INIT_AUTOMAKE(ib, 0.90)

# This is need before AC_PROG_CC
#

if test "x${CFLAGS-}" = x ; then
  cflags_is_set=no
else
  cflags_is_set=yes
fi

if test "x${CPPFLAGS-}" = x ; then
  cppflags_is_set=no
else
  cppflags_is_set=yes
fi

if test "x${LDFLAGS-}" = x ; then
  ldflags_is_set=no
else
  ldflags_is_set=yes
fi

# The following hack should ensure that configure doesn't add optimizing
# or debugging flags to CFLAGS or CXXFLAGS
CFLAGS="$CFLAGS "
CXXFLAGS="$CXXFLAGS "

AC_PROG_CC
AC_PROG_RANLIB
AC_PROG_INSTALL
AC_PROG_LIBTOOL
AC_CHECK_HEADERS(aio.h sched.h)
AC_CHECK_SIZEOF(int, 4)
AC_CHECK_SIZEOF(long, 4)
AC_CHECK_SIZEOF(void*, 4)
AC_CHECK_FUNCS(sched_yield)
AC_CHECK_FUNCS(fdatasync)
AC_CHECK_FUNCS(localtime_r)
#AC_CHECK_FUNCS(readdir_r) MySQL checks that it has also the right args.
# Some versions of Unix only take 2 arguments.
#AC_C_INLINE  Already checked in MySQL
AC_C_BIGENDIAN

# Build optimized or debug version ?
# First check for gcc and g++
if test "$ac_cv_prog_gcc" = "yes"
then
  DEBUG_CFLAGS="-g"
  DEBUG_OPTIMIZE_CC="-O"
  OPTIMIZE_CFLAGS="$MAX_C_OPTIMIZE"
else
  DEBUG_CFLAGS="-g"
  DEBUG_OPTIMIZE_CC=""
  OPTIMIZE_CFLAGS="-O"
fi
if test "$ac_cv_prog_cxx_g" = "yes"
then
  DEBUG_CXXFLAGS="-g"
  DEBUG_OPTIMIZE_CXX="-O"
  OPTIMIZE_CXXFLAGS="-O3"
else
  DEBUG_CXXFLAGS="-g"
  DEBUG_OPTIMIZE_CXX=""
  OPTIMIZE_CXXFLAGS="-O"
fi
AC_ARG_WITH(debug,
    [  --without-debug         Build a production version without debugging code],
    [with_debug=$withval],
    [with_debug=no])
if test "$with_debug" = "yes"
then
  # Medium debug.
  CFLAGS="$DEBUG_CFLAGS $DEBUG_OPTIMIZE_CC -DDBUG_ON -DSAFE_MUTEX $CFLAGS"
  CXXFLAGS="$DEBUG_CXXFLAGS $DEBUG_OPTIMIZE_CXX -DSAFE_MUTEX $CXXFLAGS"
elif test "$with_debug" = "full"
then
  # Full debug. Very slow in some cases
  CFLAGS="$DEBUG_CFLAGS -DDBUG_ON -DSAFE_MUTEX -DSAFEMALLOC $CFLAGS"
  CXXFLAGS="$DEBUG_CXXFLAGS -DSAFE_MUTEX -DSAFEMALLOC $CXXFLAGS"
else
  # Optimized version. No debug
  CFLAGS="$OPTIMIZE_CFLAGS -DDBUG_OFF $CFLAGS -DDEBUG_OFF"
  CXXFLAGS="$OPTIMIZE_CXXFLAGS -DDBUG_OFF $CXXFLAGS -DDEBUG_OFF"
fi

# NOTE: The flags below are disabled by default since we can't easily get
# rid of the "string over 509 characters in length" warnings, and thus can't
# add -Werror. But it's a good idea to enable these for a test compile
# before shipping a new snapshot to MySQL to catch errors that could make
# the compile fail on non-C99 compilers.

# If using gcc, disallow usage of C99 features to avoid accidentally
# introducing problems on compilers that only implement C89.
#if test "$ac_cv_prog_gcc" = "yes"
#then
#  CFLAGS="$CFLAGS -std=c89 -ansi -pedantic -Wno-long-long"
#fi

# If using gcc, add some extra warning flags.
if test "$ac_cv_prog_gcc" = "yes"
then
  CFLAGS="$CFLAGS -Werror-implicit-function-declaration"
fi

case "$target_os" in
       lin*)
	 CFLAGS="$CFLAGS -DUNIV_LINUX";;
       hpux10*)
	 CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE -DUNIV_HPUX -DUNIV_HPUX10";;
       hp*)
	 CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE -DUNIV_HPUX";;
       aix*)
         CFLAGS="$CFLAGS -DUNIV_AIX";;
       irix*)
	 CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE";;
       osf*)
	 CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE";;
       sysv5uw7*)
	 # Problem when linking on SCO
	 CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE";;
       openbsd*)
         CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE";;
esac

case "$target" in
       i[[4567]]86-*-*)
	 CFLAGS="$CFLAGS -DUNIV_INTEL_X86";;
	 # The compiler on Linux/S390 does not seem to have inlining
       s390-*-*)
	 CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE";;
esac

# must go in pair with AR as set by MYSQL_CHECK_AR
if test -z "$ARFLAGS"
then
  ARFLAGS="cru"
fi
AC_SUBST(ARFLAGS)

AC_OUTPUT(Makefile os/Makefile ut/Makefile btr/Makefile dnl
		buf/Makefile data/Makefile dnl
		dict/Makefile dyn/Makefile dnl
		eval/Makefile fil/Makefile fsp/Makefile fut/Makefile dnl
		ha/Makefile ibuf/Makefile dnl
		lock/Makefile log/Makefile dnl
		mach/Makefile mem/Makefile mtr/Makefile dnl
		page/Makefile pars/Makefile que/Makefile dnl
		read/Makefile rem/Makefile row/Makefile dnl
		srv/Makefile sync/Makefile thr/Makefile trx/Makefile dnl
		usr/Makefile)