-e "s|^\(dovecot_statedir\)=|\1=$(statedir)|" \
) > dovecot-config
-if HAVE_LIBSYSTEMD
%.service: %.service.in
$(AM_V_GEN)sed -e 's,@sbindir\@,$(sbindir),g' \
-e 's,@bindir\@,$(bindir),g' \
-e 's,@systemdservicetype\@,$(systemdservicetype),g' \
$< > $@
+if WANT_SYSTEMD
systemdsystemunit_DATA = \
dovecot.socket \
dovecot.service
uninstall-hook:
rm $(DESTDIR)$(pkglibdir)/dovecot-config
-if HAVE_LIBSYSTEMD
+if WANT_SYSTEMD
CLEANFILES = dovecot.service
endif
AC_ARG_WITH([systemd],
AS_HELP_STRING([--with-systemd], [Build with systemd support (default=auto)]),
- want_systemd="$withval"
+ want_systemd="$withval",
+ want_systemd="auto"
)
-systemdservicetype='simple'
-
-AS_IF([test "$want_systemd" != "no"], [
- PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [
- AC_DEFINE([HAVE_LIBSYSTEMD],[1], [Define to 1 if you have libsystemd])
- systemdsystemunitdir=`$PKG_CONFIG --variable=systemdsystemunitdir systemd`
- systemdservicetype='notify'
- ], [AS_IF([test "$want_systemd" = "yes"], [
- AC_MSG_ERROR([libsystemd not found])
- ],
- [want_systemd="no"])
- ])
-])
-
-AC_SUBST(systemdsystemunitdir)
-AC_SUBST(systemdservicetype)
-AM_CONDITIONAL(HAVE_LIBSYSTEMD, [test "$want_systemd" != "no"])
+DOVECOT_WANT_SYSTEMD
dovecot_moduledir="$libdir/dovecot"
DC_DOVECOT_MODULEDIR
echo " :$not_userdb"
fi
echo "CFLAGS ......... : $CFLAGS"
+
+if test "$systemdsystemunitdir" != ""; then
+ echo "SYSTEMD ........ : $systemdservicetype - $systemdsystemunitdir/dovecot.service";
+else
+ echo "SYSTEMD ........ : $systemdservicetype - (no unit file)"
+fi
+
echo "SQL drivers .... :$sql_drivers"
if test "$not_sql_drivers" != ""; then
echo " :$not_sql_drivers"
--- /dev/null
+dnl Checks for libsystemd existence and where
+dnl to put systemd unit files. You can have
+dnl systemd units without libsystemd.
+
+AC_DEFUN([DOVECOT_WANT_SYSTEMD], [
+ systemdservicetype='simple'
+ have_libsystemd=no
+
+ AS_IF([test "$want_systemd" != "no"], [
+ dnl Check for actual systemd integration
+ PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [
+ AC_DEFINE([HAVE_LIBSYSTEMD],[1], [Define to 1 if you have libsystemd])
+ systemdservicetype='notify'
+ have_libsystemd=yes
+ ], AS_IF([test "$want_systemd" = "yes"], [
+ AC_MSG_WARN([libsystemd not found - full integration disabled])
+ ])
+ )
+ dnl Check for unit file installation
+ AC_MSG_CHECKING([for systemd unit directory])
+ AS_IF([test "$systemdsystemunitdir" = ""], [
+ PKG_CHECK_VAR([systemdsystemunitdir], [systemd], [systemdsystemunitdir])
+ ])
+ AC_MSG_RESULT([$systemdsystemunitdir])
+ AS_IF([test "$systemdsystemunitdir" = ""], [
+ AS_IF([test "$want_systemd" = "yes"], [
+ AC_MSG_ERROR([Cannot determine where to put systemd files - Provide systemdsystemunitdir manually])
+ ])
+ dnl Cannot enable even unit file installation.
+ want_systemd=no
+ ])
+ ])
+ AC_SUBST(systemdsystemunitdir)
+ AC_SUBST(systemdservicetype)
+ AM_CONDITIONAL(WANT_SYSTEMD, [test "$want_systemd" != "no"])
+])