relayd: do not link lttng-relayd on liblttng-ctl
[lttng-tools.git] / configure.ac
index c8324a591c3076f8f7b87b7e3894fe5dc08e584d..e9b269666f3264d2fcdb3bbdba9dff6ee36053de 100644 (file)
@@ -15,47 +15,116 @@ AM_MAINTAINER_MODE([enable])
 # Enable silent rules if available (Introduced in AM 1.11)
 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
 
-# Checks for C compiler
-AC_USE_SYSTEM_EXTENSIONS
-AC_SYS_LARGEFILE
+
+##                   ##
+## C compiler checks ##
+##                   ##
+
+# 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])
-AC_PROG_CXX
-RW_PROG_CXX_WORKS
-AM_CONDITIONAL([CXX_WORKS], [test "x$rw_cv_prog_cxx_works" = "xyes"])
 
-# Detect warning flags supported by the compiler, append them to WARN_CFLAGS.
+# 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 __attribute__
+AX_C___ATTRIBUTE__
+AS_IF([test "x$ax_cv___attribute__" != "xyes"],
+  [AC_MSG_ERROR([The compiler does not support __attribute__ extensions])])
+
+# Make sure we have pthread support
+AX_PTHREAD([], [AC_MSG_ERROR([Could not configure pthread support])])
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_C_INLINE
+AC_TYPE_INT32_T
+AC_TYPE_INT64_T
+AC_TYPE_MODE_T
+AC_TYPE_OFF_T
+AC_TYPE_PID_T
+AC_TYPE_SIZE_T
+AC_TYPE_SSIZE_T
+AC_TYPE_UID_T
+AC_TYPE_UINT16_T
+AC_TYPE_UINT32_T
+AC_TYPE_UINT64_T
+AC_TYPE_UINT8_T
+
+# Detect warning flags supported by the C and C++ compilers and append them to
+# WARN_CFLAGS and WARN_CXXFLAGS.
+m4_define([WARN_FLAGS_LIST], [ dnl
+  -Wall dnl
+  dnl We currently get this warning when building with Clang:
+  dnl
+  dnl /usr/include/setjmp.h:54:12: error: declaration of built-in function '__sigsetjmp' requires the declaration of the 'jmp_buf' type, commonly provided in the header <setjmp.h>. [-Werror,-Wincomplete-setjmp-declaration]
+  dnl extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask) __THROWNL;
+  dnl            ^
+  -Wno-incomplete-setjmp-declaration dnl
+  -Wdiscarded-qualifiers dnl
+  -Wmissing-declarations dnl
+  -Wmissing-prototypes dnl
+  -Wmissing-parameter-type dnl
+  -Wshadow dnl
+  -Wno-gnu-folding-constant dnl
+  dnl GCC enables this with -Wall in C++, and that generates a
+  dnl lot of warnings that have on average a low value to fix.
+  -Wno-sign-compare dnl
+])
+
+# Pass -Werror as an extra flag during the test: this is needed to make the
+# -Wunknown-warning-option diagnostic fatal with clang.
+AC_LANG_PUSH([C])
+AX_APPEND_COMPILE_FLAGS([WARN_FLAGS_LIST], [WARN_CFLAGS], [-Werror])
+AC_LANG_POP([C])
+
+# The test used in AX_APPEND_COMPILE_FLAGS, generated using AC_LANG_PROGRAM, is
+# written in such a way that it triggers warnings with the following warning
+# flags.  So they would always end up disabled if we put them there, because
+# the test program would not build.
 #
+# Enable them here unconditionally.  They are supported by GCC >= 4.8 and by
+# Clang >= 3.3 (required by the project) and are only valid for C code.
+WARN_CFLAGS="${WARN_CFLAGS} -Wold-style-definition -Wstrict-prototypes"
+
+# Disable 'strict aliasing' if the C compiler supports it.
+AC_LANG_PUSH([C])
+AX_APPEND_COMPILE_FLAGS([-fno-strict-aliasing], [OPT_CFLAGS], [-Werror])
+AC_LANG_POP([C])
+
+
+##                     ##
+## C++ compiler checks ##
+##                     ##
+
+# Find a C++11 compiler with GNU extensions (-std=gnu++11)
+AX_CXX_COMPILE_STDCXX([11], [ext], [mandatory])
+
 # 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
