Re: [PATCH] Allow disabling the build of all of systemd, leaving just udev

Bryan Kadzban <[email protected]>
Newsgroups gmane.linux.hotplug.devel
Message-ID <[email protected]>
Bryan Kadzban wrote:
> Unless you mean the directories that are getting created, as in the 
> previous message -- but I don't see a way to stop automake from doing
> that.

Digging a bit (the initial attempt at setting directories to "" resulted
in several warnings from automake about conditionally changing pkg*dir
variables), recent versions of automake no longer create empty
directories.  Upgrading my system to 1.12.1 (most recent) and rerunning
"autoreconf --force" removed almost all of the requirements to set these
directories to the empty string.

I still need to set "pkgincludedir= pkgsysconfdir=", and that looks like
a too-simple check for no files (it doesn't work if there's only
whitespace).  But I don't think it's a huge deal either.

> (One thing I need to do today is fix this so that "make distdir"
> works even with --disable-systemd.)

This is now done, just without the directory changes, since a newer
automake fixes that.  v2 patch (including header) attached.

Still wondering which bits of systemd got installed in your setup
though.  :-)
systemd-make-systemd-optional.patch (text/plain, 19.7 KB)
Add a new ./configure arg (--disable-systemd) that causes the build
system to build, test, and install only udev.

Allows udev to be built on a system with many fewer of the build-time
dependencies present.

v2: Handle EXTRA_DIST correctly; always distribute everything.  This
also fixes several cases where using e.g. --disable-gudev on the
distributor's system causes "make dist" to not distribute some of the
gudev source files.  Also handle polkitpolicy* files: always include
the filenames in the $(*_files) variables, since EXTRA_DIST is built
from those variables, but skip the installation rules unless
ENABLE_SYSTEMD is on.

Signed-Off-By: Bryan Kadzban <[email protected]>

diff --git a/Makefile.am b/Makefile.am
index 597711e..12baedd 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -202,6 +202,13 @@ endif
 endif
 
 # ------------------------------------------------------------------------------
+if !ENABLE_SYSTEMD
+# stubs
+bin_PROGRAMS =
+rootlibexec_PROGRAMS =
+endif
+
+if ENABLE_SYSTEMD
 rootbin_PROGRAMS = \
 	systemctl \
 	systemd-notify \
@@ -349,6 +356,8 @@ dist_userunit_DATA = \
 nodist_userunit_DATA = \
 	units/user/exit.service
 
+endif # ENABLE_SYSTEMD
+
 EXTRA_DIST += \
 	units/[email protected] \
 	units/[email protected] \
@@ -383,6 +392,8 @@ EXTRA_DIST += \
 	introspect.awk \
 	man/custom-html.xsl
 
+if ENABLE_SYSTEMD
+
 if TARGET_FEDORA
 dist_systemunit_DATA += \
 	units/fedora/prefdm.service \
@@ -437,10 +448,12 @@ dist_systemunit_DATA += \
 
 nodist_systemunit_DATA += \
 	units/systemd-ask-password-plymouth.service
+
+endif
+endif # ENABLE_SYSTEMD
 
 EXTRA_DIST += \
 	units/systemd-ask-password-plymouth.service.in
-endif
 
 dist_doc_DATA = \
 	README \
@@ -453,6 +466,7 @@ dist_doc_DATA = \
 @INTLTOOL_POLICY_RULE@
 
 # ------------------------------------------------------------------------------
+if ENABLE_SYSTEMD
 MANPAGES = \
 	man/systemd.1 \
 	man/systemctl.1 \
@@ -510,13 +524,19 @@ MANPAGES_ALIAS = \
 	man/systemd-modules-load.8 \
 	man/systemd-sysctl.8 \
 	man/systemd-journald.8
+else
+MANPAGES =
+MANPAGES_ALIAS =
+endif
 
+if ENABLE_SYSTEMD
 man/reboot.8: man/halt.8
 man/poweroff.8: man/halt.8
 man/init.1: man/systemd.1
 man/systemd-modules-load.8: man/systemd-modules-load.service.8
 man/systemd-sysctl.8: man/systemd-sysctl.service.8
 man/systemd-journald.8: man/systemd-journald.service.8
