Move libconsumer under common/consumer/
[lttng-tools.git] / configure.ac
index 846ee58818971041abc350b8ce4dcc79cf04530f..ceaf3771520674a2fee3f38d38b71f1759d38844 100644 (file)
@@ -1,18 +1,64 @@
 AC_PREREQ([2.64])
 AC_INIT([lttng-tools],[2.8.0-pre],[jeremie.galarneau@efficios.com],[],[https://lttng.org])
+
+AC_CONFIG_HEADERS([include/config.h])
 AC_CONFIG_AUX_DIR([config])
+AC_CONFIG_MACRO_DIR([m4])
+
 AC_CANONICAL_TARGET
 AC_CANONICAL_HOST
-AC_CONFIG_MACRO_DIR([config])
+
 AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip])
 AM_MAINTAINER_MODE([enable])
+
+# Enable silent rules if available (Introduced in AM 1.11)
 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
 
-# Compute minor/major/patchlevel version numbers
+# Checks for C compiler
+AC_USE_SYSTEM_EXTENSIONS
+AC_SYS_LARGEFILE
+AC_PROG_CC
+AC_PROG_CC_STDC
+
+# Checks for programs.
+AC_PROG_GREP
+AC_PROG_LEX
+AC_PROG_MAKE_SET
 AC_PROG_SED
-major_version=$(echo AC_PACKAGE_VERSION | sed 's/^\([[0-9]]\)*\.[[0-9]]*\.[[0-9]]*.*$/\1/')
-minor_version=$(echo AC_PACKAGE_VERSION | sed 's/^[[0-9]]*\.\([[0-9]]*\)\.[[0-9]]*.*$/\1/')
-patchlevel_version=$(echo AC_PACKAGE_VERSION | sed 's/^[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\).*$/\1/')
+AC_PROG_YACC
+LT_INIT
+
+# 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])])
+LIBS="$PTHREAD_LIBS $LIBS"
+CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+CC="$PTHREAD_CC"
+
+AX_LIB_SOCKET_NSL
+
+# Compute minor/major/patchlevel version numbers
+major_version=$(echo AC_PACKAGE_VERSION | $SED 's/^\([[0-9]]\)*\.[[0-9]]*\.[[0-9]]*.*$/\1/')
+minor_version=$(echo AC_PACKAGE_VERSION | $SED 's/^[[0-9]]*\.\([[0-9]]*\)\.[[0-9]]*.*$/\1/')
+patchlevel_version=$(echo AC_PACKAGE_VERSION | $SED 's/^[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\).*$/\1/')
 AC_SUBST([MAJOR_VERSION], [$major_version])
 AC_SUBST([MINOR_VERSION], [$minor_version])
 AC_SUBST([PATCHLEVEL_VERSION], [$patchlevel_version])
