From 83dcc0261a9cb44d9c5a25318e057a1aec6518a0 Mon Sep 17 00:00:00 2001 From: Michael Jeanson Date: Thu, 11 May 2017 12:13:16 -0400 Subject: [PATCH] Cleanup: kmod library detection MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Simplify kmod detection code and use a variable to store the detected lib instead of using the global LIBS variable. Also remove the --with-kmod-prefix configure option since we don't offer it for other libs and it's based on user variables which the build system shouldn't be messing with. Signed-off-by: Michael Jeanson Signed-off-by: Jérémie Galarneau --- configure.ac | 52 ++++++++++++++++-------------- src/bin/lttng-sessiond/Makefile.am | 2 +- 2 files changed, 28 insertions(+), 26 deletions(-) diff --git a/configure.ac b/configure.ac index d1fbd396b..0791682e6 100644 --- a/configure.ac +++ b/configure.ac @@ -411,31 +411,33 @@ AC_CHECK_DECL([urcu_ref_get_unless_zero], [], [AC_MSG_ERROR([WRONG_LIBURCU_MSG])], [[#include ]] ) -# 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.]), - [ - AM_CPPFLAGS="$AM_CPPFLAGS -I${withval}/include" - LDFLAGS="$LDFLAGS -L${withval}/lib64 -L${withval}/lib" - ]) - -AC_ARG_ENABLE(kmod, - AS_HELP_STRING([--disable-kmod],[build without kmod support]), - kmod_support=$enableval, kmod_support=yes) +# Check for libkmod, it will be auto-neabled if found but won't fail if it's not, +# it can be explicitly disabled with --without-kmod +AH_TEMPLATE([HAVE_KMOD], [Define if you have kmod support]) +AC_ARG_WITH([kmod], + [AS_HELP_STRING([--with-kmod], [build with lkmod support @<:@default=check@:>@])], + [], + [with_kmod=check] +) -AS_IF([test "x$kmod_support" = "xyes"], [ - AC_CHECK_LIB([kmod], [kmod_module_probe_insert_module], - [ - AC_DEFINE([HAVE_KMOD], [1], [has kmod support]) - LIBS="$LIBS -lkmod" - kmod_found=yes - ], - kmod_found=no - ) -]) -AM_CONDITIONAL([HAVE_KMOD], [test "x$kmod_found" = xyes]) +AS_IF([test "x$with_kmod" != "xno"], + [ + AC_CHECK_LIB([kmod], [kmod_module_probe_insert_module], + [ + AC_DEFINE([HAVE_KMOD], [1]) + KMOD_LIBS="-lkmod" + ], + [ + if test "x$with_kmod" != xcheck; then + AC_MSG_FAILURE([Cannot find libkmod. Use [LDFLAGS]=-Ldir and [CPPFLAGS]=-Idir to specify its location.]) + else + with_kmod=no + fi + ] + ) + ] +) +AC_SUBST(KMOD_LIBS) AC_ARG_WITH(lttng-ust-prefix, AS_HELP_STRING([--with-lttng-ust-prefix=PATH], @@ -1126,7 +1128,7 @@ done PPRINT_PROP_STRING([Target architecture], $target_arch) # kmod enabled/disabled -test "x$kmod_found" = "xyes" && value=1 || value=0 +test "x$with_kmod" != "xno" && value=1 || value=0 PPRINT_PROP_BOOL([libkmod support], $value) # LTTng-UST enabled/disabled diff --git a/src/bin/lttng-sessiond/Makefile.am b/src/bin/lttng-sessiond/Makefile.am index 529887b8a..fbbe7fe23 100644 --- a/src/bin/lttng-sessiond/Makefile.am +++ b/src/bin/lttng-sessiond/Makefile.am @@ -46,7 +46,7 @@ endif lttng_sessiond_SOURCES += lttng-sessiond.h main.c # link on liblttngctl for check if sessiond is already alive. -lttng_sessiond_LDADD = -lurcu-common -lurcu \ +lttng_sessiond_LDADD = -lurcu-common -lurcu $(KMOD_LIBS) \ $(top_builddir)/src/lib/lttng-ctl/liblttng-ctl.la \ $(top_builddir)/src/common/sessiond-comm/libsessiond-comm.la \ $(top_builddir)/src/common/kernel-ctl/libkernel-ctl.la \ -- 2.34.1