~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to configure.ac

Split out warnings - start using the pandora build system.

Show diffs side-by-side

added added

removed removed

Lines of Context:
24
24
AC_CONFIG_HEADERS([config.h])
25
25
AC_CONFIG_MACRO_DIR([m4])
26
26
 
27
 
# Setting CFLAGS here prevents AC_CANONICAL_TARGET from injecting them
28
 
SAVE_CFLAGS=${CFLAGS}
29
 
SAVE_CXXFLAGS=${CXXFLAGS}
30
 
CFLAGS=
31
 
CXXFLAGS=
32
 
 
33
 
AC_CANONICAL_TARGET
34
 
 
35
 
CFLAGS=${SAVE_CFLAGS}
36
 
CXXFLAGS=${SAVE_CXXFLAGS}
37
 
 
38
 
AM_INIT_AUTOMAKE(nostdinc subdir-objects -Wall -Werror)
39
 
gl_EARLY
40
 
 
41
 
if test "x${enable_dependency_tracking}" = "x"
42
 
then
43
 
  enable_dependency_tracking=yes
44
 
fi
45
 
 
46
 
if test -d "${srcdir}/.bzr"
47
 
then
48
 
  building_from_bzr=yes
49
 
else
50
 
  building_from_bzr=no
51
 
fi
52
 
 
53
 
AC_PROG_CXX
54
 
 
55
 
gl_USE_SYSTEM_EXTENSIONS
56
 
 
57
 
AC_PROG_CPP
58
 
AM_PROG_CC_C_O
59
 
 
60
 
CHECK_GCC_VERSION
61
 
dnl Once we can use a modern autoconf, we can use this
62
 
dnl AC_PROG_CC_C99
63
 
AC_CXX_CHECK_STANDARD
64
 
AC_CXX_HEADER_STDCXX_98
65
 
if test "$ac_cv_cxx_stdcxx_98" = "no"
66
 
then
67
 
  AC_MSG_ERROR([No working C++ Compiler has been found. Drizzle requires a C++ compiler that can handle C++98])
68
 
fi
69
 
 
70
 
 
71
 
gl_INIT
72
 
 
73
 
AC_C_BIGENDIAN
74
 
AC_C_CONST
75
 
AC_C_INLINE
76
 
AC_C_VOLATILE
77
 
AC_HEADER_TIME
78
 
AC_FUNC_MALLOC
79
 
AC_FUNC_REALLOC
80
 
 
81
 
AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
 
27
PANDORA_CANONICAL_TARGET(less-warnings warnings-always-on use-gnulib require-cxx)
82
28
 
83
29
# Version with no dots
84
30
AC_DEFINE([DRIZZLE_VERSION_ID],[RELEASE_ID],
89
35
# The port that was assigned by IANA.
90
36
DRIZZLE_TCP_PORT_DEFAULT=4427
91
37
 
92
 
m4_include(m4/dtrace.m4)
93
 
 
94
38
m4_include(m4/character_sets.m4)
95
39
AC_SUBST(AVAILABLE_LANGUAGES)
96
40
 
130
74
    ;;
131
75
esac
132
76
 
133
 
DRIZZLE_CHECK_C_VERSION
134
 
DRIZZLE_CHECK_CXX_VERSION
135
 
 
136
 
AC_SYS_LARGEFILE
137
 
 
138
77
AC_PATH_PROG(GPERF, gperf)
139
78
AS_IF([test "x$GPERF" = "x"],
140
79
      AC_MSG_ERROR("Drizzle requires gperf to build."))
151
90
fi
152
91
 
153
92
 
154
 
# Build optimized or debug version ?
155
 
# First check for gcc and g++
156
 
if test "$GCC" = "yes"
157
 
then
158
 
 
159
 
  AC_DEFINE([_GNU_SOURCE],[1],[Fix problem with S_ISLNK() on Linux])
160
 
 
161
 
  dnl The following is required for portable results of floating point 
162
 
  dnl calculations on PowerPC. The same must also be done for IA-64, but 
163
 
  dnl this options is missing in the IA-64 gcc backend.
164
 
  case "$target_cpu" in
165
 
    *ppc* | *powerpc*)
166
 
      AM_CFLAGS="-mno-fused-madd ${AM_CFLAGS}"