+endif
 
 XML_FILES = \
 	${patsubst %.1,%.xml,${patsubst %.3,%.xml,${patsubst %.5,%.xml,${patsubst %.7,%.xml,${patsubst %.8,%.xml,$(MANPAGES)}}}}}
@@ -595,6 +615,7 @@ libsystemd_shared_la_SOURCES = \
 	src/shared/hwclock.c \
 	src/shared/hwclock.h
 
+if ENABLE_SYSTEMD
 #-------------------------------------------------------------------------------
 noinst_LTLIBRARIES += \
 	libsystemd-dbus.la
@@ -627,6 +648,7 @@ libsystemd_units_la_SOURCES = \
 libsystemd_units_la_CFLAGS = \
 	$(AM_CFLAGS) \
 	$(DBUS_CFLAGS)
+endif
 
 # ------------------------------------------------------------------------------
 noinst_LTLIBRARIES += \
@@ -651,6 +673,7 @@ libsystemd_label_la_CFLAGS = \
 libsystemd_label_la_LIBADD = \
 	$(SELINUX_LIBS)
 
+if ENABLE_SYSTEMD
 # ------------------------------------------------------------------------------
 noinst_LTLIBRARIES += \
 	libsystemd-logs.la
@@ -692,6 +715,8 @@ libsystemd_audit_la_SOURCES = \
 libsystemd_audit_la_LIBADD = \
 	libsystemd-capability.la
 
+endif # ENABLE_SYSTEMD
+
 # ------------------------------------------------------------------------------
 if HAVE_ACL
 noinst_LTLIBRARIES += \
@@ -709,6 +734,7 @@ libsystemd_acl_la_LIBADD = \
 	$(ACL_LIBS)
 endif
 
+if ENABLE_SYSTEMD
 # ------------------------------------------------------------------------------
 noinst_LTLIBRARIES += \
 	libsystemd-core.la
@@ -844,9 +870,13 @@ src/core/load-fragment-gperf-nulstr.c: src/core/load-fragment-gperf.gperf
 	$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
 	$(AWK) 'BEGIN{ keywords=0 ; FS="," ; print "extern const char load_fragment_gperf_nulstr[];" ; print "const char load_fragment_gperf_nulstr[] ="} ; keyword==1 { print "\"" $$1 "\\0\"" } ; /%%/ { keyword=1} ; END { print ";" }' < $< > $@ || rm $@
 
+endif # ENABLE_SYSTEMD
+
 EXTRA_DIST += \
 	src/core/load-fragment-gperf.gperf.m4
 
+if ENABLE_SYSTEMD
+
 CLEANFILES += \
 	src/core/load-fragment-gperf.gperf \
 	src/core/load-fragment-gperf.c \
@@ -891,9 +921,6 @@ dbusinterface_DATA += \
 	org.freedesktop.systemd1.Swap.xml \
 	org.freedesktop.systemd1.Path.xml
 
-polkitpolicy_in_in_files = \
-	src/core/org.freedesktop.systemd1.policy.in.in
-
 org.freedesktop.systemd1.%.xml: systemd
 	$(AM_V_GEN)$(LIBTOOL) --mode=execute $(OBJCOPY) -O binary -j introspect.$* $< [email protected] && \
 		$(STRINGS) [email protected] | $(AWK) -f $(srcdir)/introspect.awk | \
@@ -902,9 +929,16 @@ org.freedesktop.systemd1.%.xml: systemd
 pkgconfigdata_DATA = \
 	src/core/systemd.pc
 
+endif # ENABLE_SYSTEMD
+
+polkitpolicy_in_in_files = \
+	src/core/org.freedesktop.systemd1.policy.in.in
+
 EXTRA_DIST += \
 	src/core/systemd.pc.in
 
+if ENABLE_SYSTEMD
+
 # ------------------------------------------------------------------------------
 noinst_PROGRAMS += \
 	test-engine \
@@ -1351,6 +1385,8 @@ man/sd_is_socket_inet.3: man/sd_is_fifo.3
 man/sd_is_mq.3: man/sd_is_fifo.3
 man/sd_notifyf.3: man/sd_notify.3
 
+endif # ENABLE_SYSTEMD
+
 EXTRA_DIST += \
 	src/libsystemd-daemon/libsystemd-daemon.pc.in \
 	src/libsystemd-daemon/libsystemd-daemon.sym
