X-Git-Url: https://git.efficios.com/?a=blobdiff_plain;f=configure.ac;h=3d1286135ae9ec1b4ccba680b7b5421f724b7c30;hb=8009058387e16d70c065f8afb24953ed389c18a6;hp=24a2d212a2f09afca0d75ff411ec120e471cfefe;hpb=887d26fa0fd0ae0c5c15e4b885473c4cdc0bf078;p=babeltrace.git diff --git a/configure.ac b/configure.ac index 24a2d212..3d128613 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*], [ @@ -128,6 +128,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 ## ## ## @@ -393,7 +401,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.]) @@ -478,7 +486,7 @@ AE_IF_FEATURE_ENABLED([python-plugins], # Always check for python, we will fail later if some features require it and # it's unavailable. AM_PATH_PYTHON([3.0], [ - AM_PATH_PYTHON_MODULES([PYTHON]) + AE_PATH_PYTHON_MODULES([PYTHON]) # pythondir is the path where extra modules are to be installed pythondir=$PYTHON_PREFIX/$PYTHON_MODULES_PATH @@ -525,7 +533,7 @@ AS_IF([AE_IS_FEATURE_ENABLED([python-bindings]) || AE_IS_FEATURE_ENABLED([python AE_IF_FEATURE_ENABLED([python-bindings-doc], [ - AM_CHECK_PYTHON_SPHINX([PYTHON]) + AE_CHECK_PYTHON_SPHINX([PYTHON]) AS_IF([test "x$PYTHON_SPHINX_EXISTS" = xno], [ AC_MSG_ERROR([The Sphinx package for Python 3 is required to build the Python bindings documentation]) ]) @@ -543,7 +551,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 +637,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 +674,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 +714,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 +732,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