167
 
      AM_CXXFLAGS="-mno-fused-madd ${AM_CXXFLAGS}"
168
 
    ;;
169
 
  esac
170
 
 
171
 
  dnl Once we can use a modern autoconf, we can replace the std=gnu99 here
172
 
  dnl with using AC_CC_STD_C99 above
173
 
  CC="${CC} -std=gnu99"
174
 
 
175
 
  AM_CFLAGS="-ggdb3 ${AM_CFLAGS}"
176
 
  AM_CXXFLAGS="-ggdb3 ${AM_CXXFLAGS}"
177
 
  
178
 
  DEBUG_CFLAGS="-O0"
179
 
  DEBUG_CXXFLAGS="-O0"
180
 
 
181
 
  OPTIMIZE_CFLAGS="-O3"
182
 
  OPTIMIZE_CXXFLAGS="-O3"
183
 
fi
184
 
if test "$SUNCC" = "yes"
185
 
then
186
 
  dnl Once we can use a modern autoconf, we can replace the -xc99=all here
187
 
  dnl with using AC_CC_STD_C99 above
188
 
  CC="${CC} -xc99=all"
189
 
 
190
 
  AM_CFLAGS="-g -mt ${AM_CFLAGS}"
191
 
  AM_CXXFLAGS="-xlang=c99 -g -mt -compat=5 -library=stlport4 -template=no%extdef ${AM_CXXFLAGS}"
192
 
 
193
 
  OPTIMIZE_FLAGS="-xO3 -xlibmil -xdepend -xbuiltin -lmopt"
194
 
  OPTIMIZE_CFLAGS="${OPTIMIZE_FLAGS} -Xa -xstrconst"
195
 
  OPTIMIZE_CXXFLAGS="${OPTIMIZE_FLAGS}"
196
 
 
197
 
fi
198
 
ENABLE_64BIT
199
 
 
200
93
AM_GNU_GETTEXT(external, need-formatstring-macros)
201
94
if test "x$MSGMERGE" = "x" -o "x$MSGMERGE" = "x:"
202
95
then
207
100
AM_CONDITIONAL([BUILD_GETTEXT],[test "x$MSGMERGE" != "x" -a "x$MSGMERGE" != "x:"])
208
101
 
209
102
 
210
 
# We use libtool
211
 
AC_PROG_LIBTOOL
212
 
 
213
 
dnl TODO: Remove this define once we are using 2.61 across the board.
214
 
# AX_HEADER_ASSERT
215
 
# ----------------
216
 
# Check whether to enable assertions.
217
 
AC_DEFUN([AX_HEADER_ASSERT],
218
 
[
219
 
  AC_MSG_CHECKING([whether to enable assertions])
220
 
  AC_ARG_ENABLE([assert],
221
 
    [AS_HELP_STRING([--disable-assert],
222
 
       [Turn off assertions])],
223
 
    [ac_cv_assert="no"],
224
 
    [ac_cv_assert="yes"])
225
 
  AC_MSG_RESULT([$ac_cv_assert])
226
 
])
227
 
 
228
 
AX_HEADER_ASSERT
229
 
 
230
 
AC_ARG_WITH([debug],
231
 
    [AS_HELP_STRING([--with-debug],
232
 
       [Add debug code/turns off optimizations (yes|no) @<:@default=no@:>@])],
233
 
    [with_debug=$withval],
234
 
    [with_debug=no])
235
 
if test "$with_debug" = "yes"
236
 
then
237
 
  # Debuging. No optimization.
238
 
  AM_CFLAGS="${DEBUG_CFLAGS} ${AM_CFLAGS}"
239
 
  AM_CXXFLAGS="${DEBUG_CXXFLAGS} ${AM_CXXFLAGS}"
240
 
else
241
 
  # Optimized version. No debug
242
 
  AM_CFLAGS="${OPTIMIZE_CFLAGS} ${AM_CFLAGS}"
243
 
  AM_CXXFLAGS="${OPTIMIZE_CXXFLAGS} ${AM_CXXFLAGS}"
244
 
fi
245
 
 
246
 
 
247
103
AC_CXX_STL_HASH
248
104
AC_CXX_CSTDINT
249
105
AC_CXX_CINTTYPES
250
 
