--- a/configure.ac 2017-06-06 08:06:51.298368338 +0200 +++ b/configure.ac 2017-06-06 08:24:06.233399409 +0200 @@ -264,22 +264,55 @@ dnl --------------------------------------------------------------------------- AC_PATH_PROG([XSLTPROC], [xsltproc]) +# elogind + +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_elogind" != "xno"; then + PKG_CHECK_MODULES(ELOGIND, [libelogind >= 229.4], + [have_elogind=yes]) +fi + +if test "x$enable_elogind" != "xno"; then + 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 + + # systemd +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 +321,29 @@ fi fi -AC_MSG_RESULT($enable_systemd) 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$have_systemd" != "xno" ; then +if test "x${have_systemd}x${have_elogind}" != "xnoxno" ; then AC_DEFINE(WITH_SYSTEMD, 1, [Define to enable systemd support]) fi