@@ -1443,8 +1479,12 @@ udev-confdirs:
 
 INSTALL_DATA_HOOKS += udev-confdirs
 
+if ENABLE_SYSTEMD
+SYSTEMD_UDEV_RULES = rules/99-systemd.rules
+endif
+
 dist_udevrules_DATA += \
-	rules/99-systemd.rules \
+	$(SYSTEMD_UDEV_RULES) \
 	rules/42-usb-hid-pm.rules \
 	rules/50-udev-default.rules \
 	rules/60-persistent-storage-tape.rules \
@@ -1471,7 +1511,7 @@ EXTRA_DIST += \
 	src/udev/udev.pc.in
 
 CLEANFILES += \
-	rules/99-systemd.rules \
+	$(SYSTEMD_UDEV_RULES) \
 	src/udev/udev.pc
 
 EXTRA_DIST += \
@@ -1479,6 +1519,7 @@ EXTRA_DIST += \
 	units/systemd-udev-trigger.service.in \
 	units/systemd-udev-settle.service.in
 
+if ENABLE_SYSTEMD
 CLEANFILES += \
 	units/systemd-udev.service \
 	units/systemd-udev-trigger.service \
@@ -1493,6 +1534,7 @@ systemd-install-hook:
 	ln -sf ../systemd-udev-trigger.service $(DESTDIR)$(systemunitdir)/sysinit.target.wants/systemd-udev-trigger.service
 
 INSTALL_DATA_HOOKS += systemd-install-hook
+endif
 
 bin_PROGRAMS += \
 	udevadm
@@ -1731,9 +1773,12 @@ lib_LTLIBRARIES += libgudev-1.0.la
 pkgconfiglib_DATA += \
 	src/gudev/gudev-1.0.pc
 
+endif
+
 EXTRA_DIST += \
 	src/gudev/gudev-1.0.pc.in
 
+if ENABLE_GUDEV
 CLEANFILES += \
 	src/gudev/gudev-1.0.pc
 
@@ -1784,6 +1829,8 @@ libgudev_1_0_la_LDFLAGS = \
 	-export-dynamic -no-undefined \
 	-export-symbols-regex '^g_udev_.*'
 
+endif
+
 EXTRA_DIST += \
 	src/gudev/gudevmarshal.list \
 	src/gudev/gudevenumtypes.h.template \
@@ -1792,6 +1839,7 @@ EXTRA_DIST += \
 	src/gudev/seed-example-enum.js \
 	src/gudev/seed-example.js
 
+if ENABLE_GUDEV
 CLEANFILES += \
 	$(nodist_libgudev_1_0_la_SOURCES)
 
@@ -1910,10 +1958,14 @@ dist_udevhome_SCRIPTS = \
 TESTS += \
 	src/udev/keymap/check-keymaps.sh
 
+endif
+
 EXTRA_DIST += \
 	src/udev/keymap/check-keymaps.sh \
 	src/udev/keymap/keyboard-force-release.sh.in
 
+if ENABLE_KEYMAP
+
 CLEANFILES += \
 	$(nodist_keymap_SOURCES) \
 	src/udev/keymap/keys.txt \
@@ -2019,6 +2071,7 @@ dist_udevrules_DATA += \
 udevlibexec_PROGRAMS += \
 	mtd_probe
 
+if ENABLE_SYSTEMD
 # ------------------------------------------------------------------------------
 libsystemd_id128_la_SOURCES = \
 	src/libsystemd-id128/sd-id128.c
@@ -2077,10 +2130,14 @@ libsystemd-id128-uninstall-hook:
 UNINSTALL_EXEC_HOOKS += \
 	libsystemd-id128-uninstall-hook
 
+endif
+
 EXTRA_DIST += \
 	src/libsystemd-id128/libsystemd-id128.pc.in \
 	src/libsystemd-id128/libsystemd-id128.sym
 
+if ENABLE_SYSTEMD
+
 # ------------------------------------------------------------------------------
 systemd_journald_SOURCES = \
 	src/journal/journald.c \
@@ -2275,12 +2332,16 @@ journal-install-data-hook:
 INSTALL_DATA_HOOKS += \
 	journal-install-data-hook
 
+endif
+
 EXTRA_DIST += \
 	src/journal/libsystemd-journal.pc.in \
 	src/journal/libsystemd-journal.sym \
 	units/systemd-journald.service.in \
 	src/journal/journald-gperf.gperf
 
