chiark / gitweb /
build-sys: make loadable module support optional
[elogind.git] / Makefile.am
index 3c590094d35e3b3b2ae02886cfdcc8fc2f40ac0c..578496206890037432098e3fdd46c045475873cd 100644 (file)
@@ -62,7 +62,11 @@ polkitpolicydir=$(datadir)/polkit-1/actions
 bashcompletiondir=$(sysconfdir)/bash_completion.d
 rpmmacrosdir=$(sysconfdir)/rpm
 sysvinitdir=$(SYSTEM_SYSVINIT_PATH)
+sysvrcddir=$(SYSTEM_SYSVRCND_PATH)
 varlogdir=$(localstatedir)/log
+systemdstatedir=$(localstatedir)/lib/systemd
+catalogstatedir=$(systemdstatedir)/catalog
+hwdb_bin=/etc/udev/hwdb.bin
 
 # Our own, non-special dirs
 pkgsysconfdir=$(sysconfdir)/systemd
@@ -94,6 +98,7 @@ BUILT_SOURCES =
 INSTALL_EXEC_HOOKS =
 UNINSTALL_EXEC_HOOKS =
 INSTALL_DATA_HOOKS =
+UNINSTALL_DATA_HOOKS =
 DISTCLEAN_LOCAL_HOOKS =
 pkginclude_HEADERS =
 noinst_LTLIBRARIES =
@@ -126,6 +131,8 @@ AM_CPPFLAGS = \
        -DUSER_CONFIG_FILE=\"$(pkgsysconfdir)/user.conf\" \
        -DUSER_CONFIG_UNIT_PATH=\"$(pkgsysconfdir)/user\" \
        -DUSER_DATA_UNIT_PATH=\"$(userunitdir)\" \
+       -DCATALOG_PATH=\"$(catalogstatedir)\" \
+       -DHWDB_BIN=\"$(hwdb_bin)\" \
        -DSYSTEMD_CGROUP_AGENT_PATH=\"$(rootlibexecdir)/systemd-cgroups-agent\" \
        -DSYSTEMD_BINARY_PATH=\"$(rootlibexecdir)/systemd\" \
        -DSYSTEMD_SHUTDOWN_BINARY_PATH=\"$(rootlibexecdir)/systemd-shutdown\" \
@@ -227,7 +234,6 @@ rootlibexec_PROGRAMS = \
        systemd-update-utmp \
        systemd-shutdownd \
        systemd-shutdown \
-       systemd-modules-load \
        systemd-remount-fs \
        systemd-reply-password \
        systemd-fsck \
@@ -236,6 +242,11 @@ rootlibexec_PROGRAMS = \
        systemd-sysctl \
        systemd-sleep
 
+if HAVE_KMOD
+rootlibexec_PROGRAMS += \
+       systemd-modules-load
+endif
+
 systemgenerator_PROGRAMS = \
        systemd-getty-generator \
        systemd-fstab-generator \
@@ -316,7 +327,6 @@ nodist_systemunit_DATA = \
        units/console-getty.service \
        units/systemd-initctl.service \
        units/systemd-shutdownd.service \
-       units/systemd-modules-load.service \
        units/systemd-remount-fs.service \
        units/systemd-update-utmp-runlevel.service \
        units/systemd-update-utmp-shutdown.service \
@@ -342,6 +352,11 @@ nodist_systemunit_DATA = \
        units/systemd-udev-settle.service \
        units/debug-shell.service
 
+if HAVE_KMOD
+nodist_systemunit_DATA += \
+       units/systemd-modules-load.service
+endif
+
 dist_userunit_DATA = \
        units/user/default.target \
        units/user/exit.target
@@ -357,7 +372,6 @@ EXTRA_DIST += \
        units/rescue.service.m4.in \
        units/systemd-initctl.service.in \
        units/systemd-shutdownd.service.in \
-       units/systemd-modules-load.service.in \
        units/systemd-remount-fs.service.in \
        units/systemd-update-utmp-runlevel.service.in \
        units/systemd-update-utmp-shutdown.service.in \
