#
# Copyright 2010-2012 Lennart Poettering
# Copyright 2010-2012 Kay Sievers
+# Copyright 2013 Zbigniew Jędrzejewski-Szmek
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
BASIC_TARGET_WANTS =
SOCKETS_TARGET_WANTS =
+SYSTEM_UNIT_ALIASES =
+USER_UNIT_ALIASES =
+
+GENERAL_ALIASES =
+
install-target-wants-hook:
what="$(RUNLEVEL1_TARGET_WANTS)" && wants=runlevel1.target && $(add-wants)
what="$(RUNLEVEL2_TARGET_WANTS)" && wants=runlevel2.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 && \
+ [ -z "$$what" ] || ( \
+ 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-aliases-hook:
+ set -- $(SYSTEM_UNIT_ALIASES) && \
+ dir=$(systemunitdir) && $(install-aliases)
+ set -- $(USER_UNIT_ALIASES) && \
+ dir=$(userunitdir) && $(install-aliases)
+ set -- $(GENERAL_ALIASES) && \
+ dir= && $(install-aliases)
+
+define install-aliases
+ $(MKDIR_P) /$(DESTDIR)$$dir && \
+ while [ -n "$$1" ]; do \
+ rm -f $(DESTDIR)$$dir/$$2 && \
+ ln -s $$1 $(DESTDIR)$$dir/$$2 && \
+ shift 2 || exit $$?; \
+ done
+endef
+
INSTALL_EXEC_HOOKS += \
install-target-wants-hook \
- install-directories-hook
+ install-directories-hook \
+ install-aliases-hook
+
+# ------------------------------------------------------------------------------
+
+AM_V_M4 = $(AM_V_M4_$(V))
+AM_V_M4_ = $(AM_V_M4_$(AM_DEFAULT_VERBOSITY))
+AM_V_M4_0 = @echo " M4 " $@;
+
+AM_V_XSLT = $(AM_V_XSLT_$(V))
+AM_V_XSLT_ = $(AM_V_XSLT_$(AM_DEFAULT_VERBOSITY))
+AM_V_XSLT_0 = @echo " XSLT " $@;
+
+AM_V_GPERF = $(AM_V_GPERF_$(V))
+AM_V_GPERF_ = $(AM_V_GPERF_$(AM_DEFAULT_VERBOSITY))
+AM_V_GPERF_0 = @echo " GPERF " $@;
# ------------------------------------------------------------------------------
rootbin_PROGRAMS = \
src/core/syscall-from-name.h: src/core/syscall-from-name.gperf Makefile
$(AM_V_at)$(MKDIR_P) $(dir $@)
- $(AM_V_GEN)$(GPERF) -L ANSI-C -t --ignore-case -N lookup_syscall -H hash_syscall_name -p -C < $< > $@
+ $(AM_V_GPERF)$(GPERF) -L ANSI-C -t --ignore-case -N lookup_syscall -H hash_syscall_name -p -C < $< > $@
src/core/syscall-to-name.h: src/core/syscall-list.txt Makefile
$(AM_V_at)$(MKDIR_P) $(dir $@)
$(AM_V_GEN)$(AWK) 'BEGIN{ print "struct key { const char* name; unsigned short id; };"; print "%null-strings"; print "%%";} { print $$1 ", " $$1 }' < $< > $@
src/udev/keymap/keys-from-name.h: src/udev/keymap/keys-from-name.gperf Makefile
- $(AM_V_GEN)$(GPERF) -L ANSI-C -t --ignore-case -N lookup_key -H hash_key_name -p -C < $< > $@
+ $(AM_V_GPERF)$(GPERF) -L ANSI-C -t --ignore-case -N lookup_key -H hash_key_name -p -C < $< > $@
src/udev/keymap/keys-to-name.h: src/udev/keymap/keys.txt Makefile
$(AM_V_GEN)$(AWK) 'BEGIN{ print "const char* const key_names[KEY_CNT] = { "} { print "[" $$1 "] = \"" $$1 "\"," } END{print "};"}' < $< > $@
$(STRINGS) $@.tmp | $(AWK) -f $(srcdir)/introspect.awk | \
$(DBUS_PREPROCESS) -o $@ - && rm $@.tmp
-hostnamed-install-data-hook:
- ( cd $(DESTDIR)$(systemunitdir) && \
- rm -f dbus-org.freedesktop.hostname1.service && \
- $(LN_S) systemd-hostnamed.service dbus-org.freedesktop.hostname1.service )
-
-INSTALL_DATA_HOOKS += \
- hostnamed-install-data-hook
+SYSTEM_UNIT_ALIASES += \
+ systemd-hostnamed.service dbus-org.freedesktop.hostname1.service
MANPAGES += \
man/systemd-hostnamed.service.8
$(STRINGS) $@.tmp | $(AWK) -f $(srcdir)/introspect.awk | \
$(DBUS_PREPROCESS) -o $@ - && rm $@.tmp
-localed-install-data-hook:
- ( cd $(DESTDIR)$(systemunitdir) && \
- rm -f dbus-org.freedesktop.locale1.service && \
- $(LN_S) systemd-localed.service dbus-org.freedesktop.locale1.service )
-
-INSTALL_DATA_HOOKS += \
- localed-install-data-hook
+SYSTEM_UNIT_ALIASES += \
+ systemd-localed.service dbus-org.freedesktop.locale1.service
MANPAGES += \
man/systemd-localed.service.8
dbusinterface_DATA += \
org.freedesktop.timedate1.xml
-timedated-install-data-hook:
- $(MKDIR_P) -m 0755 \
- $(DESTDIR)$(prefix)/lib/systemd/ntp-units.d \
- $(DESTDIR)$(sysconfdir)/systemd/ntp-units.d
- ( cd $(DESTDIR)$(systemunitdir) && \
- rm -f dbus-org.freedesktop.timedate1.service && \
- $(LN_S) systemd-timedated.service dbus-org.freedesktop.timedate1.service )
+INSTALL_DIRS += \
+ $(prefix)/lib/systemd/ntp-units.d \
+ $(sysconfdir)/systemd/ntp-units.d
-INSTALL_DATA_HOOKS += \
- timedated-install-data-hook
+SYSTEM_UNIT_ALIASES += \
+ systemd-timedated.service dbus-org.freedesktop.timedate1.service
MANPAGES += \
man/systemd-timedated.service.8
systemd-logind.service \
systemd-user-sessions.service
-logind-install-data-hook:
- ( cd $(DESTDIR)$(systemunitdir) && \
- rm -f dbus-org.freedesktop.login1.service && \
- $(LN_S) systemd-logind.service dbus-org.freedesktop.login1.service)
-
-INSTALL_DATA_HOOKS += \
- logind-install-data-hook
+SYSTEM_UNIT_ALIASES += \
+ systemd-logind.service dbus-org.freedesktop.login1.service
systemd_multi_seat_x_SOURCES = \
src/login/multi-seat-x.c
src/%.c: src/%.gperf
$(AM_V_at)$(MKDIR_P) $(dir $@)
- $(AM_V_GEN)$(GPERF) < $< > $@
+ $(AM_V_GPERF)$(GPERF) < $< > $@
src/%: src/%.m4
$(AM_V_at)$(MKDIR_P) $(dir $@)
- $(AM_V_GEN)$(M4) -P $(M4_DEFINES) < $< > $@
+ $(AM_V_M4)$(M4) -P $(M4_DEFINES) < $< > $@
M4_PROCESS_SYSTEM = \
- $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
+ $(AM_V_M4)$(MKDIR_P) $(dir $@) && \
$(M4) -P $(M4_DEFINES) -DFOR_SYSTEM=1 < $< > $@
M4_PROCESS_USER = \
- $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
+ $(AM_V_M4)$(MKDIR_P) $(dir $@) && \
$(M4) -P $(M4_DEFINES) -DFOR_USER=1 < $< > $@
units/%: units/%.m4 Makefile
--stringparam man.copyright.section.enabled 0
XSLTPROC_PROCESS_MAN = \
- $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
+ $(AM_V_XSLT)$(MKDIR_P) $(dir $@) && \
$(XSLTPROC) -o $@ $(XSLTPROC_FLAGS) http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
XSLTPROC_PROCESS_HTML = \
- $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
+ $(AM_V_XSLT)$(MKDIR_P) $(dir $@) && \
$(XSLTPROC) -o $@ $(XSLTPROC_FLAGS) $(srcdir)/man/custom-html.xsl $<
man/%.1: man/%.xml
systemd-initctl.socket \
systemd-shutdownd.socket
+if HAVE_SYSV_COMPAT
RUNLEVEL1_TARGET_WANTS += \
systemd-update-utmp-runlevel.service
RUNLEVEL2_TARGET_WANTS += \
systemd-update-utmp-runlevel.service
RUNLEVEL5_TARGET_WANTS += \
systemd-update-utmp-runlevel.service
+endif
SHUTDOWN_TARGET_WANTS += \
systemd-update-utmp-shutdown.service
LOCAL_FS_TARGET_WANTS += \
BASIC_TARGET_WANTS += \
systemd-tmpfiles-clean.timer
-systemd-install-data-hook:
- $(MKDIR_P) -m 0755 \
- $(DESTDIR)$(tmpfilesdir) \
- $(DESTDIR)$(sysconfdir)/tmpfiles.d \
- $(DESTDIR)$(prefix)/lib/modules-load.d \
- $(DESTDIR)$(sysconfdir)/modules-load.d \
- $(DESTDIR)$(prefix)/lib/sysctl.d \
- $(DESTDIR)$(sysconfdir)/sysctl.d \
- $(DESTDIR)$(systemshutdowndir) \
- $(DESTDIR)$(systemsleepdir) \
- $(DESTDIR)$(systemgeneratordir) \
- $(DESTDIR)$(usergeneratordir)
- $(MKDIR_P) -m 0755 \
- $(DESTDIR)$(userunitdir) \
- $(DESTDIR)$(pkgsysconfdir)/system \
- $(DESTDIR)$(pkgsysconfdir)/system/multi-user.target.wants \
- $(DESTDIR)$(pkgsysconfdir)/system/getty.target.wants \
- $(DESTDIR)$(pkgsysconfdir)/user \
- $(DESTDIR)$(dbussessionservicedir) \
- $(DESTDIR)$(sysconfdir)/xdg/systemd
- ( cd $(DESTDIR)$(sysconfdir)/xdg/systemd/ && \
- rm -f user && \
- $(LN_S) $(pkgsysconfdir)/user user )
-
- ( cd $(DESTDIR)$(userunitdir) && \
- rm -f shutdown.target sockets.target bluetooth.target printer.target sound.target && \
- $(LN_S) $(systemunitdir)/shutdown.target shutdown.target && \
- $(LN_S) $(systemunitdir)/sockets.target sockets.target && \
- $(LN_S) $(systemunitdir)/bluetooth.target bluetooth.target && \
- $(LN_S) $(systemunitdir)/printer.target printer.target && \
- $(LN_S) $(systemunitdir)/sound.target sound.target )
- ( cd $(DESTDIR)$(systemunitdir) && \
- rm -f runlevel0.target runlevel1.target runlevel2.target runlevel3.target runlevel4.target runlevel5.target runlevel6.target && \
- $(LN_S) poweroff.target runlevel0.target && \
- $(LN_S) rescue.target runlevel1.target && \
- $(LN_S) multi-user.target runlevel2.target && \
- $(LN_S) multi-user.target runlevel3.target && \
- $(LN_S) multi-user.target runlevel4.target && \
- $(LN_S) graphical.target runlevel5.target && \
- $(LN_S) reboot.target runlevel6.target )
- ( cd $(DESTDIR)$(systemunitdir) && \
- rm -f default.target ctrl-alt-del.target autovt@.service && \
- $(LN_S) graphical.target default.target && \
- $(LN_S) reboot.target ctrl-alt-del.target && \
- $(LN_S) getty@.service autovt@.service )
- ( 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)$(dbussessionservicedir) && \
- rm -f org.freedesktop.systemd1.service && \
- $(LN_S) ../system-services/org.freedesktop.systemd1.service org.freedesktop.systemd1.service )
+if HAVE_SYSV_COMPAT
+SYSTEM_UNIT_ALIASES += \
+ poweroff.target runlevel0.target \
+ rescue.target runlevel1.target \
+ multi-user.target runlevel2.target \
+ multi-user.target runlevel3.target \
+ multi-user.target runlevel4.target \
+ graphical.target runlevel5.target \
+ reboot.target runlevel6.target
+endif
+SYSTEM_UNIT_ALIASES += \
+ graphical.target default.target \
+ reboot.target ctrl-alt-del.target \
+ getty@.service autovt@.service
+
+USER_UNIT_ALIASES += \
+ $(systemunitdir)/shutdown.target shutdown.target \
+ $(systemunitdir)/sockets.target sockets.target \
+ $(systemunitdir)/bluetooth.target bluetooth.target \
+ $(systemunitdir)/printer.target printer.target \
+ $(systemunitdir)/sound.target sound.target
+
+GENERAL_ALIASES += \
+ $(systemunitdir)/remote-fs.target $(pkgsysconfdir)/system/multi-user.target.wants/remote-fs.target \
+ $(systemunitdir)/getty@.service $(pkgsysconfdir)/system/getty.target.wants/getty@tty1.service \
+ $(pkgsysconfdir)/user $(sysconfdir)/xdg/systemd/user \
+ ../system-services/org.freedesktop.systemd1.service $(dbussessionservicedir)/org.freedesktop.systemd1.service
+
+if HAVE_SYSV_COMPAT
+INSTALL_DIRS += \
+ $(systemunitdir)/runlevel1.target.wants \
+ $(systemunitdir)/runlevel2.target.wants \
+ $(systemunitdir)/runlevel3.target.wants \
+ $(systemunitdir)/runlevel4.target.wants \
+ $(systemunitdir)/runlevel5.target.wants
+endif
+INSTALL_DIRS += \
+ $(tmpfilesdir) \
+ $(sysconfdir)/tmpfiles.d \
+ $(prefix)/lib/modules-load.d \
+ $(sysconfdir)/modules-load.d \
+ $(prefix)/lib/sysctl.d \
+ $(sysconfdir)/sysctl.d \
+ $(systemshutdowndir) \
+ $(systemsleepdir) \
+ $(systemgeneratordir) \
+ $(usergeneratordir) \
+ \
+ $(userunitdir) \
+ $(pkgsysconfdir)/system \
+ $(pkgsysconfdir)/system/multi-user.target.wants \
+ $(pkgsysconfdir)/system/getty.target.wants \
+ $(pkgsysconfdir)/user \
+ $(dbussessionservicedir) \
+ $(sysconfdir)/xdg/systemd
if HAVE_KMOD
SYSINIT_TARGET_WANTS += \
uninstall-hook: $(UNINSTALL_DATA_HOOKS) $(UNINSTALL_EXEC_HOOKS)
-install-data-hook: systemd-install-data-hook $(INSTALL_DATA_HOOKS)
+install-data-hook: $(INSTALL_DATA_HOOKS)
distclean-local: $(DISTCLEAN_LOCAL_HOOKS)