+if ENABLE_SYSTEMD
+
 CLEANFILES += \
 	src/journal/journald-gperf.c
 
@@ -2305,9 +2366,15 @@ rootlibexec_PROGRAMS += \
 sysctl_DATA = \
 	sysctl.d/coredump.conf
 
+endif # ENABLE_COREDUMP
+endif # ENABLE_SYSTEMD
+
 EXTRA_DIST += \
 	sysctl.d/coredump.conf.in
 
+if ENABLE_SYSTEMD
+if ENABLE_COREDUMP
+
 CLEANFILES += \
 	sysctl.d/coredump.conf
 endif
@@ -2353,9 +2420,13 @@ MANPAGES_ALIAS +=  \
 
 man/systemd-binfmt.8: man/systemd-binfmt.service.8
 
+endif
+endif # ENABLE_SYSTEMD
+
 EXTRA_DIST += \
 	units/systemd-binfmt.service.in
-endif
+
+if ENABLE_SYSTEMD
 
 # ------------------------------------------------------------------------------
 if ENABLE_VCONSOLE
@@ -2384,9 +2455,13 @@ INSTALL_DATA_HOOKS += \
 MANPAGES += \
 	man/vconsole.conf.5
 
+endif
+endif # ENABLE_SYSTEMD
+
 EXTRA_DIST += \
 	units/systemd-vconsole-setup.service.in
-endif
+
+if ENABLE_SYSTEMD
 
 # ------------------------------------------------------------------------------
 if ENABLE_READAHEAD
@@ -2425,15 +2500,19 @@ nodist_systemunit_DATA += \
 	units/systemd-readahead-replay.service \
 	units/systemd-readahead-done.service
 
+MANPAGES += \
+	man/sd_readahead.3 \
+	man/sd-readahead.7
+
+endif
+endif # ENABLE_SYSTEMD
+
 EXTRA_DIST += \
 	units/systemd-readahead-collect.service.in \
 	units/systemd-readahead-replay.service.in \
 	units/systemd-readahead-done.service.in
 
-MANPAGES += \
-	man/sd_readahead.3 \
-	man/sd-readahead.7
-endif
+if ENABLE_SYSTEMD
 
 # ------------------------------------------------------------------------------
 if ENABLE_QUOTACHECK
@@ -2443,15 +2522,19 @@ rootlibexec_PROGRAMS += \
 nodist_systemunit_DATA += \
 	units/quotacheck.service
 
-EXTRA_DIST += \
-	units/quotacheck.service.in
-
 systemd_quotacheck_SOURCES = \
 	src/quotacheck/quotacheck.c
 
 systemd_quotacheck_LDADD = \
 	libsystemd-shared.la
+
 endif
+endif # ENABLE_SYSTEMD
+
+EXTRA_DIST += \
+	units/quotacheck.service.in
+
+if ENABLE_SYSTEMD
 
 # ------------------------------------------------------------------------------
 if ENABLE_RANDOMSEED
@@ -2462,10 +2545,6 @@ nodist_systemunit_DATA += \
 	units/systemd-random-seed-save.service \
 	units/systemd-random-seed-load.service
 
-EXTRA_DIST += \
-	units/systemd-random-seed-save.service.in \
-	units/systemd-random-seed-load.service.in
-
 systemd_random_seed_SOURCES = \
 	src/random-seed/random-seed.c
 
@@ -2486,7 +2565,15 @@ randomseed-install-data-hook:
 
 INSTALL_DATA_HOOKS += \
 	randomseed-install-data-hook
+
 endif
+endif # ENABLE_SYSTEMD
+
+EXTRA_DIST += \
+	units/systemd-random-seed-save.service.in \
+	units/systemd-random-seed-load.service.in
+
+if ENABLE_SYSTEMD
 
 # ------------------------------------------------------------------------------
 if HAVE_LIBCRYPTSETUP
@@ -2556,9 +2643,6 @@ dist_dbuspolicy_DATA += \
 dist_dbussystemservice_DATA += \
 	src/hostname/org.freedesktop.hostname1.service
 
-polkitpolicy_in_files += \
-	src/hostname/org.freedesktop.hostname1.policy.in
-
 dbusinterface_DATA += \
 	org.freedesktop.hostname1.xml
 