-               -Wall dnl
-               dnl We currently get this warning when building with Clang:
-               dnl
-               dnl /usr/include/setjmp.h:54:12: error: declaration of built-in function '__sigsetjmp' requires the declaration of the 'jmp_buf' type, commonly provided in the header <setjmp.h>. [-Werror,-Wincomplete-setjmp-declaration]
-               dnl extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask) __THROWNL;
-               dnl            ^
-               -Wno-incomplete-setjmp-declaration dnl
-               -Wdiscarded-qualifiers dnl
-               -Wmissing-declarations dnl
-               -Wmissing-prototypes dnl
-               -Wmissing-parameter-type dnl
-               -Wold-style-definition dnl
-               -Wstrict-prototypes dnl
-               -Wshadow dnl
-               -Wno-gnu-folding-constant dnl
-       ],
-       [WARN_CFLAGS],
-       [-Werror])
-
-# When given, add -Werror to WARN_CFLAGS.
-AC_ARG_ENABLE([Werror],
-       [AS_HELP_STRING([--enable-Werror], [Treat compiler warnings as errors.])]
-)
-AS_IF([test "x$enable_Werror" = "xyes"],
-       [WARN_CFLAGS="${WARN_CFLAGS} -Werror"]
-)
+AC_LANG_PUSH([C++])
+AX_APPEND_COMPILE_FLAGS([WARN_FLAGS_LIST], [WARN_CXXFLAGS], [-Werror])
+AC_LANG_POP([C++])
+
+# Disable 'strict aliasing' if the C++ compiler supports it.
+AC_LANG_PUSH([C++])
+AX_APPEND_COMPILE_FLAGS([-fno-strict-aliasing], [OPT_CXXFLAGS], [-Werror])
+AC_LANG_POP([C++])
+
+
+# When given, add -Werror to WARN_CFLAGS and WARN_CXXFLAGS.
+AC_ARG_ENABLE([Werror],[
+  AS_HELP_STRING([--enable-Werror], [Treat compiler warnings as errors.])
+])
+
+AS_IF([test "x$enable_Werror" = "xyes"], [
+  WARN_CFLAGS="${WARN_CFLAGS} -Werror"
+  WARN_CXXFLAGS="${WARN_CXXFLAGS} -Werror"
+])
 
 # Checks for programs.
 AC_PROG_GREP
@@ -127,27 +196,6 @@ detection.
 AM_CONDITIONAL([HAVE_FLEX], [test "x$have_flex" = "xyes"])
 
 
-# Checks for typedefs, structures, and compiler characteristics.
-AC_C_INLINE
-AC_TYPE_INT32_T
-AC_TYPE_INT64_T
-AC_TYPE_MODE_T
-AC_TYPE_OFF_T
-AC_TYPE_PID_T
-AC_TYPE_SIZE_T
-AC_TYPE_SSIZE_T
-AC_TYPE_UID_T
-AC_TYPE_UINT16_T
-AC_TYPE_UINT32_T
-AC_TYPE_UINT64_T
-AC_TYPE_UINT8_T
-
-AX_C___ATTRIBUTE__
-AS_IF([test "x$ax_cv___attribute__" = "xyes"],
-        [:],
-        [AC_MSG_ERROR([The compiler does not support __attribute__ extensions])])
-
-AX_PTHREAD(,[AC_MSG_ERROR([Could not configure pthreads support])])
 
 # Check if linker has the -no-pie option.
 AX_CHECK_LINK_FLAG([-no-pie], [linker_have_no_pie_option=yes])
