Cleanup: uuid library detection
[lttng-tools.git] / configure.ac
index 191dd838c1c42e9db1510d3cdb0ea5bf69ad2139..8e9a208e13bce7eb5208c79e49eda4aa75d5f7b2 100644 (file)
@@ -8,7 +8,7 @@ AC_CONFIG_MACRO_DIR([m4])
 AC_CANONICAL_TARGET
 AC_CANONICAL_HOST
 
-AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip tar-pax])
+AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip tar-pax nostdinc])
 AM_MAINTAINER_MODE([enable])
 
 # Enable silent rules if available (Introduced in AM 1.11)
@@ -59,9 +59,6 @@ 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
 
@@ -87,8 +84,8 @@ AC_DEFINE_UNQUOTED([VERSION_MAJOR], $major_version, [LTTng-Tools major version n
 AC_DEFINE_UNQUOTED([VERSION_MINOR], $minor_version, [LTTng-Tools minor version number])
 AC_DEFINE_UNQUOTED([VERSION_PATCHLEVEL], $patchlevel_version, [LTTng-Tools patchlevel version number])
 
-version_name="Codename TBD"
-version_description='Description TBD'
+version_name="KeKriek"
+version_description='From Brasserie Dunham, a sour mashed golden wheat ale fermented with local sour cherries from Tougas orchards. Fresh sweet cherry notes with some tartness, lively carbonation with a dry finish.'
 version_description_c=$(echo $version_description | $SED 's/"/\\"/g')
 
 AC_DEFINE_UNQUOTED([VERSION_NAME], ["$version_name"], "")
@@ -240,7 +237,7 @@ AC_DEFUN([_AC_DEFINE_QUOTED_AND_SUBST], [
 ])
 
 # Default values
-m4_define([_DEFAULT_CHANNEL_SUBBUF_SIZE], [4096])
+m4_define([_DEFAULT_CHANNEL_SUBBUF_SIZE], [16384])
 m4_define([_DEFAULT_CHANNEL_SUBBUF_NUM], [4])
 m4_define([_DEFAULT_CHANNEL_SWITCH_TIMER], [0])
 m4_define([_DEFAULT_CHANNEL_LIVE_TIMER], [0])
@@ -254,7 +251,7 @@ _AC_DEFINE_AND_SUBST([DEFAULT_CHANNEL_TRACEFILE_SIZE], [0])
 _AC_DEFINE_AND_SUBST([DEFAULT_KERNEL_CHANNEL_LIVE_TIMER], [_DEFAULT_CHANNEL_LIVE_TIMER])
 _AC_DEFINE_AND_SUBST([DEFAULT_KERNEL_CHANNEL_READ_TIMER], [_DEFAULT_CHANNEL_READ_TIMER])
 _AC_DEFINE_AND_SUBST([DEFAULT_KERNEL_CHANNEL_SUBBUF_NUM], [_DEFAULT_CHANNEL_SUBBUF_NUM])
-_AC_DEFINE_AND_SUBST([DEFAULT_KERNEL_CHANNEL_SUBBUF_SIZE], [262144])
+_AC_DEFINE_AND_SUBST([DEFAULT_KERNEL_CHANNEL_SUBBUF_SIZE], [1048576])
 _AC_DEFINE_AND_SUBST([DEFAULT_KERNEL_CHANNEL_SWITCH_TIMER], [_DEFAULT_CHANNEL_SWITCH_TIMER])
 _AC_DEFINE_AND_SUBST([DEFAULT_KERNEL_CHANNEL_MONITOR_TIMER], [_DEFAULT_CHANNEL_MONITOR_TIMER])
 _AC_DEFINE_AND_SUBST([DEFAULT_LTTNG_LIVE_TIMER], [1000000])
@@ -275,7 +272,7 @@ _AC_DEFINE_AND_SUBST([DEFAULT_UST_PID_CHANNEL_MONITOR_TIMER], [_DEFAULT_CHANNEL_
 _AC_DEFINE_AND_SUBST([DEFAULT_UST_UID_CHANNEL_LIVE_TIMER], [_DEFAULT_CHANNEL_LIVE_TIMER])
 _AC_DEFINE_AND_SUBST([DEFAULT_UST_UID_CHANNEL_READ_TIMER], [0])
 _AC_DEFINE_AND_SUBST([DEFAULT_UST_UID_CHANNEL_SUBBUF_NUM], [_DEFAULT_CHANNEL_SUBBUF_NUM])
-_AC_DEFINE_AND_SUBST([DEFAULT_UST_UID_CHANNEL_SUBBUF_SIZE], [131072])
+_AC_DEFINE_AND_SUBST([DEFAULT_UST_UID_CHANNEL_SUBBUF_SIZE], [524288])
 _AC_DEFINE_AND_SUBST([DEFAULT_UST_UID_CHANNEL_SWITCH_TIMER], [_DEFAULT_CHANNEL_SWITCH_TIMER])
 _AC_DEFINE_AND_SUBST([DEFAULT_UST_UID_CHANNEL_MONITOR_TIMER], [_DEFAULT_CHANNEL_MONITOR_TIMER])
 _AC_DEFINE_QUOTED_AND_SUBST([DEFAULT_AGENT_BIND_ADDRESS], [localhost])
@@ -339,53 +336,52 @@ PKG_CHECK_MODULES([POPT], [popt],
 
 PKG_CHECK_MODULES([libxml2], [libxml-2.0 >= 2.7.6])
 
-# Check for uuid in system libs
+# First, check for uuid in system libs
+AH_TEMPLATE([LTTNG_HAVE_LIBUUID], [Define if you have libuuid support])
 AC_CHECK_FUNCS([uuid_generate],
-[
-       AC_DEFINE_UNQUOTED([LTTNG_HAVE_LIBUUID], 1, [Has libuuid support.])
-       link_with_libuuid=no
-],
-[
-# First, check the pkg-config module is available, otherwise explicitly check
-# for libuuid, or uuid support in the C-library.
-PKG_CHECK_MODULES([UUID], [uuid],
-[
-       LIBS="$LIBS $UUID_LIBS"
-       AC_DEFINE_UNQUOTED([LTTNG_HAVE_LIBUUID], 1, [Has libuuid support.])
-       link_with_libuuid=yes
-],
-[
-       # Check for libuuid
-       AC_CHECK_LIB([uuid],
-               [uuid_generate],
-               [
-                       AC_DEFINE_UNQUOTED([LTTNG_HAVE_LIBUUID], 1, [Has libuuid support.])
-                       link_with_libuuid=yes
-               ],
-               [
-                       # libuuid not found, check for uuid_create in libc.
-                       AC_CHECK_LIB([c],
-                               [uuid_create],
-                               [
-                                       AC_DEFINE_UNQUOTED([LTTNG_HAVE_LIBC_UUID], 1, [Has libc uuid support.])
-                                       link_with_libc_uuid=yes
-                               ],
-                               [
-                                       AC_MSG_ERROR([Cannot find libuuid uuid_generate nor libc uuid_create. Either set PKG_CONFIG_PATH to the configuration file location or use LDFLAGS=-Ldir to specify the library location])
-                               ]
-                       )
-               ]
-       )
-])
-])
-
-AM_CONDITIONAL([LTTNG_BUILD_WITH_LIBUUID], [test "x$link_with_libuuid" = "xyes"])
-AM_CONDITIONAL([LTTNG_BUILD_WITH_LIBC_UUID], [test "x$link_with_libc_uuid" = "xyes"])
+  [
+    AC_DEFINE([LTTNG_HAVE_LIBUUID], [1])
+    UUID_LIBS=""
+  ],
+  [
+    # Then, check if the pkg-config module is available, otherwise explicitly check
+    # for libuuid, or uuid support in the C-library.
+    PKG_CHECK_MODULES([UUID], [uuid],
+      [
+        AC_DEFINE([LTTNG_HAVE_LIBUUID], [1])
+        dnl PKG_CHECK_MODULES defines UUID_LIBS
+      ],
+      [
+        AC_MSG_WARN([pkg-config was unable to find a valid .pc for libuuid. Set PKG_CONFIG_PATH to specify the pkgconfig configuration file location])
+        AC_MSG_WARN([Finding libuuid without pkg-config.])
+        AC_CHECK_LIB([uuid], [uuid_generate],
+          [
+            AC_DEFINE([LTTNG_HAVE_LIBUUID], [1])
+            UUID_LIBS="-luuid"
+          ],
+          [
+            # libuuid not found, check for uuid_create in libc.
+            AC_CHECK_LIB([c], [uuid_create],
+              [
+                AC_DEFINE([LTTNG_HAVE_LIBUUID], [1])
+                UUID_LIBS="-lc"
+              ],
+              [
+                AC_MSG_FAILURE([Cannot find libuuid uuid_generate nor libc uuid_create. Either set PKG_CONFIG_PATH to the configuration file location or use LDFLAGS=-Ldir to specify the library location])
+              ]
+            )
+          ]
+        )
+      ]
+    )
+  ]
+)
+AC_SUBST(UUID_LIBS)
 
 AC_CHECK_FUNC([clock_gettime], [AC_DEFINE_UNQUOTED([LTTNG_HAVE_CLOCK_GETTIME], 1, [Has clock_gettime() support.])])
 
 # URCU library version needed or newer
-m4_define([WRONG_LIBURCU_MSG], [Userspace RCU (liburcu) >= 0.8.0 is needed])
+m4_define([WRONG_LIBURCU_MSG], [Userspace RCU (liburcu) >= 0.9.0 is needed])
 
 # Check liburcu needed function calls
 AC_CHECK_DECL([cds_list_add], [],
@@ -410,13 +406,18 @@ AC_CHECK_DECL([cmm_smp_mb__before_uatomic_or], [],
         [AC_MSG_ERROR([WRONG_LIBURCU_MSG])], [[#include <urcu.h>]]
 )
 
+#Function added in urcu 0.9.0
+AC_CHECK_DECL([urcu_ref_get_unless_zero], [],
+        [AC_MSG_ERROR([WRONG_LIBURCU_MSG])], [[#include <urcu/ref.h>]]
+)
+
 # Check kmod library
 AC_ARG_WITH(kmod-prefix,
   AS_HELP_STRING([--with-kmod-prefix=PATH],
                [Specify the installation prefix of the kmod library.
                Headers must be in PATH/include; libraries in PATH/lib.]),
                [
-                       CPPFLAGS="$CPPFLAGS -I${withval}/include"
+                       AM_CPPFLAGS="$AM_CPPFLAGS -I${withval}/include"
                        LDFLAGS="$LDFLAGS -L${withval}/lib64 -L${withval}/lib"
                ])
 
@@ -441,7 +442,7 @@ AC_ARG_WITH(lttng-ust-prefix,
                  [Specify the installation prefix of the lttng-ust library.
                  Headers must be in PATH/include; libraries in PATH/lib.]),
                  [
-                   CPPFLAGS="$CPPFLAGS -I${withval}/include"
+                   AM_CPPFLAGS="$AM_CPPFLAGS -I${withval}/include"
                    LDFLAGS="$LDFLAGS -L${withval}/lib64 -L${withval}/lib"
                  ])
 
@@ -653,6 +654,29 @@ AM_CONDITIONAL([HAVE_ASCIIDOC_XMLTO], [test "x$have_asciidoc_xmlto" = "xyes"])
 
 AC_DEFINE_UNQUOTED([MANPATH], ["`eval eval echo $mandir`"], [Path to man pages.])
 
+# embedded --help message
+AC_ARG_ENABLE(
+       [embedded-help],
+       AS_HELP_STRING(
+               [--enable-embedded-help],
+               [Embed the --help messages in the executable files]
+       ),
+       [embedded_help=$enableval],
+       [embedded_help=no]
+)
+AS_IF([test "x$embedded_help" = "xyes"], [
+       AS_IF([test "x$man_pages_opt" = "xno"], [
+               AC_MSG_ERROR([You need the --enable-man-pages option with the --enable-embedded-help option.])
+       ])
+       AC_PATH_PROG([man_prog_path], [man], [no])
+       AS_IF([test "x$man_prog_path" = "xno"], [
+               AC_MSG_ERROR([You need man with the --enable-embedded-help option.])
+       ])
+       AC_DEFINE_UNQUOTED([LTTNG_EMBED_HELP], 1, [Embed --help messages.])
+       AC_SUBST([MANPROG], [$man_prog_path])
+])
+AM_CONDITIONAL([EMBED_HELP], [test "x$embedded_help" != "xno"])
+
 # Python agent test
 UST_PYTHON_AGENT="lttngust"
 
@@ -947,9 +971,11 @@ modify their sources.
 # export flex condition
 AM_CONDITIONAL([HAVE_FLEX], [test "x$have_flex" = "xyes"])
 
-CFLAGS="-Wall $CFLAGS -g -fno-strict-aliasing"
+AM_CFLAGS="-Wall -fno-strict-aliasing $PTHREAD_CFLAGS"
+AC_SUBST(AM_CFLAGS)
 
-DEFAULT_INCLUDES="-I\$(top_srcdir) -I\$(top_builddir) -I\$(top_builddir)/src -I\$(top_builddir)/include -include config.h"
+AM_CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include -I\$(top_srcdir)/src -include config.h $AM_CPPFLAGS"
+AC_SUBST(AM_CPPFLAGS)
 
 lttngincludedir="${includedir}/lttng"
 AC_SUBST(lttngincludedir)
@@ -966,8 +992,6 @@ AC_SUBST(lttngnotificationincludedir)
 lttngtriggerincludedir="${includedir}/lttng/trigger"
 AC_SUBST(lttngtriggerincludedir)
 
-AC_SUBST(DEFAULT_INCLUDES)
-
 lttnglibexecdir="${libdir}/lttng/libexec"
 AC_SUBST(lttnglibexecdir)
 
@@ -996,6 +1020,7 @@ AC_CONFIG_FILES([
        src/common/index/Makefile
        src/common/health/Makefile
        src/common/config/Makefile
+       src/common/string-utils/Makefile
        src/lib/Makefile
        src/lib/lttng-ctl/Makefile
        src/lib/lttng-ctl/filter/Makefile
@@ -1025,6 +1050,7 @@ AC_CONFIG_FILES([
        tests/regression/tools/crash/Makefile
        tests/regression/tools/regen-metadata/Makefile
        tests/regression/tools/regen-statedump/Makefile
+       tests/regression/tools/notification/Makefile
        tests/regression/ust/Makefile
        tests/regression/ust/nprocesses/Makefile
        tests/regression/ust/high-throughput/Makefile
@@ -1059,6 +1085,7 @@ AC_CONFIG_FILES([
        tests/utils/testapp/Makefile
        tests/utils/testapp/gen-ust-events/Makefile
        tests/utils/testapp/gen-ust-nevents/Makefile
+       tests/utils/testapp/gen-ust-nevents-str/Makefile
        tests/utils/testapp/gen-ust-tracef/Makefile
 ])
 
@@ -1186,6 +1213,9 @@ AS_IF([test "x$man_pages_opt" != "xno"], [
 
 m4_popdef([build_man_pages_msg])
 
+test "x$embedded_help" = xyes && value=1 || value=0
+PPRINT_PROP_BOOL([Embed --help messages], $value, $PPRINT_COLOR_SUBTITLE)
+
 PPRINT_SET_INDENT(1)
 
 report_bindir="`eval eval echo $bindir`"
This page took 0.029121 seconds and 5 git commands to generate.