@@ -386,6 +400,11 @@ EXTRA_DIST += \
        introspect.awk \
        man/custom-html.xsl
 
+if HAVE_KMOD
+EXTRA_DIST += \
+       units/systemd-modules-load.service.in
+endif
+
 if TARGET_FEDORA
 dist_systemunit_DATA += \
        units/fedora/rc-local.service \
@@ -474,8 +493,6 @@ MANPAGES = \
        man/locale.conf.5 \
        man/os-release.5 \
        man/machine-info.5 \
-       man/modules-load.d.5 \
-       man/systemd-modules-load.service.8 \
        man/sysctl.d.5 \
        man/systemd-sysctl.service.8 \
        man/systemd-ask-password.1 \
@@ -524,7 +541,6 @@ MANPAGES_ALIAS = \
        man/reboot.8 \
        man/poweroff.8 \
        man/init.1 \
-       man/systemd-modules-load.8 \
        man/systemd-sysctl.8 \
        man/systemd-journald.socket.8 \
        man/systemd-journald.8 \
@@ -596,10 +612,18 @@ MANPAGES_ALIAS = \
        man/sd_journal_restart_unique.3 \
        man/SD_JOURNAL_FOREACH_UNIQUE.3
 
+if HAVE_KMOD
+MANPAGES += \
+       man/modules-load.d.5 \
+       man/systemd-modules-load.service.8
+MANPAGES_ALIAS += \
+       man/systemd-modules-load.8
+man/systemd-modules-load.8: man/systemd-modules-load.service.8
+endif
+
 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.socket.8: man/systemd-journald.service.8
 man/systemd-journald.8: man/systemd-journald.service.8
@@ -1008,8 +1032,6 @@ libsystemd_core_la_SOURCES = \
        src/core/selinux-setup.h \
        src/core/ima-setup.c \
        src/core/ima-setup.h \
-       src/core/kmod-setup.c \
-       src/core/kmod-setup.h \
        src/core/locale-setup.h \
        src/core/locale-setup.c \
        src/core/hostname-setup.c \
@@ -1045,6 +1067,12 @@ libsystemd_core_la_SOURCES = \
        src/core/audit-fd.c \
        src/core/audit-fd.h
 
+if HAVE_KMOD
+libsystemd_core_la_SOURCES += \
+       src/core/kmod-setup.c \
+       src/core/kmod-setup.h
+endif
+
 nodist_libsystemd_core_la_SOURCES = \
        src/core/load-fragment-gperf.c \
        src/core/load-fragment-gperf-nulstr.c \
@@ -1399,6 +1427,7 @@ systemd_shutdown_LDADD = \
        libsystemd-shared.la \
        libudev.la
 
+if HAVE_KMOD
 # ------------------------------------------------------------------------------
 systemd_modules_load_SOURCES = \
        src/modules-load/modules-load.c
@@ -1410,6 +1439,7 @@ systemd_modules_load_CFLAGS = \
 systemd_modules_load_LDADD = \
        libsystemd-shared.la \
        $(KMOD_LIBS)
+endif
 
 # ------------------------------------------------------------------------------
 systemd_tmpfiles_SOURCES = \
@@ -1481,7 +1511,7 @@ systemd_detect_virt_LDADD = \
        libsystemd-shared.la
 
 systemd-detect-virt-install-hook:
-       $(SETCAP) cap_dac_override,cap_sys_ptrace=ep $(DESTDIR)$(bindir)/systemd-detect-virt ||:
+       -$(SETCAP) cap_dac_override,cap_sys_ptrace=ep $(DESTDIR)$(bindir)/systemd-detect-virt
 
 INSTALL_EXEC_HOOKS += \
        systemd-detect-virt-install-hook
@@ -1829,9 +1859,13 @@ dist_udevrules_DATA += \
        rules/75-net-description.rules \
        rules/75-tty-description.rules \
        rules/78-sound-card.rules \
-       rules/80-drivers.rules \
        rules/95-udev-late.rules
 