@@ -2575,9 +2659,16 @@ hostnamed-install-data-hook:
 INSTALL_DATA_HOOKS += \
 	hostnamed-install-data-hook
 
+endif
+endif # ENABLE_SYSTEMD
+
+polkitpolicy_in_files += \
+	src/hostname/org.freedesktop.hostname1.policy.in
+
 EXTRA_DIST += \
 	units/systemd-hostnamed.service.in
-endif
+
+if ENABLE_SYSTEMD
 
 # ------------------------------------------------------------------------------
 if ENABLE_LOCALED
@@ -2606,9 +2697,6 @@ dist_dbuspolicy_DATA += \
 dist_dbussystemservice_DATA += \
 	src/locale/org.freedesktop.locale1.service
 
-polkitpolicy_in_files += \
-	src/locale/org.freedesktop.locale1.policy.in
-
 dbusinterface_DATA += \
 	org.freedesktop.locale1.xml
 
@@ -2625,9 +2713,6 @@ localed-install-data-hook:
 INSTALL_DATA_HOOKS += \
 	localed-install-data-hook
 
-EXTRA_DIST += \
-	units/systemd-localed.service.in
-
 dist_pkgdata_DATA = \
 	src/locale/kbd-model-map
 
@@ -2638,6 +2723,15 @@ update-kbd-model-map:
 	src/locale/generate-kbd-model-map > src/locale/kbd-model-map
 
 endif
+endif # ENABLE_SYSTEMD
+
+polkitpolicy_in_files += \
+	src/locale/org.freedesktop.locale1.policy.in
+
+EXTRA_DIST += \
+	units/systemd-localed.service.in
+
+if ENABLE_SYSTEMD
 
 # ------------------------------------------------------------------------------
 if ENABLE_TIMEDATED
@@ -2665,9 +2759,6 @@ dist_dbuspolicy_DATA += \
 nodist_systemunit_DATA += \
 	units/systemd-timedated.service
 
-polkitpolicy_in_files += \
-	src/timedate/org.freedesktop.timedate1.policy.in
-
 org.freedesktop.timedate1.xml: systemd-timedated
 	$(AM_V_GEN)$(LIBTOOL) --mode=execute $(OBJCOPY) -O binary -j introspect.timedate1 $< [email protected] && \
 		$(STRINGS) [email protected] | $(AWK) -f $(srcdir)/introspect.awk | \
@@ -2684,9 +2775,16 @@ timedated-install-data-hook:
 INSTALL_DATA_HOOKS += \
 	timedated-install-data-hook
 
+endif
+endif # ENABLE_SYSTEMD
+
+polkitpolicy_in_files += \
+	src/timedate/org.freedesktop.timedate1.policy.in
+
 EXTRA_DIST += \
 	units/systemd-timedated.service.in
-endif
+
+if ENABLE_SYSTEMD
 
 # ------------------------------------------------------------------------------
 if ENABLE_LOGIND
@@ -2882,9 +2980,6 @@ lib_LTLIBRARIES += \
 pkgconfiglib_DATA += \
 	src/login/libsystemd-login.pc
 
-polkitpolicy_in_files += \
-	src/login/org.freedesktop.login1.policy.in
-
 logind-install-data-hook:
 	$(MKDIR_P) -m 0755 \
 		$(DESTDIR)$(systemunitdir)/multi-user.target.wants \
@@ -2972,6 +3067,17 @@ man/sd_seat_can_multi_session.3: man/sd_seat_get_active.3
 man/sd_get_sessions.3: man/sd_get_seats.3
 man/sd_get_uids.3: man/sd_get_seats.3
 
+CLEANFILES += \
+	src/login/logind-gperf.c \
+	src/login/71-seat.rules \
+	src/login/73-seat-late.rules
+
+endif
+endif # ENABLE_SYSTEMD
+
+polkitpolicy_in_files += \
+	src/login/org.freedesktop.login1.policy.in
+
 EXTRA_DIST += \
 	src/login/logind-gperf.gperf \
 	src/login/libsystemd-login.pc.in \
@@ -2981,11 +3087,6 @@ EXTRA_DIST += \
 	units/systemd-logind.service.in \
 	units/systemd-user-sessions.service.in
 