AC_CXX_SHARED_PTR
251
106
 
252
107
AC_LIB_PREFIX
253
108
 
958
813
AC_SUBST(drizzled_plugin_defs)
959
814
AC_SUBST(DRIZZLED_PLUGIN_DEP_LIBS)
960
815
 
961
 
 
962
 
AC_ARG_ENABLE([profiling],
963
 
    [AS_HELP_STRING([--enable-profiling],
964
 
       [Toggle profiling @<:@default=off@:>@])],
965
 
    [ac_profiling="$enableval"],
966
 
    [ac_profiling="no"])
967
 
 
968
 
AC_ARG_ENABLE([coverage],
969
 
    [AS_HELP_STRING([--enable-coverage],
970
 
       [Toggle coverage @<:@default=off@:>@])],
971
 
    [ac_coverage="$enableval"],
972
 
    [ac_coverage="no"])
973
 
 
974
 
AC_ARG_ENABLE([pedantic-warnings],
975
 
    [AS_HELP_STRING([--disable-pedantic-warnings],
976
 
       [Toggle pedanticness @<:@default=on@:>@])],
977
 
    [ac_warn_pedantic="$enableval"],
978
 
    [ac_warn_pedantic="yes"])
979
 
 
980
 
AC_ARG_ENABLE([fail],
981
 
    [AS_HELP_STRING([--disable-fail],
982
 
       [Turn warnings into failures @<:@default=on@:>@])],
983
 
    [ac_warn_fail="$enableval"],
984
 
    [ac_warn_fail="yes"])
985
 
 
986
 
AC_ARG_ENABLE([unreachable],
987
 
    [AS_HELP_STRING([--enable-unreachable],
988
 
       [Enable warnings about unreachable code @<:@default=off@:>@])],
989
 
    [ac_warn_unreachable="$enableval"],
990
 
    [ac_warn_unreachable="no"])
991
 
 
992
 
AC_ARG_ENABLE([longlong-warnings],
993
 
    [AS_HELP_STRING([--enable-longlong-warnings],
994
 
       [Enable warnings about longlong in C++ @<:@default=off@:>@])],
995
 
    [ac_warn_longlong="$enableval"],
996
 
    [ac_warn_longlong="no"])
997
 
 
998
 
AC_ARG_ENABLE([strict-aliasing],
999
 
    [AS_HELP_STRING([--enable-strict-aliasing],
1000
 
       [Enable warnings about stict-aliasing @<:@default=off@:>@])],
1001
 
    [ac_warn_strict_aliasing="$enableval"],
1002
 
    [ac_warn_strict_aliasing="no"])
1003
 
 
1004
 
AC_ARG_ENABLE([cast-warnings],
1005
 
    [AS_HELP_STRING([--enable-cast-warnings],
1006
 
       [Enable warnings about use of old C-style casts @<:@default=off@:>@])],
1007
 
    [ac_warn_cast="$enableval"],
1008
 
    [ac_warn_cast="no"])
1009
 
 
1010
 
AC_ARG_ENABLE([effective-style],
1011
 
    [AS_HELP_STRING([--enable-effective-style],
1012
 
       [Enable warnings violating Effective C++ Style Guidelines @<:@default=off@:>@])],
1013
 
    [ac_warn_effc="$enableval"],
1014
 
    [ac_warn_effc="no"])
1015
 
 
1016
 
AC_ARG_ENABLE([shadow],
1017
 
    [AS_HELP_STRING([--disable-shadow],
1018
 
       [Disables warnings about scope shadowing @<:@default=on@:>@])],
1019
 
    [ac_warn_shadow="$enableval"],
1020
 
    [ac_warn_shadow="yes"])
1021
 
 
1022
 
AC_ARG_ENABLE([conversion],
1023
 
    [AS_HELP_STRING([--enable-conversion],
1024
 
       [Enables conversion warnings @<:@default=off@:>@])],
1025
 
    [ac_warn_conversion="$enableval"],
1026
 
    [ac_warn_conversion="no"])
1027
 
 
1028
 
AC_ARG_ENABLE([datarace],
1029
 
    [AS_HELP_STRING([--enable-datarace],
1030
 
       [Enables Sun Studio data race detection @<:@default=off@:>@])],
1031
 
    [ac_datarace="$enableval"],
1032
 
    [ac_datarace="no"])