+if HAVE_KMOD
+dist_udevrules_DATA += \
+       rules/80-drivers.rules
+endif
+
 dist_udevhwdb_DATA = \
        hwdb/20-pci-vendor-product.hwdb \
        hwdb/20-pci-classes.hwdb \
@@ -1893,12 +1927,10 @@ libudev_core_la_SOURCES = \
        src/udev/udev-rules.c \
        src/udev/udev-ctrl.c \
        src/udev/udev-builtin.c \
-       src/udev/udev-builtin-blkid.c \
        src/udev/udev-builtin-btrfs.c \
        src/udev/udev-builtin-firmware.c \
        src/udev/udev-builtin-hwdb.c \
        src/udev/udev-builtin-input_id.c \
-       src/udev/udev-builtin-kmod.c \
        src/udev/udev-builtin-net_id.c \
        src/udev/udev-builtin-path_id.c \
        src/udev/udev-builtin-usb_id.c \
@@ -1920,6 +1952,16 @@ libudev_core_la_CPPFLAGS = \
        $(AM_CPPFLAGS) \
        -DFIRMWARE_PATH="$(FIRMWARE_PATH)"
 
+if HAVE_KMOD
+libudev_core_la_SOURCES += \
+       src/udev/udev-builtin-kmod.c
+endif
+
+if HAVE_BLKID
+libudev_core_la_SOURCES += \
+       src/udev/udev-builtin-blkid.c
+endif
+
 if HAVE_ACL
 libudev_core_la_SOURCES += \
        src/udev/udev-builtin-uaccess.c \
@@ -1951,6 +1993,17 @@ udevadm_LDADD = \
        libudev-core.la \
        libsystemd-shared.la
 
+# Update hwdb on installation. Do not bother if installing
+# in DESTDIR, since this is likely for packaging purposes.
+hwdb-update-hook:
+       -test -n "$(DESTDIR)" || $(bindir)/udevadm hwdb --update
+
+INSTALL_DATA_HOOKS += \
+       hwdb-update-hook
+
+hwdb-remove-hook:
+       -test -n "$(DESTDIR)" || rm -f $(HWDB_BIN)
+
 # ------------------------------------------------------------------------------
 TESTS += \
        test/udev-test.pl \
@@ -2710,6 +2763,20 @@ libsystemd-journal-uninstall-hook:
 UNINSTALL_EXEC_HOOKS += \
        libsystemd-journal-uninstall-hook
 
+# Update catalog on installation. Do not bother if installing
+# in DESTDIR, since this is likely for packaging purposes.
+catalog-update-hook:
+       -test -n "$(DESTDIR)" || $(rootbindir)/journalctl --update-catalog
+
+INSTALL_DATA_HOOKS += \
+       catalog-update-hook
+
+catalog-remove-hook:
+       -test -n "$(DESTDIR)" || rm -f $(catalogstatedir)/database
+
+UNINSTALL_DATA_HOOKS += \
+       catalog-remove-hook
+
 noinst_PROGRAMS += \
        test-journal \
        test-journal-send \
@@ -3576,7 +3643,7 @@ polkitpolicy_files += \
 logind-install-data-hook:
        $(MKDIR_P) -m 0755 \
                $(DESTDIR)$(systemunitdir)/multi-user.target.wants \
-               $(DESTDIR)$(localstatedir)/lib/systemd
+               $(DESTDIR)$(systemdstatedir)
        ( cd $(DESTDIR)$(systemunitdir) && \
                rm -f dbus-org.freedesktop.login1.service && \
                $(LN_S) systemd-logind.service dbus-org.freedesktop.login1.service)
@@ -3730,6 +3797,11 @@ SED_PROCESS = \
                -e 's,@userunitdir\@,$(userunitdir),g' \
                -e 's,@systempresetdir\@,$(systempresetdir),g' \
                -e 's,@userpresetdir\@,$(userpresetdir),g' \
