HAVE_SYSTEMD_JOURNAL=1
])
+AC_ARG_WITH([systemduserunitdir],
+ AS_HELP_STRING([--with-systemduserunitdir=DIR], [Directory for systemd user service files]),
+ [], [with_systemduserunitdir=$($PKG_CONFIG --variable=systemduserunitdir systemd)])
+if test "x$with_systemduserunitdir" != xno; then
+ AC_SUBST([systemduserunitdir], [$with_systemduserunitdir])
+fi
+
#### systemd daemon support (optional) ####
AS_IF([test "x$enable_systemd_daemon" != "xno"],
[m4 src/default.pa > src/default.pa.gen && mv src/default.pa.gen src/default.pa])
AC_CONFIG_FILES([src/system.pa:src/daemon/system.pa.in],
[m4 src/system.pa > src/system.pa.gen && mv src/system.pa.gen src/system.pa])
+AS_IF([test "$HAVE_SYSTEMD_DAEMON" = "x1"],
+ [
+ AC_CONFIG_FILES([src/pulseaudio.service:src/daemon/systemd/user/pulseaudio.service.in])
+ ])
# CMake related ProjectConfig files
PA_LIBDIR="$libdir"
daemon/esdcompat.in \
daemon/start-pulseaudio-x11.in \
daemon/start-pulseaudio-kde.in \
+ daemon/systemd/user/pulseaudio.service.in \
+ daemon/systemd/user/pulseaudio.socket \
utils/padsp.in \
utils/qpaeq \
modules/module-defs.h.m4 \
pax11publish_LDADD = $(AM_LDADD) libpulse.la libpulsecommon-@PA_MAJORMINOR@.la $(X11_LIBS)
pax11publish_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
+if HAVE_SYSTEMD_DAEMON
+
+systemduserunit_DATA = \
+ pulseaudio.service \
+ daemon/systemd/user/pulseaudio.socket
+
+endif
+
###################################
# Test programs #
###################################
###################################
CLEANFILES += daemon/pulseaudio.desktop daemon/pulseaudio-kde.desktop
-DISTCLEANFILES = esdcompat client.conf default.pa system.pa daemon.conf start-pulseaudio-x11 start-pulseaudio-kde
+DISTCLEANFILES = esdcompat client.conf default.pa system.pa daemon.conf start-pulseaudio-x11 start-pulseaudio-kde pulseaudio.service
if OS_IS_WIN32
SYMLINK_PROGRAM=cd $(DESTDIR)$(bindir) && cp
--- /dev/null
+[Unit]
+Description=Sound Service
+
+[Service]
+ExecStart=@PA_BINARY@ --daemonize=no
+Restart=on-failure
+
+[Install]
+Also=pulseaudio.socket
+WantedBy=default.target
--- /dev/null
+[Unit]
+Description=Sound System
+
+[Socket]
+Priority=6
+Backlog=5
+ListenStream=%t/pulse/native
+
+[Install]
+WantedBy=sockets.target