From 05825a58d91d90312d52e76ef0f7df6594ff7824 Mon Sep 17 00:00:00 2001 From: Lukas Slebodnik Date: Tue, 28 Jun 2016 11:28:24 +0200 Subject: [PATCH 1/2] BUILD: Fix detection of systemd The macro AM_COND_IF must be called after AM_CONDITIONAL Otherwise it will consider that condition is true. As a result of this the header file config.h had defined macro HAVE_SYSTEMD on all platforms Our macro AM_CHECK_SYSTEMD was removed becuase it was needed in src/external/systemd.m4 and should not be invoked later in configure.ac --- configure.ac | 4 ---- src/external/systemd.m4 | 39 +++++++++++++++++++-------------------- 2 files changed, 19 insertions(+), 24 deletions(-) diff --git a/configure.ac b/configure.ac index 0d3573c849b508cba00bb12cfae4f496ae5ed6d7..dbfdeb40fdfbf0765ffad3b8848ca7c039c679ec 100644 --- a/configure.ac +++ b/configure.ac @@ -350,10 +350,6 @@ if test x$HAVE_SEMANAGE != x -a x$HAVE_SELINUX != x; then AM_CHECK_SEMANAGE fi -if test x$HAVE_SYSTEMD_UNIT != x; then - AM_CHECK_SYSTEMD -fi - dnl If journald was selected for logging, configure journald if test x$syslog = xjournald; then AM_CHECK_JOURNALD diff --git a/src/external/systemd.m4 b/src/external/systemd.m4 index 87c93f50877d94f13f6007d1072cf08e2a2168e2..f2aeda116bc96f468855ca4545fa962e7ec70578 100644 --- a/src/external/systemd.m4 +++ b/src/external/systemd.m4 @@ -1,32 +1,31 @@ -dnl There are no module libsystemd-journal and libsystem-login -dnl up systemd version 209 +dnl A macro to check presence of systemd on the system +PKG_CHECK_EXISTS([systemd], + [HAVE_SYSTEMD=yes], + [HAVE_SYSTEMD=no]) + +dnl Libraries libsystemd-journal and libsystem-login are deprecarted +dnl since systemd 209 and are removed in systemd 230. The library libsystemd +dnl is replacement of libsystemd-{login,journal,daemon,id128} libraries PKG_CHECK_EXISTS([libsystemd], [HAVE_LIBSYSTEMD=yes], [HAVE_LIBSYSTEMD=no]) -dnl A macro to check presence of systemd on the system -AC_DEFUN([AM_CHECK_SYSTEMD], -[ - PKG_CHECK_EXISTS(systemd, - [ HAVE_SYSTEMD=1, AC_SUBST(HAVE_SYSTEMD) ], - [AC_MSG_ERROR([Could not detect systemd presence])]) -]) - AS_IF([test x$HAVE_LIBSYSTEMD = xyes], [login_lib_name=libsystemd], [login_lib_name=libsystemd-login]) -AM_COND_IF([HAVE_SYSTEMD], - [AC_DEFINE_UNQUOTED([HAVE_SYSTEMD], 1, [Build with libsystemd support])], - [AC_MSG_NOTICE([Build without libsystemd support])]) +AS_IF([test x$HAVE_SYSTEMD = xyes], + [AC_DEFINE_UNQUOTED([HAVE_SYSTEMD], 1, [Build with systemd support])], + [AC_MSG_NOTICE([Build without systemd support])]) -AM_COND_IF([HAVE_SYSTEMD], - [PKG_CHECK_MODULES([SYSTEMD_LOGIN], - [$login_lib_name], - [AC_DEFINE_UNQUOTED([HAVE_SYSTEMD_LOGIN], 1, - [Build with libsystemdlogin support]) - ], - [AC_MSG_NOTICE([Build without libsystemd-login support])])]) +AS_IF([test x$HAVE_SYSTEMD = xyes], + [PKG_CHECK_MODULES( + [SYSTEMD_LOGIN], + [$login_lib_name], + [AC_DEFINE_UNQUOTED([HAVE_SYSTEMD_LOGIN], 1, + [Build with $login_lib_name support])], + [AC_MSG_NOTICE([Build without $login_lib_name support])])], + [AC_MSG_NOTICE([Build without $login_lib_name support])]) dnl A macro to check presence of journald on the system AC_DEFUN([AM_CHECK_JOURNALD], -- 2.7.4