From 9fdd1d95ec094a0df6d8d3dd9c8f04fa8499b845 Mon Sep 17 00:00:00 2001 From: Sven Eden Date: Tue, 6 Jun 2017 10:17:33 -0400 Subject: configure: elogind on non-systemd systems This commit adds some configure goo to make accountsservice use elogind if explicitly requested for systems that don't have systemd. diff --git a/configure.ac b/configure.ac index b255e72..4b21477 100644 --- a/configure.ac +++ b/configure.ac @@ -264,22 +264,24 @@ dnl Check for xsltproc dnl --------------------------------------------------------------------------- AC_PATH_PROG([XSLTPROC], [xsltproc]) -# systemd +# systemd or elogind + +have_systemd=no + +AC_MSG_CHECKING([whether to use systemd]) AC_ARG_ENABLE([systemd], AS_HELP_STRING([--enable-systemd], [Use systemd]), [enable_systemd=$enableval], [enable_systemd=auto]) +AC_MSG_RESULT($enable_systemd) + if test x$enable_systemd != xno; then - PKG_CHECK_MODULES(SYSTEMD, [libsystemd >= 186], - [have_systemd=yes], [have_systemd=no]) -else - have_systemd=no + PKG_CHECK_MODULES(SYSTEMD, [libsystemd >= 186], + [have_systemd=yes]) fi -AC_MSG_CHECKING([whether to use systemd]) - if test x$enable_systemd = xauto ; then if test x$have_systemd = xno ; then enable_systemd=no @@ -288,21 +290,54 @@ if test x$enable_systemd = xauto ; then fi fi -AC_MSG_RESULT($enable_systemd) +have_elogind=no + +AC_MSG_CHECKING([whether to use elogind]) + +AC_ARG_ENABLE([elogind], + AS_HELP_STRING([--enable-elogind], [Use elogind]), + [enable_elogind=$enableval], + [enable_elogind=no]) + +AC_MSG_RESULT($enable_elogind) if test x$enable_systemd = xyes; then if test x$have_systemd = xno; then - AC_MSG_ERROR([Systemd support explicitly required, but systemd not found]) + AC_MSG_ERROR([Systemd support explicitly requested, but libsystemd not found]) + fi + + dnl Requesting to use the elogind session tracker makes no sense where + dnl systemd-login is (or might be) running. + if test x$enable_elogind = xyes; then + AC_MSG_WARN([elogind support requested, but systemd was found.]) + AC_MSG_ERROR([Disable either elogind or systemd support.]) fi + + AC_SUBST(SYSTEMD_CFLAGS) + AC_SUBST(SYSTEMD_LIBS) + + LIBACCOUNTSSERVICE_LIBS="$LIBACCOUNTSSERVICE_LIBS $SYSTEMD_LIBS" + LIBACCOUNTSSERVICE_CFLAGS="$LIBACCOUNTSSERVICE_CFLAGS $SYSTEMD_CFLAGS" + AC_DEFINE(HAVE_SYSTEMD, 1, [Define if systemd is used]) fi -AC_SUBST(SYSTEMD_CFLAGS) -AC_SUBST(SYSTEMD_LIBS) -LIBACCOUNTSSERVICE_LIBS="$LIBACCOUNTSSERVICE_LIBS $SYSTEMD_LIBS" -LIBACCOUNTSSERVICE_CFLAGS="$LIBACCOUNTSSERVICE_CFLAGS $SYSTEMD_CFLAGS" +if test "x$enable_elogind" != "xno"; then + PKG_CHECK_MODULES(ELOGIND, [libelogind >= 229.4], + [have_elogind=yes]) + + if test "x$have_elogind" != "xyes"; then + AC_MSG_ERROR([elogind support requested, but libelogind not found]) + else + AC_SUBST(ELOGIND_CFLAGS) + AC_SUBST(ELOGIND_LIBS) + + LIBACCOUNTSSERVICE_LIBS="$LIBACCOUNTSSERVICE_LIBS $ELOGIND_LIBS" + LIBACCOUNTSSERVICE_CFLAGS="$LIBACCOUNTSSERVICE_CFLAGS $ELOGIND_CFLAGS" + fi +fi -if test "x$have_systemd" != "xno" ; then +if test "x${have_systemd}" != "xno" -o "x${have_elogind}" != "xno" ; then AC_DEFINE(WITH_SYSTEMD, 1, [Define to enable systemd support]) fi -- cgit v0.10.2