X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=configure.ac;h=961e87c72289ee27cb3e314a868750746bbb1f0e;hb=c09b8e7b887f3f78c3febe9fc65515369172ff09;hp=068b9535e798e20101d7505698a268caa2047a94;hpb=b877064fe33379dead96059345812e94f6bb2371;p=babeltrace.git diff --git a/configure.ac b/configure.ac index 068b9535..961e87c7 100644 --- a/configure.ac +++ b/configure.ac @@ -92,18 +92,19 @@ AC_SUBST(LT_NO_UNDEFINED) ## C compiler checks ## ## ## -# Choose the c compiler +# Choose the C compiler AC_PROG_CC +# AC_PROG_CC_STDC was merged in AC_PROG_CC in autoconf 2.70 m4_version_prereq([2.70], [], [AC_PROG_CC_STDC]) -# Make sure the c compiler supports C99 +# 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])]) # Enable available system extensions and LFS support AC_USE_SYSTEM_EXTENSIONS AC_SYS_LARGEFILE -# Make sure the c compiler supports __attributes__ +# Make sure the C compiler supports __attributes__ AX_C___ATTRIBUTE__ AS_IF([test "x$ax_cv___attribute__" != "xyes"], [AC_MSG_ERROR([The compiler does not support __attribute__ extensions])]) @@ -114,13 +115,13 @@ AX_PTHREAD([], [AC_MSG_ERROR([Could not configure pthread support])]) # Checks for typedefs, structures, and compiler characteristics. AC_C_INLINE AC_C_TYPEOF -AC_TYPE_PID_T -AC_TYPE_SIZE_T AC_TYPE_INT16_T AC_TYPE_INT32_T AC_TYPE_INT64_T AC_TYPE_INT8_T AC_TYPE_OFF_T +AC_TYPE_PID_T +AC_TYPE_SIZE_T AC_TYPE_SSIZE_T AC_TYPE_UINT16_T AC_TYPE_UINT32_T @@ -409,6 +410,9 @@ AE_FEATURE([man-pages],[Do not build and install man pages (already built in a d AE_FEATURE_DEFAULT_DISABLE AE_FEATURE([Werror],[Treat compiler warnings as errors.]) +# When given, build with AddressSanitizer. +AE_FEATURE_DEFAULT_DISABLE +AE_FEATURE([asan],[Build with AddressSanitizer.]) ## ## ## Check for conflicting features selection ## @@ -446,9 +450,9 @@ AE_IF_FEATURE_ENABLED([built-in-python-plugin-support], [ ]) -## ## -## Set automake variables for optionnal feature conditionnals in Makefile.am ## -## ## +## ## +## Set automake variables for optional feature conditionnals in Makefile.am ## +## ## AM_CONDITIONAL([ENABLE_PYTHON_BINDINGS], AE_IS_FEATURE_ENABLED([python-bindings])) AM_CONDITIONAL([ENABLE_PYTHON_BINDINGS_DOC], AE_IS_FEATURE_ENABLED([python-bindings-doc])) @@ -459,11 +463,12 @@ AM_CONDITIONAL([ENABLE_BUILT_IN_PLUGINS], AE_IS_FEATURE_ENABLED([built-in-plugin AM_CONDITIONAL([ENABLE_BUILT_IN_PYTHON_PLUGIN_SUPPORT], AE_IS_FEATURE_ENABLED([built-in-python-plugin-support])) AM_CONDITIONAL([ENABLE_MAN_PAGES], AE_IS_FEATURE_ENABLED([man-pages])) AM_CONDITIONAL([ENABLE_PYTHON_COMMON_DEPS], AE_IS_FEATURE_ENABLED([python-bindings]) || AE_IS_FEATURE_ENABLED([python-plugins])) +AM_CONDITIONAL([ENABLE_ASAN], AE_IS_FEATURE_ENABLED([asan])) -## ## -## Set defines for optionnal features conditionnals in the source code ## -## ## +## ## +## Set defines for optional features conditionnals in the source code ## +## ## AE_IF_FEATURE_ENABLED([built-in-plugins], [AC_DEFINE([BT_BUILT_IN_PLUGINS], [1], [Define to 1 to register plug-in attributes in static executable sections])] @@ -476,13 +481,15 @@ AE_IF_FEATURE_ENABLED([built-in-python-plugin-support], AE_IF_FEATURE_ENABLED([debug-info], [ENABLE_DEBUG_INFO_VAL=1], [ENABLE_DEBUG_INFO_VAL=0]) AC_SUBST([ENABLE_DEBUG_INFO_VAL]) +AE_IF_FEATURE_ENABLED([asan], [ENABLE_ASAN=1], [ENABLE_ASAN=0]) +AC_SUBST([ENABLE_ASAN]) -## ## -## Check for optionnal features dependencies ## -## ## +## ## +## Check for optional features dependencies ## +## ## # 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])])] ) @@ -634,13 +641,21 @@ AS_IF([test "x$exec_prefix" = xNONE], [ AC_SUBST(LIBDIR) +# If --enable-asan is used... +AE_IF_FEATURE_ENABLED([asan], [ + # ... add -fsanitize=address to the *FLAGS variables. + ASAN_CFLAGS="-fsanitize=address" + ASAN_CXXFLAGS="-fsanitize=address" + ASAN_LDFLAGS="-fsanitize=address" +]) # 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}" +AM_CFLAGS="${PTHREAD_CFLAGS} ${GLIB_CFLAGS} ${ASAN_CFLAGS}" +AM_CXXFLAGS="${PTHREAD_CFLAGS} ${GLIB_CFLAGS} ${ASAN_CXXFLAGS}" +AM_LDFLAGS="${ASAN_LDFLAGS}" # 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 @@ -742,9 +757,10 @@ WARN_CFLAGS="${WARN_CFLAGS} -Wold-style-definition -Wstrict-prototypes" AM_CXXFLAGS="${AM_CXXFLAGS} ${WARN_CXXFLAGS}" AM_CFLAGS="${AM_CFLAGS} ${WARN_CFLAGS}" -# Done for AM_CXXFLAGS and AM_CFLAGS. +# Done for AM_CXXFLAGS, AM_CFLAGS and AM_LDFLAGS. AC_SUBST(AM_CXXFLAGS) AC_SUBST(AM_CFLAGS) +AC_SUBST(AM_LDFLAGS) # Set global CPPFLAGS in AM_CPPFLAGS AM_CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/src -I\$(top_srcdir)/src -include common/config.h" @@ -841,6 +857,8 @@ AC_CONFIG_FILES([ tests/utils/tap/Makefile ]) +AC_CONFIG_FILES([tests/utils/env.sh],[chmod +x tests/utils/env.sh]) + AC_OUTPUT #