1033
 
 
1034
 
AC_ARG_ENABLE([exceptions],
1035
 
    [AS_HELP_STRING([--disable-exceptions],
1036
 
        [Disables use of Exceptions in the build @<:@default=on@:>@])],
1037
 
    [ac_exceptions="$enableval"],
1038
 
    [ac_exceptions="yes"])
1039
 
 
1040
 
AC_ARG_ENABLE([cast-align-warnings],
1041
 
    [AS_HELP_STRING([--enable-cast-align-warnings],
1042
 
       [Toggle cast alignment warnings @<:@default=off@:>@])],
1043
 
    [ac_warn_cast_align="$enableval"],
1044
 
    [ac_warn_cast_align="yes"])
1045
 
 
1046
 
if test "$GCC" = "yes"
1047
 
then
1048
 
  if test "$ac_warn_cast_align" = "yes"
1049
 
  then
1050
 
    W_CAST_ALIGN="-Wcast-align"
1051
 
  else
1052
 
    W_CAST_ALIGN="-Wno-cast-align"
1053
 
  fi
1054
 
 
1055
 
  if test "$ac_warn_fail" = "yes"
1056
 
  then
1057
 
    W_FAIL="-Werror"
1058
 
  fi
1059
 
  BASE_WARNINGS="-Wall -Wextra ${W_FAIL} ${W_CAST_ALIGN} -fdiagnostics-show-option"
1060
 
 
1061
 
  if test "$ac_warn_longlong" = "yes"
1062
 
  then
1063
 
    W_LONGLONG="-Wlong-long"
1064
 
  else
1065
 
    W_LONGLONG="-Wno-long-long"
1066
 
  fi
1067
 
 
1068
 
  if test "$ac_warn_strict_aliasing" = "yes"
1069
 
  then
1070
 
    W_STRICT_ALIASING="-fstrict-aliasing -Wstrict-aliasing"
1071
 
  else
1072
 
    W_STRICT_ALIASING="-Wno-strict-aliasing"
1073
 
  fi
1074
 
 
1075
 
  if test "$ac_warn_shadow" = "yes"
1076
 
  then
1077
 
    W_SHADOW="-Wshadow"
1078
 
    NO_SHADOW="-Wno-shadow"
1079
 
  else
1080
 
    W_SHADOW="-Wno-shadow"
1081
 
    NO_SHADOW=""
1082
 
  fi
1083
 
 
1084
 
  if test "$ac_profiling" = "yes"
1085
 
  then
1086
 
    GPROF_PROFILING="-pg"
1087
 
    save_LIBS="${LIBS}"
1088
 
    LIBS=""
1089
 
    AC_CHECK_LIB(c_p, read)
1090
 
    LIBC_P="${LIBS}"
1091
 
    LIBS="${save_LIBS}"
1092
 
  else
1093
 
    GPROF_PROFILING=" "
1094
 
  fi
1095
 
 
1096
 
  if test "$ac_coverage" = "yes"
1097
 
  then
1098
 
    GPROF_COVERAGE="-fprofile-arcs -ftest-coverage"
1099
 
  else
1100
 
    GPROF_COVERAGE=" "
1101
 
  fi
1102
 
 
1103
 
  if test "$ac_warn_pedantic" = "yes"
1104
 
  then
1105
 
    AC_CACHE_CHECK([whether it is safe to use -Wredundant-decls],
1106
 
      [ac_cv_safe_to_use_Wredundant_decls_],
1107
 
      [AC_LANG_PUSH(C++)
1108
 
       save_CXXFLAGS="${CXXFLAGS}"
1109
 
       CXXFLAGS="${CXXFLAGS} ${W_FAIL} -Wredundant-decls"
1110
 
       AC_COMPILE_IFELSE(
1111
 
         [AC_LANG_PROGRAM([
1112
 
template <typename E> struct C { void foo(); };
1113
 
template <typename E> void C<E>::foo() { }
1114
 
template <> void C<int>::foo();
1115
 
            AC_INCLUDES_DEFAULT])],
1116
 
          [ac_cv_safe_to_use_Wredundant_decls_=yes],
1117
 
          [ac_cv_safe_to_use_Wredundant_decls_=no])
1118
 
        CXXFLAGS="${save_CXXFLAGS}"
1119
 
        AC_LANG_POP()])
