From: Zbigniew Jędrzejewski-Szmek Date: Wed, 23 Jan 2013 03:24:54 +0000 (-0500) Subject: build-sys: add a variable to collect .wants links X-Git-Tag: v198~427 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=6ff392416e6a6403e0183ca9c3e158f7aa6bc7ea;hp=3939e155d57e0a7319ed3af8bff48e68aea76543 build-sys: add a variable to collect .wants links The idea is to make Makefile.am more declarative and avoid repetitions. Redeclaring unit links as variables also makes it easier to conditionally install only some of them. --- diff --git a/Makefile.am b/Makefile.am index 7d5bd5a80..a7a7940eb 100644 --- a/Makefile.am +++ b/Makefile.am @@ -179,6 +179,48 @@ define move-to-rootlibdir fi endef +INSTALL_DIRS = + +RUNLEVEL1_TARGET_WANTS = +RUNLEVEL2_TARGET_WANTS = +RUNLEVEL3_TARGET_WANTS = +RUNLEVEL4_TARGET_WANTS = +RUNLEVEL5_TARGET_WANTS = +SHUTDOWN_TARGET_WANTS = +LOCAL_FS_TARGET_WANTS = +MULTI_USER_TARGET_WANTS = +SYSINIT_TARGET_WANTS = +BASIC_TARGET_WANTS = +SOCKETS_TARGET_WANTS = + +install-target-wants-hook: + what="$(RUNLEVEL1_TARGET_WANTS)" && wants=runlevel1.target && $(add-wants) + what="$(RUNLEVEL2_TARGET_WANTS)" && wants=runlevel2.target && $(add-wants) + what="$(RUNLEVEL3_TARGET_WANTS)" && wants=runlevel3.target && $(add-wants) + what="$(RUNLEVEL4_TARGET_WANTS)" && wants=runlevel4.target && $(add-wants) + what="$(RUNLEVEL5_TARGET_WANTS)" && wants=runlevel5.target && $(add-wants) + what="$(SHUTDOWN_TARGET_WANTS)" && wants=shutdown.target && $(add-wants) + what="$(LOCAL_FS_TARGET_WANTS)" && wants=local-fs.target && $(add-wants) + what="$(MULTI_USER_TARGET_WANTS)" && wants=multi-user.target && $(add-wants) + what="$(SYSINIT_TARGET_WANTS)" && wants=sysinit.target && $(add-wants) + what="$(BASIC_TARGET_WANTS)" && wants=basic.target && $(add-wants) + what="$(SOCKETS_TARGET_WANTS)" && wants=sockets.target && $(add-wants) + +define add-wants + dir=$(DESTDIR)$(systemunitdir)/$$wants.wants && \ + $(MKDIR_P) -m 0755 $$dir && \ + ( cd $$dir && \ + rm -f $$what && \ + for i in $$what; do ln -s ../$$i . || exit $$? ; done ) +endef + +install-directories-hook: + $(MKDIR_P) $(addprefix $(DESTDIR),$(INSTALL_DIRS)) + +INSTALL_EXEC_HOOKS += \ + install-target-wants-hook \ + install-directories-hook + # ------------------------------------------------------------------------------ rootbin_PROGRAMS = \ systemctl \ @@ -1893,15 +1935,12 @@ CLEANFILES += \ units/systemd-udev-trigger.service \ units/systemd-udev-settle.service -systemd-install-hook: - $(MKDIR_P) $(DESTDIR)$(systemunitdir)/sockets.target.wants - ln -sf ../systemd-udevd-control.socket $(DESTDIR)$(systemunitdir)/sockets.target.wants/systemd-udevd-control.socket - ln -sf ../systemd-udevd-kernel.socket $(DESTDIR)$(systemunitdir)/sockets.target.wants/systemd-udevd-kernel.socket - $(MKDIR_P) $(DESTDIR)$(systemunitdir)/sysinit.target.wants - ln -sf ../systemd-udevd.service $(DESTDIR)$(systemunitdir)/sysinit.target.wants/systemd-udevd.service - ln -sf ../systemd-udev-trigger.service $(DESTDIR)$(systemunitdir)/sysinit.target.wants/systemd-udev-trigger.service - -INSTALL_DATA_HOOKS += systemd-install-hook +SOCKETS_TARGET_WANTS += \ + systemd-udevd-control.socket \ + systemd-udevd-kernel.socket +SYSINIT_TARGET_WANTS += \ + systemd-udevd.service \ + systemd-udev-trigger.service bin_PROGRAMS += \ udevadm @@ -2792,20 +2831,11 @@ pkgconfiglib_DATA += \ dist_catalog_DATA = \ catalog/systemd.catalog -journal-install-data-hook: - $(MKDIR_P) -m 0755 \ - $(DESTDIR)$(systemunitdir)/sockets.target.wants \ - $(DESTDIR)$(systemunitdir)/sysinit.target.wants - ( cd $(DESTDIR)$(systemunitdir)/sockets.target.wants && \ - rm -f systemd-journald.socket && \ - $(LN_S) ../systemd-journald.socket ) - ( cd $(DESTDIR)$(systemunitdir)/sysinit.target.wants && \ - rm -f systemd-journald.service systemd-journal-flush.service && \ - $(LN_S) ../systemd-journald.service && \ - $(LN_S) ../systemd-journal-flush.service ) - -INSTALL_DATA_HOOKS += \ - journal-install-data-hook +SOCKETS_TARGET_WANTS += \ + systemd-journald.socket +SYSINIT_TARGET_WANTS += \ + systemd-journald.service \ + systemd-journal-flush.service EXTRA_DIST += \ src/journal/libsystemd-journal.pc.in \ @@ -2902,19 +2932,13 @@ dist_systemunit_DATA += \ nodist_systemunit_DATA += \ units/systemd-binfmt.service -binfmt-install-data-hook: - $(MKDIR_P) -m 0755 \ - $(DESTDIR)$(prefix)/lib/binfmt.d \ - $(DESTDIR)$(sysconfdir)/binfmt.d \ - $(DESTDIR)$(systemunitdir)/sysinit.target.wants - ( cd $(DESTDIR)$(systemunitdir)/sysinit.target.wants && \ - rm -f systemd-binfmt.service \ - proc-sys-fs-binfmt_misc.automount && \ - $(LN_S) ../systemd-binfmt.service systemd-binfmt.service && \ - $(LN_S) ../proc-sys-fs-binfmt_misc.automount proc-sys-fs-binfmt_misc.automount ) +INSTALL_DIRS += \ + $(prefix)/lib/binfmt.d \ + $(sysconfdir)/binfmt.d -INSTALL_DATA_HOOKS += \ - binfmt-install-data-hook +SYSINIT_TARGET_WANTS += \ + systemd-binfmt.service \ + proc-sys-fs-binfmt_misc.automount MANPAGES += \ man/binfmt.d.5 \ @@ -2943,15 +2967,8 @@ rootlibexec_PROGRAMS += \ nodist_systemunit_DATA += \ units/systemd-vconsole-setup.service -vconsole-install-data-hook: - $(MKDIR_P) -m 0755 \ - $(DESTDIR)$(systemunitdir)/sysinit.target.wants - ( cd $(DESTDIR)$(systemunitdir)/sysinit.target.wants && \ - rm -f systemd-vconsole-setup.service && \ - $(LN_S) ../systemd-vconsole-setup.service systemd-vconsole-setup.service ) - -INSTALL_DATA_HOOKS += \ - vconsole-install-data-hook +SYSINIT_TARGET_WANTS += \ + systemd-vconsole-setup.service MANPAGES += \ man/vconsole.conf.5 \ @@ -3085,19 +3102,10 @@ systemd_random_seed_LDADD = \ libsystemd-label.la \ libsystemd-shared.la -randomseed-install-data-hook: - $(MKDIR_P) -m 0755 \ - $(DESTDIR)$(systemunitdir)/shutdown.target.wants \ - $(DESTDIR)$(systemunitdir)/sysinit.target.wants - ( cd $(DESTDIR)$(systemunitdir)/shutdown.target.wants && \ - rm -f systemd-random-seed-save.service && \ - $(LN_S) ../systemd-random-seed-save.service systemd-random-seed-save.service ) - ( cd $(DESTDIR)$(systemunitdir)/sysinit.target.wants && \ - rm -f systemd-random-seed-load.service && \ - $(LN_S) ../systemd-random-seed-load.service systemd-random-seed-load.service ) - -INSTALL_DATA_HOOKS += \ - randomseed-install-data-hook +SHUTDOWN_TARGET_WANTS += \ + systemd-random-seed-save.service +SYSINIT_TARGET_WANTS += \ + systemd-random-seed-load.service MANPAGES += \ man/systemd-random-seed-load.service.8 @@ -3146,15 +3154,8 @@ systemd_cryptsetup_generator_LDADD = \ libsystemd-label.la \ libsystemd-shared.la -cryptsetup-install-data-hook: - $(MKDIR_P) -m 0755 \ - $(DESTDIR)$(systemunitdir)/sysinit.target.wants - ( cd $(DESTDIR)$(systemunitdir)/sysinit.target.wants && \ - rm -f cryptsetup.target && \ - $(LN_S) ../cryptsetup.target cryptsetup.target ) - -INSTALL_DATA_HOOKS += \ - cryptsetup-install-data-hook +SYSINIT_TARGET_WANTS += \ + cryptsetup.target MANPAGES += \ man/systemd-cryptsetup@.service.8 \ @@ -3634,17 +3635,17 @@ pkgconfiglib_DATA += \ polkitpolicy_files += \ src/login/org.freedesktop.login1.policy +INSTALL_DIRS += \ + $(systemdstatedir) + +MULTI_USER_TARGET_WANTS += \ + systemd-logind.service \ + systemd-user-sessions.service + logind-install-data-hook: - $(MKDIR_P) -m 0755 \ - $(DESTDIR)$(systemunitdir)/multi-user.target.wants \ - $(DESTDIR)$(systemdstatedir) ( cd $(DESTDIR)$(systemunitdir) && \ rm -f dbus-org.freedesktop.login1.service && \ $(LN_S) systemd-logind.service dbus-org.freedesktop.login1.service) - ( cd $(DESTDIR)$(systemunitdir)/multi-user.target.wants && \ - rm -f systemd-logind.service systemd-user-sessions.service && \ - $(LN_S) ../systemd-logind.service systemd-logind.service && \ - $(LN_S) ../systemd-user-sessions.service systemd-user-sessions.service ) INSTALL_DATA_HOOKS += \ logind-install-data-hook @@ -3959,6 +3960,41 @@ EXTRA_DIST += \ EXTRA_DIST += \ shell-completion/systemd-zsh-completion.zsh +SOCKETS_TARGET_WANTS += \ + systemd-initctl.socket \ + systemd-shutdownd.socket + +RUNLEVEL1_TARGET_WANTS += \ + systemd-update-utmp-runlevel.service +RUNLEVEL2_TARGET_WANTS += \ + systemd-update-utmp-runlevel.service +RUNLEVEL3_TARGET_WANTS += \ + systemd-update-utmp-runlevel.service +RUNLEVEL4_TARGET_WANTS += \ + systemd-update-utmp-runlevel.service +RUNLEVEL5_TARGET_WANTS += \ + systemd-update-utmp-runlevel.service +SHUTDOWN_TARGET_WANTS += \ + systemd-update-utmp-shutdown.service +LOCAL_FS_TARGET_WANTS += \ + systemd-remount-fs.service \ + systemd-fsck-root.service \ + tmp.mount +MULTI_USER_TARGET_WANTS += \ + getty.target \ + systemd-ask-password-wall.path +SYSINIT_TARGET_WANTS += \ + dev-hugepages.mount \ + dev-mqueue.mount \ + sys-kernel-config.mount \ + sys-kernel-debug.mount \ + sys-fs-fuse-connections.mount \ + systemd-tmpfiles-setup.service \ + systemd-sysctl.service \ + systemd-ask-password-console.path +BASIC_TARGET_WANTS += \ + systemd-tmpfiles-clean.timer + systemd-install-data-hook: $(MKDIR_P) -m 0755 \ $(DESTDIR)$(tmpfilesdir) \ @@ -3972,19 +4008,7 @@ systemd-install-data-hook: $(DESTDIR)$(systemgeneratordir) \ $(DESTDIR)$(usergeneratordir) $(MKDIR_P) -m 0755 \ - $(DESTDIR)$(systemunitdir) \ $(DESTDIR)$(userunitdir) \ - $(DESTDIR)$(systemunitdir)/sysinit.target.wants \ - $(DESTDIR)$(systemunitdir)/sockets.target.wants \ - $(DESTDIR)$(systemunitdir)/basic.target.wants \ - $(DESTDIR)$(systemunitdir)/shutdown.target.wants \ - $(DESTDIR)$(systemunitdir)/local-fs.target.wants \ - $(DESTDIR)$(systemunitdir)/runlevel1.target.wants \ - $(DESTDIR)$(systemunitdir)/runlevel2.target.wants \ - $(DESTDIR)$(systemunitdir)/runlevel3.target.wants \ - $(DESTDIR)$(systemunitdir)/runlevel4.target.wants \ - $(DESTDIR)$(systemunitdir)/runlevel5.target.wants \ - $(DESTDIR)$(systemunitdir)/multi-user.target.wants \ $(DESTDIR)$(pkgsysconfdir)/system \ $(DESTDIR)$(pkgsysconfdir)/system/multi-user.target.wants \ $(DESTDIR)$(pkgsysconfdir)/system/getty.target.wants \ @@ -3994,35 +4018,7 @@ systemd-install-data-hook: ( cd $(DESTDIR)$(sysconfdir)/xdg/systemd/ && \ rm -f user && \ $(LN_S) $(pkgsysconfdir)/user user ) - ( cd $(DESTDIR)$(systemunitdir)/sockets.target.wants && \ - rm -f systemd-initctl.socket systemd-shutdownd.socket && \ - $(LN_S) ../systemd-initctl.socket systemd-initctl.socket && \ - $(LN_S) ../systemd-shutdownd.socket systemd-shutdownd.socket ) - ( cd $(DESTDIR)$(systemunitdir)/runlevel1.target.wants && \ - rm -f systemd-update-utmp-runlevel.service && \ - $(LN_S) ../systemd-update-utmp-runlevel.service systemd-update-utmp-runlevel.service ) - ( cd $(DESTDIR)$(systemunitdir)/runlevel2.target.wants && \ - rm -f systemd-update-utmp-runlevel.service && \ - $(LN_S) ../systemd-update-utmp-runlevel.service systemd-update-utmp-runlevel.service ) - ( cd $(DESTDIR)$(systemunitdir)/runlevel3.target.wants && \ - rm -f systemd-update-utmp-runlevel.service && \ - $(LN_S) ../systemd-update-utmp-runlevel.service systemd-update-utmp-runlevel.service ) - ( cd $(DESTDIR)$(systemunitdir)/runlevel4.target.wants && \ - rm -f systemd-update-utmp-runlevel.service && \ - $(LN_S) ../systemd-update-utmp-runlevel.service systemd-update-utmp-runlevel.service ) - ( cd $(DESTDIR)$(systemunitdir)/runlevel5.target.wants && \ - rm -f systemd-update-utmp-runlevel.service && \ - $(LN_S) ../systemd-update-utmp-runlevel.service systemd-update-utmp-runlevel.service ) - ( cd $(DESTDIR)$(systemunitdir)/shutdown.target.wants && \ - rm -f systemd-update-utmp-shutdown.service && \ - $(LN_S) ../systemd-update-utmp-shutdown.service systemd-update-utmp-shutdown.service ) - ( cd $(DESTDIR)$(systemunitdir)/local-fs.target.wants && \ - rm -f systemd-remount-fs.service \ - systemd-fsck-root.service \ - tmp.mount && \ - $(LN_S) ../systemd-remount-fs.service systemd-remount-fs.service && \ - $(LN_S) ../systemd-fsck-root.service systemd-fsck-root.service && \ - $(LN_S) ../tmp.mount tmp.mount ) + ( cd $(DESTDIR)$(userunitdir) && \ rm -f shutdown.target sockets.target bluetooth.target printer.target sound.target && \ $(LN_S) $(systemunitdir)/shutdown.target shutdown.target && \ @@ -4044,44 +4040,19 @@ systemd-install-data-hook: $(LN_S) graphical.target default.target && \ $(LN_S) reboot.target ctrl-alt-del.target && \ $(LN_S) getty@.service autovt@.service ) - ( cd $(DESTDIR)$(systemunitdir)/multi-user.target.wants && \ - rm -f getty.target systemd-ask-password-wall.path && \ - $(LN_S) ../getty.target getty.target && \ - $(LN_S) ../systemd-ask-password-wall.path systemd-ask-password-wall.path) ( cd $(DESTDIR)$(pkgsysconfdir)/system/getty.target.wants && \ rm -f getty@tty1.service && \ $(LN_S) $(systemunitdir)/getty@.service getty@tty1.service ) ( cd $(DESTDIR)$(pkgsysconfdir)/system/multi-user.target.wants && \ rm -f remote-fs.target && \ $(LN_S) $(systemunitdir)/remote-fs.target remote-fs.target ) - ( cd $(DESTDIR)$(systemunitdir)/sysinit.target.wants && \ - rm -f dev-hugepages.mount \ - dev-mqueue.mount \ - sys-kernel-config.mount \ - sys-kernel-debug.mount \ - sys-fs-fuse-connections.mount \ - systemd-tmpfiles-setup.service \ - systemd-sysctl.service \ - systemd-ask-password-console.path && \ - $(LN_S) ../dev-hugepages.mount dev-hugepages.mount && \ - $(LN_S) ../dev-mqueue.mount dev-mqueue.mount && \ - $(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-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 ) - ( cd $(DESTDIR)$(systemunitdir)/basic.target.wants && \ - rm -f systemd-tmpfiles-clean.timer && \ - $(LN_S) ../systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.timer ) ( cd $(DESTDIR)$(dbussessionservicedir) && \ 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 ) +SYSINIT_TARGET_WANTS += \ + systemd-modules-load.service endif install-exec-hook: $(INSTALL_EXEC_HOOKS)