-CLEANFILES += \
-	src/login/logind-gperf.c \
-	src/login/71-seat.rules \
-	src/login/73-seat-late.rules
-endif
 # ------------------------------------------------------------------------------
 
 SED_PROCESS = \
@@ -3057,9 +3158,13 @@ units/%: units/%.m4 Makefile
 units/user/%: units/%.m4 Makefile
 	$(M4_PROCESS_USER)
 
+if ENABLE_SYSTEMD
 nodist_polkitpolicy_DATA = \
 	$(polkitpolicy_in_files:.policy.in=.policy) \
 	$(polkitpolicy_in_in_files:.policy.in.in=.policy)
+else
+nodist_polkitpolicy_DATA =
+endif
 
 EXTRA_DIST += \
 	$(polkitpolicy_in_files) \
@@ -3115,6 +3220,8 @@ DBUS_PREPROCESS = $(CPP) -P $(DBUS_CFLAGS) -imacros dbus/dbus-protocol.h
 CLEANFILES += \
 	$(dbusinterface_DATA)
 
+if ENABLE_SYSTEMD
+
 systemd-install-data-hook:
 	$(MKDIR_P) -m 0755 \
 		$(DESTDIR)$(tmpfilesdir) \
@@ -3323,11 +3430,17 @@ if TARGET_MAGEIA
 		$(LN_S) $(systemunitdir)/display-manager.service display-manager.service )
 endif
 
+endif # ENABLE_SYSTEMD
+
 install-exec-hook: $(INSTALL_EXEC_HOOKS)
 
 uninstall-hook: $(UNINSTALL_EXEC_HOOKS)
 
-install-data-hook: systemd-install-data-hook $(INSTALL_DATA_HOOKS)
+if ENABLE_SYSTEMD
+SYSTEMD_INSTALL_DATA_HOOK = systemd-install-data-hook
+endif
+
+install-data-hook: $(SYSTEMD_INSTALL_DATA_HOOK) $(INSTALL_DATA_HOOKS)
 
 distclean-local: $(DISTCLEAN_LOCAL_HOOKS)
 