1120
 
    if test $ac_cv_safe_to_use_Wredundant_decls_ = yes
1121
 
    then
1122
 
      GXX_W_REDUNDANT_DECLS="-Wredundant-decls"
1123
 
    else
1124
 
      GXX_W_REDUNDANT_DECLS="-Wno-redundant-decls"
1125
 
    fi
1126
 
    
1127
 
    GCC_PEDANTIC="-pedantic -Wundef -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls ${W_STRICT_ALIASING}"
1128
 
    GXX_PEDANTIC="-pedantic -Wundef -Woverloaded-virtual  -Wnon-virtual-dtor -Wctor-dtor-privacy ${GXX_W_REDUNDANT_DECLS} ${W_LONGLONG} ${W_STRICT_ALIASING}"
1129
 
  fi
1130
 
 
1131
 
  if test "$ac_warn_unreachable" = "yes"
1132
 
  then
1133
 
    W_UNREACHABLE="-Wunreachable-code"
1134
 
  fi
1135
 
 
1136
 
  if test "$ac_warn_cast" = "yes"
1137
 
  then
1138
 
    W_CAST="-Wold-style-cast"
1139
 
  fi
1140
 
 
1141
 
  if test "$ac_warn_effc" = "yes"
1142
 
  then
1143
 
    W_EFFC="-Weffc++"
1144
 
  fi
1145
 
 
1146
 
  if test "$ac_warn_conversion" = "yes"
1147
 
  then
1148
 
    W_CONVERSION="-Wconversion"
1149
 
  fi
1150
 
 
1151
 
  CC_WARNINGS="${BASE_WARNINGS} ${GCC_PEDANTIC} ${W_UNREACHABLE} ${GPROF_PROFILING} ${GPROF_COVERAGE} ${W_SHADOW} ${W_CONVERSION}"
1152
 
  CXX_WARNINGS="${BASE_WARNINGS} ${GXX_PEDANTIC} ${W_UNREACHABLE} ${GPROF_PROFILING} ${GPROF_COVERAGE} ${W_CAST} ${W_SHADOW} ${W_EFFC} ${W_CONVERSION}"
1153
 
 
1154
 
  if test "$ac_exceptions" = "no"
1155
 
  then
1156
 
    NO_EXCEPTIONS="-fno-exceptions"
1157
 
    W_EXCEPTIONS="-fexceptions"
1158
 
  fi
1159
 
  NO_REDUNDANT_DECLS="-Wno-redundant-decls"
1160
 
  PROTOSKIP_WARNINGS="-Wno-effc++ -Wno-shadow"
1161
 
fi
1162
 
if test "$SUNCC" = "yes"
1163
 
then
1164
 
  if test "$ac_datarace" = "yes"
1165
 
  then
1166
 
    AM_CFLAGS="-xinstrument=datarace ${AM_CFLAGS}"
1167
 
    AM_CXXFLAGS="-xinstrument=datarace ${AM_CXXFLAGS}"
1168
 
  fi
1169
 
 
1170
 
  if test "$ac_warn_fail" = "yes"
1171
 
  then
1172
 
    W_FAIL="-errwarn=%all"
1173
 
  fi
1174
 
 
1175
 
  CC_WARNINGS="-v -errtags=yes -erroff=E_ATTRIBUTE_NOT_VAR ${W_FAIL}"
1176
 
  CXX_WARNINGS="+w +w2 -xport64 -errtags=yes -erroff=attrskipunsup,doubunder,reftotemp,inllargeuse,truncwarn1,signextwarn,inllargeint ${W_FAIL}" 
1177
 
  PROTOSKIP_WARNINGS="-erroff=attrskipunsup,doubunder,reftotemp,wbadinitl,identexpected,inllargeuse,truncwarn1,signextwarn"
1178
 
  NO_UNREACHED="-erroff=E_STATEMENT_NOT_REACHED"
1179
 
  if test "$ac_exceptions" = "no"
1180
 
  then
1181
 
    NO_EXCEPTIONS="-features=no%except"
1182
 
    W_EXCEPTIONS="-features=except"
1183
 
  fi