@@ -22,14 +68,11 @@ AC_DEFINE_UNQUOTED([VERSION_PATCHLEVEL], $patchlevel_version, [LTTng-Tools patch
 
 version_name="Herbe à Détourne"
 version_description='Brewed with unrestrained amounts of Citra hop, the Herbe à Détourne is a fantastic New World Tripel brewed by "Dieu du Ciel!". Aromas of mango, cantaloupe melon and passion fruit, combined with a controlled bitter finish, unite in making this smooth golden-orange beer stand apart.'
-version_description_c=$(echo $version_description | sed 's/"/\\"/g')
+version_description_c=$(echo $version_description | $SED 's/"/\\"/g')
 
 AC_DEFINE_UNQUOTED([VERSION_NAME], ["$version_name"], "")
 AC_DEFINE_UNQUOTED([VERSION_DESCRIPTION], ["$version_description_c"], "")
 
-AC_CONFIG_HEADERS([include/config.h])
-
-AC_PROG_GREP
 # libtool link_all_deplibs fixup. See http://bugs.lttng.org/issues/321.
 AC_ARG_ENABLE(libtool-linkdep-fixup,
        AS_HELP_STRING([--disable-libtool-linkdep-fixup],
@@ -39,15 +82,15 @@ AC_ARG_ENABLE(libtool-linkdep-fixup,
 
 AS_IF([test "x$libtool_fixup" = "xyes"],
            [
-           libtool_m4="$srcdir/config/libtool.m4"
+           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])
-           libtool_flag_pattern_count=$(grep -c "$libtool_flag_pattern\s*=\s*no" $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],
            [
                  AC_MSG_RESULT([$libtool_flag_pattern_count])
                  AC_MSG_WARN([the detected libtool will not link all dependencies, forcing link_all_deplibs = unknown])
-                 sed -i "s/\($libtool_flag_pattern\)\s*=\s*no/\1=unknown/g" $libtool_m4
+                 SED -i "s/\($libtool_flag_pattern\)\s*=\s*no/\1=unknown/g" $libtool_m4
                  ],
                  [
                  AC_MSG_RESULT([none])
@@ -66,11 +109,11 @@ AC_CHECK_HEADERS([ \
 
 # Basic functions check
 AC_CHECK_FUNCS([ \
-       atexit bzero clock_gettime dup2 fdatasync ftruncate \
+       atexit bzero clock_gettime dup2 fdatasync fls ftruncate \
        gethostbyname gethostname getpagesize localtime_r memchr memset \
        mkdir munmap putenv realpath rmdir socket strchr strcspn strdup \
-       strncasecmp strndup strpbrk strrchr strstr strtol strtoul \
-       strtoull \
+       strncasecmp strndup strnlen strpbrk strrchr strstr strtol strtoul \
+       strtoull dirfd gethostbyname2 getipnodebyname \
 ])
 
 # Babeltrace viewer check
@@ -333,13 +376,13 @@ swig_version=2.0.0
 AC_ARG_ENABLE([python-bindings],
               [AC_HELP_STRING([--enable-python-bindings],
                               [compile Python bindings])],
-              [enable_python=yes], [enable_python=no])
+              [enable_python_binding=yes], [enable_python_binding=no])
 
-AM_CONDITIONAL([USE_PYTHON], [test "x${enable_python:-yes}" = xyes])
+AM_CONDITIONAL([PYTHON_BINDING], [test "x${enable_python_binding:-yes}" = xyes])
 
-if test "x${enable_python:-yes}" = xyes; then
+if test "x${enable_python_binding:-yes}" = xyes; then
   AX_PKG_SWIG($swig_version, [], [ AC_MSG_ERROR([SWIG $swig_version or newer is needed]) ])
-  AM_PATH_PYTHON
+  AM_PATH_PYTHON([3.0])
 
   AC_ARG_VAR([PYTHON_INCLUDE], [Include flags for python, bypassing python-config])
   AC_ARG_VAR([PYTHON_CONFIG], [Path to python-config])
@@ -414,29 +457,104 @@ if test "x$test_java_agent_jul" = "xyes" || test "x$test_java_agent_log4j" = "xy
        fi
 fi
 
-AC_SYS_LARGEFILE
+# Python agent test
+UST_PYTHON_AGENT="lttngust"
 
-# C compiler tests
-AC_PROG_CC
-AC_C_INLINE
+AC_ARG_ENABLE(test-python2-agent,
+       AS_HELP_STRING([--enable-test-python2-agent],
+               [enable tests for python2 agent. Python2 interpreter path can be overridden by setting the PYTHON2 environment variable. Default: Autodetect]
+       ),[:],[test_python2_agent_autodetect=yes]
+)
 
-# Type availability checking
-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
+AC_ARG_ENABLE(test-python3-agent,
+       AS_HELP_STRING([--enable-test-python3-agent],
+               [enable tests for python3 agent. Python3 interpreter path can be overridden by setting the PYTHON3 environment variable. Default: Autodetect]
+       ),[:],[test_python3_agent_autodetect=yes]
+)
+
+AC_ARG_ENABLE(test-python-agent-all,
+       AS_HELP_STRING([--enable-test-python-agent-all],
+               [enable test for all python{2/3} agent.]
+       ),
+)
+
+AS_IF([test ! -z "$enable_test_python_agent_all"], [
+       unset test_python2_agent_autodetect
+       unset test_python3_agent_autodetect
+])
+
+AS_IF([test "x$enable_test_python_agent_all" = "xyes"], [
+       enable_test_python2_agent=yes
+       enable_test_python3_agent=yes
+])
+
+AS_IF([test "x$enable_test_python_agent_all" = "xno"], [
+       enable_test_python2_agent=no
+       enable_test_python3_agent=no
+])
+
+
+AS_IF([test "x$enable_test_python2_agent" = "xyes" -o "x$test_python2_agent_autodetect" = "xyes" ], [
+       AS_IF([test -z "$PYTHON2"], [
+                       PYTHON2=python2
+               ], [
+                       AC_MSG_WARN([Using user-defined PYTHON2 ($PYTHON2) for lttng-ust python2 agent check])
+       ])
+
+       AC_PATH_PROG([PYTHON2_BIN],[$PYTHON2])
+       AS_IF([test -z "$PYTHON2_BIN"], [
+               AS_IF([test -z "$test_python2_agent_autodetect"],[
+                       AC_MSG_ERROR([No python2 interpreter found. PYTHON2 can be set to override default interpreter path])
+               ])
+       ], [
+               AC_MSG_CHECKING([for python2 lttng-ust agent])
+               AS_IF([$PYTHON2_BIN -c "import $UST_PYTHON_AGENT" 2>/dev/null], [
+                       PYTHON2_AGENT=$PYTHON2_BIN
+                       AC_MSG_RESULT([yes])
+                       RUN_PYTHON_AGENT_TEST=yes
+               ], [
+                       AC_MSG_RESULT([no])
+                       AS_IF([test -z "$test_python2_agent_autodetect"],[
+                               AC_MSG_ERROR([No python2 agent found. The path to the agent can be specified by setting the PYTHONPATH environment variable.])
+                       ])
+               ])
+
+       ])
+
+])
+
+AS_IF([test "x$enable_test_python3_agent" = "xyes" -o "x$test_python3_agent_autodetect" = "xyes" ], [
+       AS_IF([test -z "$PYTHON3"], [
+               PYTHON3=python3
+       ], [
+               AC_MSG_WARN([Using user-defined PYTHON3 ($PYTHON3) for lttng-ust python3 agent check])
+       ])
+
+       AC_PATH_PROG([PYTHON3_BIN],[$PYTHON3])
+       AS_IF([test -z "$PYTHON3_BIN"], [
+               AS_IF([test -z "$test_python3_agent_autodetect"],[
+                       AC_MSG_ERROR([No python3 interpreter found. PYTHON3 can be set to override default interpreter path])
+               ])
+       ], [
+               AC_MSG_CHECKING([for python3 lttng-ust agent])
+               AS_IF([$PYTHON3_BIN -c "import $UST_PYTHON_AGENT" 2>/dev/null], [
+                       PYTHON3_AGENT=$PYTHON3_BIN
+                       AC_MSG_RESULT([yes])
+                       RUN_PYTHON_AGENT_TEST=yes
+               ], [
+                       AC_MSG_RESULT([no])
+                       AS_IF([test -z "$test_python3_agent_autodetect"],[
+                               AC_MSG_ERROR([No python3 agent found. The path to the agent can be specified by setting the PYTHONPATH environment variable.])
+                       ])
+               ])
+
+       ])
+])
+
+AC_SUBST([RUN_PYTHON_AGENT_TEST])
+AC_SUBST([PYTHON2_AGENT])
+AC_SUBST([PYTHON3_AGENT])
 
-LT_INIT
-AC_PROG_YACC
-AC_PROG_LEX
 
 if test ! -f "$srcdir/src/lib/lttng-ctl/filter/filter-parser.h"; then
        if test x"$YACC" != "xbison -y"; then
@@ -486,6 +604,7 @@ AC_CONFIG_FILES([
        src/common/Makefile
        src/common/kernel-ctl/Makefile
        src/common/kernel-consumer/Makefile
+       src/common/consumer/Makefile
        src/common/ust-consumer/Makefile
        src/common/hashtable/Makefile
        src/common/sessiond-comm/Makefile
@@ -518,6 +637,8 @@ AC_CONFIG_FILES([
        tests/regression/tools/exclusion/Makefile
        tests/regression/tools/save-load/Makefile
        tests/regression/tools/mi/Makefile
+       tests/regression/tools/wildcard/Makefile
+       tests/regression/tools/crash/Makefile
        tests/regression/ust/Makefile
        tests/regression/ust/nprocesses/Makefile
        tests/regression/ust/high-throughput/Makefile
@@ -549,6 +670,9 @@ AC_CONFIG_FILES([
        tests/utils/testapp/gen-ust-tracef/Makefile
 ])
 
+# Inject variable into python test script
+AC_CONFIG_FILES([tests/regression/ust/python-logging/test_python_logging],[chmod +x tests/regression/ust/python-logging/test_python_logging])
+
 AC_OUTPUT
 
 #
@@ -607,19 +731,26 @@ AS_IF([test "x$test_java_agent_log4j" = "xyes"],[
        AS_ECHO("Disabled")
 ])
 
-#Python binding enabled/disabled
-AS_ECHO_N("Python binding: ")
-AS_IF([test "x${enable_python:-yes}" = xyes], [
+AS_ECHO_N("LTTng-UST Python2 agent tests: ")
+AS_IF([test ! -z "$PYTHON2_AGENT"],[
+       AS_ECHO("Enabled")
+],[
+       AS_ECHO("Disabled")
+])
+
+AS_ECHO_N("LTTng-UST Python3 agent tests: ")
+AS_IF([test ! -z "$PYTHON3_AGENT"],[
        AS_ECHO("Enabled")
 ],[
        AS_ECHO("Disabled")
 ])
 
-# Do we build only the consumerd, or everything
-AS_IF([test "x$consumerd_only" = "xyes"],[
-       AS_ECHO("Only the consumerd daemon will be built.")
+#Python binding enabled/disabled
+AS_ECHO_N("Python binding: ")
+AS_IF([test "x${enable_python_binding:-yes}" = xyes], [
+       AS_ECHO("Enabled")
 ],[
-       AS_ECHO("All binaries will be built.")
+       AS_ECHO("Disabled")
 ])
 
 # Print the bindir and libdir this `make install' will install into.
@@ -630,47 +761,45 @@ AS_ECHO_N("Libraries will be installed in: ")
 AS_ECHO("`eval eval echo $libdir`")
 
 # If we build the sessiond, print the paths it will use
-AS_IF([test "x$consumerd_only" = "xno"],[
-       AS_ECHO()
-       AS_ECHO_N("The lttng command will look for the lttng-sessiond executable at: ")
-       AS_IF([test "$SESSIOND_BIN" = ""],[
-               AS_ECHO_N("`eval eval echo $bindir`")
-               AS_ECHO("/lttng-sessiond")
-       ],[
-               AS_ECHO("$SESSIOND_BIN")
-       ])
+AS_ECHO()
+AS_ECHO_N("The lttng command will search for the lttng-sessiond executable at: ")
+AS_IF([test "$SESSIOND_BIN" = ""],[
+       AS_ECHO_N("`eval eval echo $bindir`")
+       AS_ECHO("/lttng-sessiond")
+],[
+       AS_ECHO("$SESSIOND_BIN")
+])
 
-       AS_ECHO()
-       AS_ECHO("The sessiond daemon will look in the following directories: ")
-       AS_ECHO_N("32-bit consumerd executable at: ")
-       AS_IF([test "$CONSUMERD32_BIN" = ""],[
-               AS_ECHO_N("`eval eval echo $lttnglibexecdir`")
-               AS_ECHO("/lttng-consumerd")
-       ],[
-               AS_ECHO("$CONSUMERD32_BIN")
-       ])
+AS_ECHO()
+AS_ECHO("The sessiond daemon will search the following directories: ")
+AS_ECHO_N("32-bit consumerd executable: ")
+AS_IF([test "$CONSUMERD32_BIN" = ""],[
+       AS_ECHO_N("`eval eval echo $lttnglibexecdir`")
+       AS_ECHO("/lttng-consumerd")
+],[
+       AS_ECHO("$CONSUMERD32_BIN")
+])
 
-       AS_ECHO_N("32-bit consumer libraries in:   ")
-       AS_IF([test "$CONSUMERD32_LIBDIR" = ""],[
-               AS_ECHO("`eval eval echo $libdir`")
-       ],[
-               AS_ECHO("$CONSUMERD32_LIBDIR")
-       ])
+AS_ECHO_N("32-bit consumer libraries:   ")
+AS_IF([test "$CONSUMERD32_LIBDIR" = ""],[
+       AS_ECHO("`eval eval echo $libdir`")
+],[
+       AS_ECHO("$CONSUMERD32_LIBDIR")
+])
 
-       AS_ECHO_N("64-bit consumerd executable at: ")
-       AS_IF([test "$CONSUMERD64_BIN" = ""],[
-               AS_ECHO_N("`eval eval echo $lttnglibexecdir`")
-               AS_ECHO("/lttng-consumerd")
-       ],[
-               AS_ECHO("$CONSUMERD64_BIN")
-       ])
+AS_ECHO_N("64-bit consumerd executable: ")
+AS_IF([test "$CONSUMERD64_BIN" = ""],[
+       AS_ECHO_N("`eval eval echo $lttnglibexecdir`")
+       AS_ECHO("/lttng-consumerd")
+],[
+       AS_ECHO("$CONSUMERD64_BIN")
+])
 
-       AS_ECHO_N("64-bit consumer libraries in:   ")
-       AS_IF([test "$CONSUMERD64_LIBDIR" = ""],[
-               AS_ECHO("`eval eval echo $libdir`")
-       ],[
-               AS_ECHO("$CONSUMERD64_LIBDIR")
-       ])
+AS_ECHO_N("64-bit consumer libraries:   ")
+AS_IF([test "$CONSUMERD64_LIBDIR" = ""],[
+       AS_ECHO("`eval eval echo $libdir`")
+],[
+       AS_ECHO("$CONSUMERD64_LIBDIR")
 ])
 
 AS_ECHO()
This page took 0.02902 seconds and 5 git commands to generate.