@@ -205,7 +253,7 @@ AS_IF([test "x$libtool_fixup" = "xyes"],
            [
            libtool_m4="$srcdir/m4/libtool.m4"
            libtool_flag_pattern=".*link_all_deplibs\s*,\s*\$1\s*)"
-           AC_MSG_CHECKING([for occurence(s) of link_all_deplibs = no in $libtool_m4])
+           AC_MSG_CHECKING([for occurrence(s) of link_all_deplibs = no in $libtool_m4])
            libtool_flag_pattern_count=$($GREP -c "$libtool_flag_pattern\s*=\s*no" $libtool_m4)
            AS_IF([test $libtool_flag_pattern_count -ne 0],
            [
@@ -488,7 +536,6 @@ AC_CHECK_FUNC([clock_gettime], [AC_DEFINE_UNQUOTED([LTTNG_HAVE_CLOCK_GETTIME], 1
 
 # URCU library version needed or newer
 PKG_CHECK_MODULES([URCU], [liburcu >= 0.11])
-PKG_CHECK_MODULES([URCU_BP], [liburcu-bp >= 0.11])
 PKG_CHECK_MODULES([URCU_CDS], [liburcu-cds >= 0.11])
 AM_CPPFLAGS="$AM_CPPFLAGS $URCU_CFLAGS"
 
@@ -904,7 +951,6 @@ AS_IF([test x$enable_bin_lttng_crash != xno],
 
 AS_IF([test x$enable_bin_lttng_relayd != xno],
       [
-       build_lib_lttng_ctl=yes
        build_lib_sessiond_comm=yes
        build_lib_index=yes
        build_lib_health=yes
@@ -1038,9 +1084,12 @@ AM_CONDITIONAL([BUILD_LIB_SESSIOND_COMM], [test x$build_lib_sessiond_comm = xyes
 AM_CONDITIONAL([BUILD_LIB_TESTPOINT], [test x$build_lib_testpoint = xyes])
 AM_CONDITIONAL([BUILD_LIB_UST_CONSUMER], [test x$build_lib_ust_consumer = xyes])
 
-AM_CFLAGS="${WARN_CFLAGS} -fno-strict-aliasing $PTHREAD_CFLAGS"
+AM_CFLAGS="-fvisibility=hidden $OPT_CFLAGS $WARN_CFLAGS $PTHREAD_CFLAGS"
 AC_SUBST(AM_CFLAGS)
 
+AM_CXXFLAGS="-fvisibility=hidden -fvisibility-inlines-hidden $OPT_CXXFLAGS $WARN_CXXFLAGS $PTHREAD_CFLAGS"
+AC_SUBST(AM_CXXFLAGS)
+
 # This is set even though it is empty, so Makefiles can do "AM_LDFLAGS += ...".
 AM_LDFLAGS=""
 AC_SUBST(AM_LDFLAGS)
@@ -1105,6 +1154,7 @@ AC_CONFIG_FILES([
        src/common/index/Makefile
        src/common/health/Makefile
        src/common/config/Makefile
+       src/common/ini-config/Makefile
        src/common/string-utils/Makefile
        src/common/fd-tracker/Makefile
        src/common/filter/Makefile
@@ -1300,9 +1350,9 @@ PPRINT_PROP_BOOL([LTTng-UST Python2 agent tests], $value)
 test ! -z "$PYTHON3_AGENT" && value=1 || value=0
 PPRINT_PROP_BOOL([LTTng-UST Python3 agent tests], $value)
 
-# LTTng UST Java agent Log4j tests enabled/disabled
+# userspace-probe SDT instrumentation tests enabled/disabled
 test "x$test_sdt_uprobe" = "xyes" && value=1 || value=0
-PPRINT_PROP_BOOL([LTTng-UST SDT uprobe tests], $value)
+PPRINT_PROP_BOOL([LTTng-modules SDT uprobe tests], $value)
 
 #Python binding enabled/disabled
 test "x$enable_python_binding" = xyes && value=1 || value=0
This page took 0.025186 seconds and 4 git commands to generate.