X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=configure.ac;h=590627f641e87c11787604799578ce20d6594c38;hb=a0baab4a979e830f7dc4698c20b71e84dea6ff9d;hp=f424973d531bbaf7ff024d61468c3ca13346b19d;hpb=435aa29aff0527d36aafa1b657ae70b9db5f9ea5;p=babeltrace.git diff --git a/configure.ac b/configure.ac index f424973d..590627f6 100644 --- a/configure.ac +++ b/configure.ac @@ -69,7 +69,7 @@ AS_CASE([$host_os], ], [freebsd*], [ - DEFAULT_ENABLE_DEBUG_INFO=no + AE_FEATURE_DISABLE([debug-info]) ], [cygwin*], [ @@ -93,7 +93,8 @@ AC_SUBST(LT_NO_UNDEFINED) ## ## # Choose the c compiler -AC_PROG_CC_STDC +AC_PROG_CC +m4_version_prereq([2.70], [], [AC_PROG_CC_STDC]) # Make sure the c compiler supports C99 AS_IF([test "$ac_cv_prog_cc_c99" = "no"], [AC_MSG_ERROR([The compiler does not support C99])]) @@ -128,6 +129,14 @@ AC_TYPE_UINT8_T AC_CHECK_TYPES([ptrdiff_t]) +## ## +## C++ compiler checks ## +## ## + +# Require a C++11 compiler without GNU extensions (-std=c++11) +AX_CXX_COMPILE_STDCXX([11], [noext], [mandatory]) + + ## ## ## Header checks ## ## ## @@ -218,7 +227,9 @@ detection. AM_CONDITIONAL([HAVE_BISON], [test "x$have_bison" = "xyes"]) # check for flex -AC_PROG_LEX +# Prior to autoconf 2.70, AC_PROG_FLEX did not take an argument. This is not a +# problem since the argument is silently ignored by older versions. +AC_PROG_LEX([noyywrap]) AX_PROG_FLEX_VERSION([2.5.35], [have_flex=yes]) AS_IF([test "x$have_flex" != "xyes"], [ @@ -393,7 +404,7 @@ AE_FEATURE([built-in-python-plugin-support],[Statically-link Python plugin suppo AE_FEATURE_DEFAULT_ENABLE AE_FEATURE([man-pages],[Do not build and install man pages (already built in a distributed tarball]) -# When given, add -Werror to WARN_CFLAGS. +# When given, add -Werror to WARN_CFLAGS and WARN_CXXFLAGS. # Disabled by default AE_FEATURE_DEFAULT_DISABLE AE_FEATURE([Werror],[Treat compiler warnings as errors.]) @@ -471,7 +482,7 @@ AC_SUBST([ENABLE_DEBUG_INFO_VAL]) ## ## # The Python bindings require SWIG -AE_IF_FEATURE_ENABLED([python-plugins], +AE_IF_FEATURE_ENABLED([python-bindings], [AX_PKG_SWIG(2.0.0, [], [AC_MSG_ERROR([SWIG 2.0.0 or newer is required to build the python bindings])])] ) @@ -543,7 +554,14 @@ AE_IF_FEATURE_ENABLED([debug-info], [ dnl PKG_CHECK_MODULES defines ELFUTILS_LIBS ], [ - AC_MSG_ERROR([elfutils >= 0.154 is required to use the debug info feature. You can disable this feature using --disable-debug-info.]) + AC_MSG_WARN([pkg-config was unable to find a valid .pc for libelf/libdw. Set PKG_CONFIG_PATH to specify the pkg-config configuration file location.]) + + # Turns out SLES12 doesn't bother shipping .pc file for libelf + AC_MSG_WARN([Finding libelf without pkg-config.]) + AC_CHECK_LIB([elf], [elf_version], [], [AC_MSG_ERROR(Missing libelf (from elfutils >= 0.154) which is required by debug info. You can disable this feature using --disable-debug-info.)]) + AC_CHECK_LIB([dw], [dwarf_begin], [], [AC_MSG_ERROR(Missing libdw (from elfutils >= 0.154) which is required by debug info. You can disable this feature using --disable-debug-info.)]) + AE_LIB_ELFUTILS([0], [154], [], [AC_MSG_ERROR(elfutils >= 0.154 is required to use the debug info feature. You can disable this feature using --disable-debug-info.)]) + ELFUTILS_LIBS="-lelf -ldw" ]) ]) AC_SUBST([ELFUTILS_LIBS]) @@ -622,6 +640,7 @@ AC_SUBST(LIBDIR) # CFLAGS from libraries (the glib ones are needed for the following sizeof # test). AM_CFLAGS="${PTHREAD_CFLAGS} ${GLIB_CFLAGS}" +AM_CXXFLAGS="${PTHREAD_CFLAGS} ${GLIB_CFLAGS}" # Check that the current size_t matches the size that glib thinks it should # be. This catches problems on multi-arch where people try to do a 32-bit @@ -658,11 +677,10 @@ CFLAGS=${save_CFLAGS} # Detect C and LD warning flags supported by the compiler. -# Detect warning flags supported by the compiler, append them to WARN_CFLAGS. +# Detect warning flags supported by the C and C++ compilers and append them to +# WARN_CFLAGS and WARN_CXXFLAGS. # -# Pass -Werror as an extra flag during the test: this is needed to make the -# -Wunknown-warning-option diagnostic fatal with clang. -AX_APPEND_COMPILE_FLAGS([ dnl +m4_define([WARN_FLAGS_LIST], [ dnl -Wall dnl -Wextra dnl -Wmissing-prototypes dnl @@ -699,10 +717,16 @@ AX_APPEND_COMPILE_FLAGS([ dnl dnl Ref: https://github.com/swig/swig/issues/1259 -Wno-cast-function-type dnl -Wno-missing-field-initializers dnl - ], - [WARN_CFLAGS], - [-Werror]) + ]) + +# Pass -Werror as an extra flag during the test: this is needed to make the +# -Wunknown-warning-option diagnostic fatal with clang. +AC_LANG([C++]) +AX_APPEND_COMPILE_FLAGS([WARN_FLAGS_LIST], [WARN_CXXFLAGS], [-Werror]) +AC_LANG([C]) +AX_APPEND_COMPILE_FLAGS([WARN_FLAGS_LIST], [WARN_CFLAGS], [-Werror]) +AE_IF_FEATURE_ENABLED([Werror], [WARN_CXXFLAGS="${WARN_CXXFLAGS} -Werror"]) AE_IF_FEATURE_ENABLED([Werror], [WARN_CFLAGS="${WARN_CFLAGS} -Werror"]) # The test used in AX_APPEND_COMPILE_FLAGS, generated using AC_LANG_PROGRAM, is @@ -711,13 +735,15 @@ AE_IF_FEATURE_ENABLED([Werror], [WARN_CFLAGS="${WARN_CFLAGS} -Werror"]) # the test program would not build. # # Enable them here unconditionally. They are supported by GCC >= 4.8 and by -# Clang >= 4.0. +# Clang >= 3.3 (required by the project) and are only valid for C code. WARN_CFLAGS="${WARN_CFLAGS} -Wold-style-definition -Wstrict-prototypes" # CFLAGS from AX_APPEND_COMPILE_FLAGS. +AM_CXXFLAGS="${AM_CXXFLAGS} ${WARN_CXXFLAGS}" AM_CFLAGS="${AM_CFLAGS} ${WARN_CFLAGS}" -# Done for AM_CFLAGS. +# Done for AM_CXXFLAGS and AM_CFLAGS. +AC_SUBST(AM_CXXFLAGS) AC_SUBST(AM_CFLAGS) # Set global CPPFLAGS in AM_CPPFLAGS