+               -e 's,@udevhwdbdir\@,$(udevhwdbdir),g' \
+               -e 's,@udevrulesdir\@,$(udevrulesdir),g' \
+               -e 's,@catalogdir\@,$(catalogdir),g' \
+               -e 's,@tmpfilesdir\@,$(tmpfilesdir),g' \
+               -e 's,@sysctldir\@,$(sysctldir),g' \
                -e 's,@PACKAGE_VERSION\@,$(PACKAGE_VERSION),g' \
                -e 's,@PACKAGE_NAME\@,$(PACKAGE_NAME),g' \
                -e 's,@PACKAGE_URL\@,$(PACKAGE_URL),g' \
@@ -3985,7 +4057,6 @@ systemd-install-data-hook:
                        sys-kernel-config.mount \
                        sys-kernel-debug.mount \
                        sys-fs-fuse-connections.mount \
-                       systemd-modules-load.service \
                        systemd-tmpfiles-setup.service \
                        systemd-sysctl.service \
                        systemd-ask-password-console.path && \
@@ -3994,7 +4065,6 @@ systemd-install-data-hook:
                $(LN_S) ../sys-kernel-config.mount sys-kernel-config.mount && \
                $(LN_S) ../sys-kernel-debug.mount sys-kernel-debug.mount && \
                $(LN_S) ../sys-fs-fuse-connections.mount sys-fs-fuse-connections.mount && \
-               $(LN_S) ../systemd-modules-load.service systemd-modules-load.service && \
                $(LN_S) ../systemd-tmpfiles-setup.service systemd-tmpfiles-setup.service && \
                $(LN_S) ../systemd-sysctl.service systemd-sysctl.service && \
                $(LN_S) ../systemd-ask-password-console.path systemd-ask-password-console.path )
@@ -4005,6 +4075,13 @@ systemd-install-data-hook:
                rm -f org.freedesktop.systemd1.service && \
                $(LN_S) ../system-services/org.freedesktop.systemd1.service org.freedesktop.systemd1.service )
 
+if HAVE_KMOD
+       ( cd $(DESTDIR)$(systemunitdir)/sysinit.target.wants && \
+               rm -f systemd-modules-load.service && \
+               $(LN_S) ../systemd-modules-load.service systemd-modules-load.service )
+endif
+
+
 if TARGET_FEDORA
        ( cd $(DESTDIR)$(systemunitdir) && \
                rm -f display-manager.service single.service && \
@@ -4036,7 +4113,7 @@ endif
 
 install-exec-hook: $(INSTALL_EXEC_HOOKS)
 
-uninstall-hook: $(UNINSTALL_EXEC_HOOKS)
+uninstall-hook: $(UNINSTALL_DATA_HOOKS) $(UNINSTALL_EXEC_HOOKS)
 
 install-data-hook: systemd-install-data-hook $(INSTALL_DATA_HOOKS)
 
@@ -4047,7 +4124,6 @@ clean-local:
        rm -f $(abs_srcdir)/hwdb/usb.ids $(abs_srcdir)/hwdb/pci.ids $(abs_srcdir)/hwdb/oui.txt
 
 DISTCHECK_CONFIGURE_FLAGS = \
-       --with-sysvinit-path=$$dc_install_base/$(sysvinitdir) \
        --with-dbuspolicydir=$$dc_install_base/$(dbuspolicydir) \
        --with-dbussessionservicedir=$$dc_install_base/$(dbussessionservicedir) \
        --with-dbussystemservicedir=$$dc_install_base/$(dbussystemservicedir) \
@@ -4056,6 +4132,13 @@ DISTCHECK_CONFIGURE_FLAGS = \
        --with-rootprefix=$$dc_install_base \
        --disable-split-usr
 
+
+if HAVE_SYSV_COMPAT
+DISTCHECK_CONFIGURE_FLAGS += \
+       --with-sysvinit-path=$$dc_install_base/$(sysvinitdir) \
+       --with-sysvrcnd-path=$$dc_install_base/$(sysvrcddir)
+endif
+
 if ENABLE_GTK_DOC
 DISTCHECK_CONFIGURE_FLAGS += \
        --enable-gtk-doc