When systemd is built without compatibility libs, we only need to do one pkgconfig check (libsystemd) rather than for libsystemd-login and libsystemd-journal separately. This change should allow building with both older and newer versions of systemd. --- configure.ac | 27 +++++++++++++++++++++------ src/Makefile.am | 8 ++++---- 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/configure.ac b/configure.ac index 177494a..dbe7c2f 100644 --- a/configure.ac +++ b/configure.ac @@ -1174,13 +1174,31 @@ AM_CONDITIONAL([HAVE_GCOV], [test "x$HAVE_GCOV" = x1]) ORC_CHECK([0.4.11]) -#### systemd login support (optional) #### +#### systemd support (optional) #### AC_ARG_ENABLE([systemd-login], AS_HELP_STRING([--disable-systemd-login],[Disable optional systemd login support])) +AC_ARG_ENABLE([systemd-journal], + AS_HELP_STRING([--disable-systemd-journal],[Disable optional systemd journal support])) + +# Newer systemd's combine their subcomponent libraries into one +# If it exists, we should use it for the further checks + +AS_IF([test "x$enable_systemd_login" != "xno" || test "x$enable_systemd_journal" != "xno"], + [PKG_CHECK_MODULES(SYSTEMD, [ libsystemd ], HAVE_SYSTEMD=1, HAVE_SYSTEMD=0)], + HAVE_SYSTEMD=0) + +AS_IF([test "x$HAVE_SYSTEMD" = "x1"], + [ + HAVE_SYSTEMD_LOGIN=1 + HAVE_SYSTEMD_JOURNAL=1 + ]) + +#### systemd login support (optional) #### + AS_IF([test "x$enable_systemd_login" != "xno"], - [PKG_CHECK_MODULES(SYSTEMDLOGIN, [ libsystemd-login ], HAVE_SYSTEMD_LOGIN=1, HAVE_SYSTEMD_LOGIN=0)], + [AS_IF([test "x$HAVE_SYSTEMD_LOGIN" != "x1"], [PKG_CHECK_MODULES(SYSTEMDLOGIN, [ libsystemd-login ], HAVE_SYSTEMD_LOGIN=1, HAVE_SYSTEMD_LOGIN=0)])], HAVE_SYSTEMD_LOGIN=0) AS_IF([test "x$enable_systemd_login" = "xyes" && test "x$HAVE_SYSTEMD_LOGIN" = "x0"], @@ -1192,11 +1210,8 @@ AS_IF([test "x$HAVE_SYSTEMD_LOGIN" = "x1"], AC_DEFINE([HAVE_SYSTEMD_LOGIN], 1, [ #### systemd journal support (optional) #### -AC_ARG_ENABLE([systemd-journal], - AS_HELP_STRING([--disable-systemd-journal],[Disable optional systemd journal support])) - AS_IF([test "x$enable_systemd_journal" != "xno"], - [PKG_CHECK_MODULES(SYSTEMDJOURNAL, [ libsystemd-journal ], HAVE_SYSTEMD_JOURNAL=1, HAVE_SYSTEMD_JOURNAL=0)], + [AS_IF([test "x$HAVE_SYSTEMD_JOURNAL" != "x1"], [PKG_CHECK_MODULES(SYSTEMDJOURNAL, [ libsystemd-journal ], HAVE_SYSTEMD_JOURNAL=1, HAVE_SYSTEMD_JOURNAL=0)])], HAVE_SYSTEMD_JOURNAL=0) AS_IF([test "x$enable_systemd_journal" = "xyes" && test "x$HAVE_SYSTEMD_JOURNAL" = "x0"], diff --git a/src/Makefile.am b/src/Makefile.am index 0391fa4..248b2ab 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -707,8 +707,8 @@ libpulsecommon_ at PA_MAJORMINOR@_la_LDFLAGS += $(X11_LIBS) endif if HAVE_SYSTEMD_JOURNAL -libpulsecommon_ at PA_MAJORMINOR@_la_CFLAGS += $(SYSTEMDJOURNAL_FLAGS) -libpulsecommon_ at PA_MAJORMINOR@_la_LDFLAGS += $(SYSTEMDJOURNAL_LIBS) +libpulsecommon_ at PA_MAJORMINOR@_la_CFLAGS += $(SYSTEMD_FLAGS) $(SYSTEMDJOURNAL_FLAGS) +libpulsecommon_ at PA_MAJORMINOR@_la_LDFLAGS += $(SYSTEMD_LIBS) $(SYSTEMDJOURNAL_LIBS) endif # proplist-util.h uses these header files, but not the library itself! @@ -2062,8 +2062,8 @@ module_console_kit_la_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS) module_systemd_login_la_SOURCES = modules/module-systemd-login.c module_systemd_login_la_LDFLAGS = $(MODULE_LDFLAGS) -module_systemd_login_la_LIBADD = $(MODULE_LIBADD) $(SYSTEMDLOGIN_LIBS) -module_systemd_login_la_CFLAGS = $(AM_CFLAGS) $(SYSTEMDLOGIN_CFLAGS) +module_systemd_login_la_LIBADD = $(MODULE_LIBADD) $(SYSTEMD_LIBS) $(SYSTEMDLOGIN_LIBS) +module_systemd_login_la_CFLAGS = $(AM_CFLAGS) $(SYSTEMD_CFLAGS) $(SYSTEMDLOGIN_CFLAGS) # GConf support module_gconf_la_SOURCES = modules/gconf/module-gconf.c -- 2.1.2