diff --git a/configure.ac b/configure.ac
index a4f9fea..bf825bd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -44,8 +44,23 @@ AS_IF([test "x$host_cpu" = "xmips" || test "x$host_cpu" = "xmipsel" ||
 LT_PREREQ(2.2)
 LT_INIT
 
+dnl Figure out if we want a udev-only build early.  Inverted logic to match
+dnl autoconf expectations (passing --enable-foo should only ever turn something
+dnl on, never turn something off).
+AC_ARG_ENABLE([systemd],
+              [AS_HELP_STRING([--disable-systemd],
+                              [build udevd only, not systemd @<:@default: systemd enabled@:>@])],
+              [enable_systemd=$enableval], [enable_systemd=yes])
+
+dnl Anything other than --disable-systemd means "yes, build systemd as well"
+AS_IF([test "x$enable_systemd" != "xno"], [enable_systemd=yes])
+
+AM_CONDITIONAL([ENABLE_SYSTEMD], [test "x$enable_systemd" = "xyes"])
+
 # i18n stuff for the PolicyKit policy files
+AS_IF([test "x$enable_systemd" = "xyes"], [
 IT_PROG_INTLTOOL([0.40.0])
+])
 
 GETTEXT_PACKAGE=systemd
 AC_SUBST(GETTEXT_PACKAGE)
@@ -61,7 +76,9 @@ AC_PROG_CC_C99
 AM_PROG_CC_C_O
 AC_PROG_GCC_TRADITIONAL
 
+AS_IF([test "x$enable_systemd" = "xyes"], [
 AC_PATH_PROG([M4], [m4])
+])
 
 # gtkdocize greps for '^GTK_DOC_CHECK', so it needs to be on its own line
 m4_ifdef([GTK_DOC_CHECK], [
@@ -75,7 +92,7 @@ GOBJECT_INTROSPECTION_CHECK([1.31.1])
 AC_CHECK_TOOL(OBJCOPY, objcopy)
 AC_CHECK_TOOL(STRINGS, strings)
 AC_CHECK_TOOL(GPERF, gperf)
-if test -z "$GPERF" ; then
+if test -z "$GPERF" && test "x$enable_systemd" = "xyes" ; then
         AC_MSG_ERROR([*** gperf not found])
 fi
 
@@ -132,6 +149,7 @@ AC_SUBST([GCLDFLAGS], $with_ldflags)
 AC_SEARCH_LIBS([clock_gettime], [rt], [], [AC_MSG_ERROR([*** POSIX RT library not found])])
 AC_SEARCH_LIBS([dlsym], [dl], [], [AC_MSG_ERROR([*** Dynamic linking loader library not found])])
 
+AS_IF([test "x$enable_systemd" = "xyes"], [
 save_LIBS="$LIBS"
 LIBS=
 AC_SEARCH_LIBS([cap_init], [cap], [], [AC_MSG_ERROR([*** POSIX caps library not found])])
@@ -139,11 +157,14 @@ AC_CHECK_HEADERS([sys/capability.h], [], [AC_MSG_ERROR([*** POSIX caps headers n
 CAP_LIBS="$LIBS"
 LIBS="$save_LIBS"
 AC_SUBST(CAP_LIBS)
+])
 
 # This makes sure pkg.m4 is available.
 m4_pattern_forbid([^_?PKG_[A-Z_]+$],[*** pkg.m4 missing, please install pkg-config])
 
+AS_IF([test "x$enable_systemd" = "xyes"], [
 PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.3.2])
+])
 PKG_CHECK_MODULES(KMOD, [libkmod >= 5])
 PKG_CHECK_MODULES(BLKID,[blkid >= 2.20])
 
@@ -655,22 +676,22 @@ AM_CONDITIONAL(HAVE_SYSV_COMPAT, test "$SYSTEM_SYSV_COMPAT" = "yes")
 AC_ARG_WITH([dbuspolicydir],
         AS_HELP_STRING([--with-dbuspolicydir=DIR], [D-Bus policy directory]),
         [],
-        [with_dbuspolicydir=`pkg-config --variable=sysconfdir dbus-1`/dbus-1/system.d])
+        [AS_IF([test "x$enable_systemd" = "xyes"], [with_dbuspolicydir=`pkg-config --variable=sysconfdir dbus-1`/dbus-1/system.d])])
 
 AC_ARG_WITH([dbussessionservicedir],
         AS_HELP_STRING([--with-dbussessionservicedir=DIR], [D-Bus session service directory]),
         [],
-        [with_dbussessionservicedir=`pkg-config --variable=session_bus_services_dir dbus-1`])
+        [AS_IF([test "x$enable_systemd" = "xyes"], [with_dbussessionservicedir=`pkg-config --variable=session_bus_services_dir dbus-1`])])
 
 AC_ARG_WITH([dbussystemservicedir],
         AS_HELP_STRING([--with-dbussystemservicedir=DIR], [D-Bus system service directory]),
         [],
-        [with_dbussystemservicedir=`pkg-config --variable=session_bus_services_dir dbus-1`/../system-services])
+        [AS_IF([test "x$enable_systemd" = "xyes"], [with_dbussystemservicedir=`pkg-config --variable=session_bus_services_dir dbus-1`/../system-services])])
 
 AC_ARG_WITH([dbusinterfacedir],
         AS_HELP_STRING([--with-dbusinterfacedir=DIR], [D-Bus interface directory]),
         [],
-        [with_dbusinterfacedir=`pkg-config --variable=session_bus_services_dir dbus-1`/../interfaces])
+        [AS_IF([test "x$enable_systemd" = "xyes"], [with_dbusinterfacedir=`pkg-config --variable=session_bus_services_dir dbus-1`/../interfaces])])
 
 AC_ARG_WITH([rootprefix],
         AS_HELP_STRING([--with-rootprefix=DIR], [rootfs directory prefix for config files and kernel modules]),
@@ -684,7 +705,7 @@ AC_ARG_WITH([rootlibdir],
 AC_ARG_WITH([pamlibdir],
         AS_HELP_STRING([--with-pamlibdir=DIR], [Directory for PAM modules]),
         [],
-        [with_pamlibdir=${with_rootlibdir}/security])
+        [AS_IF([test "x$enable_systemd" = "xyes"], [with_pamlibdir=${with_rootlibdir}/security])])
 
 AC_ARG_ENABLE([split-usr],
         AS_HELP_STRING([--enable-split-usr], [Assume that /bin, /sbin aren\'t symlinks into /usr]),
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.