1184
 
fi
1185
 
AC_SUBST(NO_EXCEPTIONS)
1186
 
AC_SUBST(W_EXCEPTIONS)
1187
 
AC_SUBST(NO_SHADOW)
1188
 
AC_SUBST(W_SHADOW)
1189
 
AC_SUBST(NO_REDUNDANT_DECLS)
1190
 
AC_SUBST(PROTOSKIP_WARNINGS)
1191
 
AC_SUBST(NO_UNREACHED)
1192
 
 
1193
 
if test "x${gl_LIBOBJS}" != "x"
1194
 
then
1195
 
  if test "$GCC" = "yes"
1196
 
  then
1197
 
    AM_CPPFLAGS="-isystem \$(top_srcdir)/gnulib -isystem \$(top_builddir)/gnulib ${AM_CPPFLAGS}"
1198
 
  else
1199
 
    AM_CPPFLAGS="-I\$(top_srcdir)/gnulib -I\$(top_builddir)/gnulib ${AM_CPPFLAGS}"
1200
 
  fi
1201
 
fi
1202
 
 
1203
 
AM_CPPFLAGS="-I\$(top_srcdir) -I\$(top_builddir) ${AM_CPPFLAGS}"
1204
 
AM_CFLAGS="${CC_WARNINGS} ${AM_CFLAGS}"
1205
 
AM_CXXFLAGS="${CXX_WARNINGS} ${W_EXCEPTIONS} ${AM_CXXFLAGS}"
1206
 
 
1207
816
dnl Must be done once we turn on warnings and such
1208
817
AC_CACHE_CHECK(
1209
818
  [whether __attribute__ visibility "hidden" is supported],
1210
819
  [ac_cv_can_use_hidden_],[
1211
820
    AC_LANG_PUSH(C++)
 
821
    save_CXXFLAGS="${CXXFLAGS}"
 
822
    CXXFLAGS="${AM_CXXFLAGS}"
1212
823
    AC_LINK_IFELSE([
1213
824
      AC_LANG_PROGRAM(
1214
825
        [[
1218
829
      )],  
1219
830
      [ac_cv_can_use_hidden_=yes],
1220
831
      [ac_cv_can_use_hidden_=no])
 
832
    CXXFLAGS="${save_CXXFLAGS}"
1221
833
    AC_LANG_POP()])
1222
 
if test "$ac_cv_can_use_hidden_" = "yes"
1223
 
then
 
834
AS_IF([test "$ac_cv_can_use_hidden_" = "yes"],[
1224
835
  AC_DEFINE(HAVE_ATTR_HIDDEN, 1,
1225
836
  [Define to 1 if you have support for __attribute__((visibility("hidden")))])
1226
 
fi
1227
 
 
1228
 
AC_SUBST([AM_CPPFLAGS])
1229
 
AC_SUBST([AM_CFLAGS])
1230
 
AC_SUBST([AM_CXXFLAGS])
 
837
])
1231
838
 
1232
839
 
1233
840
AC_SUBST(pkgplugindir,"\$(pkglibdir)/plugin")
1275
882
echo "   * Host CPU:                  $host_cpu"
1276
883
echo "   * C Compiler:                $CC_VERSION"
1277
884
echo "   * C++ Compiler:              $CXX_VERSION"
1278
 
echo "   * Build auth_pam:            $ac_cv_header_security_pam_appl_h"
 
885
echo "   * Build auth_pam:            $ac_cv_libpam"
1279
886
echo "   * Assertions enabled:        $ac_cv_assert"
1280
887
echo "   * Debug enabled:             $with_debug"
1281
888
echo "   * Profiling enabled:         $ac_profiling"
1282
889
echo "   * Coverage enabled:          $ac_coverage"
1283
 
echo "   * Warnings as failure:       $ac_warn_fail"
1284
 
echo "   * Scheduling Plugins:        $scheduling_plugins"
 
890
echo "   * Warnings as failure:       $ac_cv_warnings_as_errors"
1285
891
echo "   * C++ cstdint location:      $ac_cv_cxx_cstdint"
1286
892
echo "   * C++ hash_map location:     $ac_cv_cxx_hash_map"
1287
893
echo "   * C++ hash namespace:        $ac_cv_cxx_hash_namespace"