diff options
Diffstat (limited to 'discard.mk')
-rw-r--r-- | discard.mk | 1000 |
1 files changed, 1000 insertions, 0 deletions
diff --git a/discard.mk b/discard.mk new file mode 100644 index 0000000000..32dde117ca --- /dev/null +++ b/discard.mk @@ -0,0 +1,1000 @@ +# -*- Mode: makefile; indent-tabs-mode: t -*- +# +# This file is part of systemd. +# +# Copyright 2010-2012 Lennart Poettering +# Copyright 2010-2012 Kay Sievers +# Copyright 2013 Zbigniew Jędrzejewski-Szmek +# Copyright 2013 David Strauss +# Copyright 2016 Luke Shumaker +# +# 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 +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. +# +# systemd is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with systemd; If not, see <http://www.gnu.org/licenses/>. +include $(dir $(lastword $(MAKEFILE_LIST)))/../../config.mk +include $(topsrcdir)/build-aux/Makefile.head.mk + +EXTRA_DIST = +BUILT_SOURCES = +INSTALL_EXEC_HOOKS = +UNINSTALL_EXEC_HOOKS = +INSTALL_DATA_HOOKS = +UNINSTALL_DATA_HOOKS = +DISTCLEAN_LOCAL_HOOKS = +CLEAN_LOCAL_HOOKS = +pkginclude_HEADERS = +noinst_LTLIBRARIES = +lib_LTLIBRARIES = +include_HEADERS = +noinst_DATA = +pkgconfigdata_DATA = +pkgconfiglib_DATA = +polkitpolicy_in_in_files = +polkitpolicy_in_files = +polkitpolicy_files = +dist_udevrules_DATA = +nodist_udevrules_DATA = +dist_pkgsysconf_DATA = +nodist_pkgsysconf_DATA = +dist_dbuspolicy_DATA = +dist_dbussystemservice_DATA = +dist_systemunit_DATA_busnames = +dist_sysusers_DATA = +check_PROGRAMS = +check_DATA = +tests= +manual_tests = +TEST_EXTENSIONS = .py +PY_LOG_COMPILER = $(PYTHON) +DISABLE_HARD_ERRORS = yes +ifneq ($(ENABLE_TESTS),) +noinst_PROGRAMS = $(manual_tests) $(tests) $(unsafe_tests) +TESTS = $(tests) +ifneq ($(ENABLE_UNSAFE_TESTS),) +TESTS += \ + $(unsafe_tests) +endif +else +noinst_PROGRAMS = +TESTS = +endif # ENABLE_TESTS +ifneq ($(ENABLE_BASH_COMPLETION),) +dist_bashcompletion_DATA = $(dist_bashcompletion_data) +nodist_bashcompletion_DATA = $(nodist_bashcompletion_data) +endif # ENABLE_BASH_COMPLETION +ifneq ($(ENABLE_ZSH_COMPLETION),) +dist_zshcompletion_DATA = $(dist_zshcompletion_data) +nodist_zshcompletion_DATA = $(nodist_zshcompletion_data) +endif # ENABLE_ZSH_COMPLETION +udevlibexec_PROGRAMS = +gperf_gperf_sources = + +in_files = $(filter %.in,$(EXTRA_DIST)) +in_in_files = $(filter %.in.in, $(in_files)) +m4_files = $(filter %.m4,$(EXTRA_DIST) $(in_files:.m4.in=.m4)) + +CLEANFILES = $(BUILT_SOURCES) \ + $(pkgconfigdata_DATA) \ + $(pkgconfiglib_DATA) \ + $(nodist_bashcompletion_data) \ + $(nodist_zshcompletion_data) \ + $(in_files:.in=) $(in_in_files:.in.in=) \ + $(m4_files:.m4=) + +.PHONY: $(INSTALL_EXEC_HOOKS) $(UNINSTALL_EXEC_HOOKS) \ + $(INSTALL_DATA_HOOKS) $(UNINSTALL_DATA_HOOKS) \ + $(DISTCLEAN_LOCAL_HOOKS) $(CLEAN_LOCAL_HOOKS) + +AM_CPPFLAGS = \ + -include $(top_builddir)/config.h \ + -DPKGSYSCONFDIR=\"$(pkgsysconfdir)\" \ + -DSYSTEM_CONFIG_UNIT_PATH=\"$(pkgsysconfdir)/system\" \ + -DSYSTEM_DATA_UNIT_PATH=\"$(systemunitdir)\" \ + -DSYSTEM_SYSVINIT_PATH=\"$(SYSTEM_SYSVINIT_PATH)\" \ + -DSYSTEM_SYSVRCND_PATH=\"$(SYSTEM_SYSVRCND_PATH)\" \ + -DUSER_CONFIG_UNIT_PATH=\"$(pkgsysconfdir)/user\" \ + -DUSER_DATA_UNIT_PATH=\"$(userunitdir)\" \ + -DCERTIFICATE_ROOT=\"$(CERTIFICATEROOT)\" \ + -DCATALOG_DATABASE=\"$(catalogstatedir)/database\" \ + -DSYSTEMD_CGROUP_AGENT_PATH=\"$(rootlibexecdir)/systemd-cgroups-agent\" \ + -DSYSTEMD_BINARY_PATH=\"$(rootlibexecdir)/systemd\" \ + -DSYSTEMD_FSCK_PATH=\"$(rootlibexecdir)/systemd-fsck\" \ + -DSYSTEMD_SHUTDOWN_BINARY_PATH=\"$(rootlibexecdir)/systemd-shutdown\" \ + -DSYSTEMD_SLEEP_BINARY_PATH=\"$(rootlibexecdir)/systemd-sleep\" \ + -DSYSTEMCTL_BINARY_PATH=\"$(rootbindir)/systemctl\" \ + -DSYSTEMD_TTY_ASK_PASSWORD_AGENT_BINARY_PATH=\"$(rootbindir)/systemd-tty-ask-password-agent\" \ + -DSYSTEMD_STDIO_BRIDGE_BINARY_PATH=\"$(bindir)/systemd-stdio-bridge\" \ + -DROOTPREFIX=\"$(rootprefix)\" \ + -DRANDOM_SEED_DIR=\"$(localstatedir)/lib/systemd/\" \ + -DRANDOM_SEED=\"$(localstatedir)/lib/systemd/random-seed\" \ + -DSYSTEMD_CRYPTSETUP_PATH=\"$(rootlibexecdir)/systemd-cryptsetup\" \ + -DSYSTEM_GENERATOR_PATH=\"$(systemgeneratordir)\" \ + -DUSER_GENERATOR_PATH=\"$(usergeneratordir)\" \ + -DSYSTEM_SHUTDOWN_PATH=\"$(systemshutdowndir)\" \ + -DSYSTEM_SLEEP_PATH=\"$(systemsleepdir)\" \ + -DSYSTEMD_KBD_MODEL_MAP=\"$(pkgdatadir)/kbd-model-map\" \ + -DSYSTEMD_LANGUAGE_FALLBACK_MAP=\"$(pkgdatadir)/language-fallback-map\" \ + -DUDEVLIBEXECDIR=\"$(udevlibexecdir)\" \ + -DPOLKIT_AGENT_BINARY_PATH=\"$(bindir)/pkttyagent\" \ + -DQUOTACHECK=\"$(QUOTACHECK)\" \ + -DKEXEC=\"$(KEXEC)\" \ + -DMOUNT_PATH=\"$(MOUNT_PATH)\" \ + -DUMOUNT_PATH=\"$(UMOUNT_PATH)\" \ + -DLIBDIR=\"$(libdir)\" \ + -DROOTLIBDIR=\"$(rootlibdir)\" \ + -DROOTLIBEXECDIR=\"$(rootlibexecdir)\" \ + -DTEST_DIR=\"$(abs_top_srcdir)/test\" \ + -I $(top_srcdir)/src \ + -I $(top_builddir)/src/basic \ + -I $(top_srcdir)/src/basic \ + -I $(top_srcdir)/src/shared \ + -I $(top_builddir)/src/shared \ + -I $(top_srcdir)/src/network \ + -I $(top_srcdir)/src/login \ + -I $(top_srcdir)/src/journal \ + -I $(top_builddir)/src/journal \ + -I $(top_srcdir)/src/timedate \ + -I $(top_srcdir)/src/timesync \ + -I $(top_srcdir)/src/nspawn \ + -I $(top_srcdir)/src/resolve \ + -I $(top_builddir)/src/resolve \ + -I $(top_srcdir)/src/systemd \ + -I $(top_builddir)/src/core \ + -I $(top_srcdir)/src/core \ + -I $(top_srcdir)/src/libudev \ + -I $(top_srcdir)/src/udev \ + -I $(top_srcdir)/src/udev/net \ + -I $(top_builddir)/src/udev \ + -I $(top_srcdir)/src/libsystemd/sd-bus \ + -I $(top_srcdir)/src/libsystemd/sd-event \ + -I $(top_srcdir)/src/libsystemd/sd-login \ + -I $(top_srcdir)/src/libsystemd/sd-netlink \ + -I $(top_srcdir)/src/libsystemd/sd-network \ + -I $(top_srcdir)/src/libsystemd/sd-hwdb \ + -I $(top_srcdir)/src/libsystemd/sd-device \ + -I $(top_srcdir)/src/libsystemd-network \ + $(OUR_CPPFLAGS) + +AM_CFLAGS = $(OUR_CFLAGS) +AM_LDFLAGS = $(OUR_LDFLAGS) + +# ------------------------------------------------------------------------------ +define move-to-rootlibdir + if test "$(libdir)" != "$(rootlibdir)"; then \ + $(MKDIR_P) $(DESTDIR)$(rootlibdir) && \ + so_img_name=$$(readlink $(DESTDIR)$(libdir)/$$libname) && \ + rm -f $(DESTDIR)$(libdir)/$$libname && \ + $(LN_S) --relative -f $(DESTDIR)$(rootlibdir)/$$so_img_name $(DESTDIR)$(libdir)/$$libname && \ + mv $(DESTDIR)$(libdir)/$$libname.* $(DESTDIR)$(rootlibdir); \ + fi +endef + +INSTALL_DIRS = + +SHUTDOWN_TARGET_WANTS = +LOCAL_FS_TARGET_WANTS = +MULTI_USER_TARGET_WANTS = +GRAPHICAL_TARGET_WANTS = +RESCUE_TARGET_WANTS = +SYSINIT_TARGET_WANTS = +SOCKETS_TARGET_WANTS = +BUSNAMES_TARGET_WANTS = +TIMERS_TARGET_WANTS = +USER_SOCKETS_TARGET_WANTS = +USER_DEFAULT_TARGET_WANTS = +USER_BUSNAMES_TARGET_WANTS = + +SYSTEM_UNIT_ALIASES = +USER_UNIT_ALIASES = +GENERAL_ALIASES = + +install-target-wants-hook: + what="$(SHUTDOWN_TARGET_WANTS)" && wants=shutdown.target && dir=$(systemunitdir) && $(add-wants) + what="$(LOCAL_FS_TARGET_WANTS)" && wants=local-fs.target && dir=$(systemunitdir) && $(add-wants) + what="$(MULTI_USER_TARGET_WANTS)" && wants=multi-user.target && dir=$(systemunitdir) && $(add-wants) + what="$(GRAPHICAL_TARGET_WANTS)" && wants=graphical.target && dir=$(systemunitdir) && $(add-wants) + what="$(RESCUE_TARGET_WANTS)" && wants=rescue.target && dir=$(systemunitdir) && $(add-wants) + what="$(SYSINIT_TARGET_WANTS)" && wants=sysinit.target && dir=$(systemunitdir) && $(add-wants) + what="$(SOCKETS_TARGET_WANTS)" && wants=sockets.target && dir=$(systemunitdir) && $(add-wants) + what="$(TIMERS_TARGET_WANTS)" && wants=timers.target && dir=$(systemunitdir) && $(add-wants) + what="$(SLICES_TARGET_WANTS)" && wants=slices.target && dir=$(systemunitdir) && $(add-wants) + what="$(USER_SOCKETS_TARGET_WANTS)" && wants=sockets.target && dir=$(userunitdir) && $(add-wants) + what="$(USER_DEFAULT_TARGET_WANTS)" && wants=default.target && dir=$(userunitdir) && $(add-wants) + +install-busnames-target-wants-hook: + what="$(BUSNAMES_TARGET_WANTS)" && wants=busnames.target && dir=$(systemunitdir) && $(add-wants) + what="$(USER_BUSNAMES_TARGET_WANTS)" && wants=busnames.target && dir=$(userunitdir) && $(add-wants) + +define add-wants + [ -z "$$what" ] || ( \ + dir=$(DESTDIR)$$dir/$$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-relative-aliases) + set -- $(GENERAL_ALIASES) && \ + dir= && $(install-relative-aliases) + +define install-aliases + while [ -n "$$1" ]; do \ + $(MKDIR_P) `dirname $(DESTDIR)$$dir/$$2` && \ + rm -f $(DESTDIR)$$dir/$$2 && \ + $(LN_S) $$1 $(DESTDIR)$$dir/$$2 && \ + shift 2 || exit $$?; \ + done +endef + +define install-relative-aliases + while [ -n "$$1" ]; do \ + $(MKDIR_P) `dirname $(DESTDIR)$$dir/$$2` && \ + rm -f $(DESTDIR)$$dir/$$2 && \ + $(LN_S) --relative $(DESTDIR)$$1 $(DESTDIR)$$dir/$$2 && \ + shift 2 || exit $$?; \ + done +endef + +install-touch-usr-hook: + touch -c $(DESTDIR)/$(prefix) + +INSTALL_EXEC_HOOKS += \ + install-target-wants-hook \ + install-directories-hook \ + install-aliases-hook \ + install-touch-usr-hook + +INSTALL_EXEC_HOOKS += \ + install-busnames-target-wants-hook + +dist_bashcompletion_data = \ + shell-completion/bash/busctl \ + shell-completion/bash/journalctl \ + shell-completion/bash/systemd-analyze \ + shell-completion/bash/systemd-cat \ + shell-completion/bash/systemd-cgls \ + shell-completion/bash/systemd-cgtop \ + shell-completion/bash/systemd-delta \ + shell-completion/bash/systemd-detect-virt \ + shell-completion/bash/systemd-nspawn \ + shell-completion/bash/systemd-path \ + shell-completion/bash/systemd-run \ + shell-completion/bash/udevadm \ + shell-completion/bash/kernel-install + +nodist_bashcompletion_data = \ + shell-completion/bash/systemctl + +dist_zshcompletion_data = \ + shell-completion/zsh/_busctl \ + shell-completion/zsh/_journalctl \ + shell-completion/zsh/_udevadm \ + shell-completion/zsh/_kernel-install \ + shell-completion/zsh/_systemd-nspawn \ + shell-completion/zsh/_systemd-analyze \ + shell-completion/zsh/_systemd-run \ + shell-completion/zsh/_sd_hosts_or_user_at_host \ + shell-completion/zsh/_sd_outputmodes \ + shell-completion/zsh/_sd_unit_files \ + shell-completion/zsh/_systemd-delta \ + shell-completion/zsh/_systemd + +nodist_zshcompletion_data = \ + shell-completion/zsh/_systemctl + +EXTRA_DIST += \ + shell-completion/bash/systemctl.in \ + shell-completion/zsh/_systemctl.in + +dist_sysctl_DATA = \ + sysctl.d/50-default.conf + +dist_systemunit_DATA = \ + units/graphical.target \ + units/multi-user.target \ + units/emergency.target \ + units/sysinit.target \ + units/basic.target \ + units/getty.target \ + units/halt.target \ + units/kexec.target \ + units/exit.target \ + units/local-fs.target \ + units/local-fs-pre.target \ + units/initrd.target \ + units/initrd-fs.target \ + units/initrd-root-device.target \ + units/initrd-root-fs.target \ + units/remote-fs.target \ + units/remote-fs-pre.target \ + units/network.target \ + units/network-pre.target \ + units/network-online.target \ + units/nss-lookup.target \ + units/nss-user-lookup.target \ + units/poweroff.target \ + units/reboot.target \ + units/rescue.target \ + units/rpcbind.target \ + units/time-sync.target \ + units/shutdown.target \ + units/final.target \ + units/umount.target \ + units/sigpwr.target \ + units/sleep.target \ + units/sockets.target \ + units/timers.target \ + units/paths.target \ + units/suspend.target \ + units/swap.target \ + units/slices.target \ + units/system.slice \ + units/x-.slice \ + units/systemd-initctl.socket \ + units/syslog.socket \ + units/dev-hugepages.mount \ + units/dev-mqueue.mount \ + units/sys-kernel-config.mount \ + units/sys-kernel-debug.mount \ + units/sys-fs-fuse-connections.mount \ + units/tmp.mount \ + units/var-lib-machines.mount \ + units/printer.target \ + units/sound.target \ + units/bluetooth.target \ + units/smartcard.target \ + units/systemd-ask-password-wall.path \ + units/systemd-ask-password-console.path \ + units/systemd-udevd-control.socket \ + units/systemd-udevd-kernel.socket \ + units/system-update.target \ + units/initrd-switch-root.target \ + units/machines.target + +dist_systemunit_DATA += \ + $(dist_systemunit_DATA_busnames) + +dist_systemunit_DATA_busnames += \ + units/busnames.target + +nodist_systemunit_DATA = \ + units/getty@.service \ + units/serial-getty@.service \ + units/console-shell.service \ + units/console-getty.service \ + units/container-getty@.service \ + units/systemd-initctl.service \ + units/systemd-remount-fs.service \ + units/systemd-ask-password-wall.service \ + units/systemd-ask-password-console.service \ + units/systemd-sysctl.service \ + units/emergency.service \ + units/rescue.service \ + units/user@.service \ + units/systemd-suspend.service \ + units/systemd-halt.service \ + units/systemd-poweroff.service \ + units/systemd-reboot.service \ + units/systemd-kexec.service \ + units/systemd-exit.service \ + units/systemd-fsck@.service \ + units/systemd-fsck-root.service \ + units/systemd-machine-id-commit.service \ + units/systemd-udevd.service \ + units/systemd-udev-trigger.service \ + units/systemd-udev-settle.service \ + units/systemd-hwdb-update.service \ + units/debug-shell.service \ + units/initrd-parse-etc.service \ + units/initrd-cleanup.service \ + units/initrd-udevadm-cleanup-db.service \ + units/initrd-switch-root.service \ + units/systemd-nspawn@.service \ + units/systemd-update-done.service + +ifneq ($(HAVE_UTMP),) +nodist_systemunit_DATA += \ + units/systemd-update-utmp.service \ + units/systemd-update-utmp-runlevel.service +endif # HAVE_UTMP + +dist_userunit_DATA = \ + units/user/basic.target \ + units/user/default.target \ + units/user/exit.target + +nodist_userunit_DATA = \ + units/user/systemd-exit.service + +dist_systempreset_DATA = \ + system-preset/90-systemd.preset + +EXTRA_DIST += \ + units/getty@.service.m4 \ + units/serial-getty@.service.m4 \ + units/console-shell.service.m4.in \ + units/console-getty.service.m4.in \ + units/container-getty@.service.m4.in \ + units/rescue.service.in \ + units/systemd-initctl.service.in \ + units/systemd-remount-fs.service.in \ + units/systemd-update-utmp.service.in \ + units/systemd-update-utmp-runlevel.service.in \ + units/systemd-ask-password-wall.service.in \ + units/systemd-ask-password-console.service.in \ + units/systemd-sysctl.service.in \ + units/emergency.service.in \ + units/systemd-halt.service.in \ + units/systemd-poweroff.service.in \ + units/systemd-reboot.service.in \ + units/systemd-kexec.service.in \ + units/systemd-exit.service.in \ + units/user/systemd-exit.service.in \ + units/systemd-fsck@.service.in \ + units/systemd-fsck-root.service.in \ + units/systemd-machine-id-commit.service.in \ + units/user@.service.m4.in \ + units/debug-shell.service.in \ + units/systemd-suspend.service.in \ + units/quotaon.service.in \ + units/initrd-parse-etc.service.in \ + units/initrd-cleanup.service.in \ + units/initrd-udevadm-cleanup-db.service.in \ + units/initrd-switch-root.service.in \ + units/systemd-nspawn@.service.in \ + units/systemd-update-done.service.in \ + units/tmp.mount.m4 + +ifneq ($(HAVE_SYSV_COMPAT),) +nodist_systemunit_DATA += \ + units/rc-local.service \ + units/halt-local.service + +systemgenerator_PROGRAMS += \ + systemd-sysv-generator \ + systemd-rc-local-generator +endif # HAVE_SYSV_COMPAT + +EXTRA_DIST += \ + src/systemctl/systemd-sysv-install.SKELETON \ + units/rc-local.service.in \ + units/halt-local.service.in + +# automake is broken and can't handle files with a dash in front +# http://debbugs.gnu.org/cgi/bugreport.cgi?bug=14728#8 +units-install-hook: + mv $(DESTDIR)$(systemunitdir)/x-.slice $(DESTDIR)/$(systemunitdir)/-.slice + +units-uninstall-hook: + rm -f $(DESTDIR)/$(systemunitdir)/-.slice + +INSTALL_DATA_HOOKS += units-install-hook +UNINSTALL_DATA_HOOKS += units-uninstall-hook + +dist_doc_DATA = \ + README \ + NEWS \ + CODING_STYLE \ + LICENSE.LGPL2.1 \ + LICENSE.GPL2 \ + DISTRO_PORTING \ + src/libsystemd/sd-bus/PORTING-DBUS1 \ + src/libsystemd/sd-bus/DIFFERENCES \ + src/libsystemd/sd-bus/GVARIANT-SERIALIZATION + +EXTRA_DIST += \ + README.md \ + autogen.sh \ + .dir-locals.el \ + .editorconfig \ + .vimrc \ + .ycm_extra_conf.py \ + .travis.yml \ + .mailmap + +@INTLTOOL_POLICY_RULE@ + +ifneq ($(ENABLE_LDCONFIG),) +dist_systemunit_DATA += \ + units/ldconfig.service + +SYSINIT_TARGET_WANTS += \ + ldconfig.service +endif # ENABLE_LDCONFIG + +gperf_gperf_m4_sources = \ + src/core/load-fragment-gperf.gperf.m4 + +gperf_txt_sources = \ + src/basic/errno-list.txt \ + src/basic/af-list.txt \ + src/basic/arphrd-list.txt \ + src/basic/cap-list.txt + +BUILT_SOURCES += \ + $(gperf_gperf_m4_sources:-gperf.gperf.m4=-gperf.c) \ + $(gperf_gperf_m4_sources:-gperf.gperf.m4=-gperf-nulstr.c) \ + $(gperf_gperf_sources:-gperf.gperf=-gperf.c) \ + $(gperf_txt_sources:-list.txt=-from-name.h) \ + $(filter-out %keyboard-keys-to-name.h,$(gperf_txt_sources:-list.txt=-to-name.h)) + +CLEANFILES += \ + $(gperf_txt_sources:-list.txt=-from-name.gperf) +DISTCLEANFILES = \ + $(gperf_txt_sources) + +EXTRA_DIST += \ + $(gperf_gperf_m4_sources) \ + $(gperf_gperf_sources) + +CLEANFILES += \ + $(gperf_txt_sources) + +## .PHONY so it always rebuilds it +.PHONY: coverage lcov-run lcov-report coverage-sync + +# run lcov from scratch, always +coverage: all + $(MAKE) lcov-run + $(MAKE) lcov-report + +coverage_dir = coverage +coverage_opts = --base-directory $(srcdir) --directory $(builddir) --rc 'geninfo_adjust_src_path=$(abspath $(srcdir))=>$(abspath $(builddir))' + +ifneq ($(ENABLE_COVERAGE),) +# reset run coverage tests +lcov-run: + @rm -rf $(coverage_dir) + lcov $(coverage_opts) --zerocounters + -$(MAKE) check + +# generate report based on current coverage data +lcov-report: + $(MKDIR_P) $(coverage_dir) + lcov $(coverage_opts) --compat-libtool --capture --no-external \ + | sed 's|$(abspath $(builddir))|$(abspath $(srcdir))|' > $(coverage_dir)/.lcov.info + lcov --remove $(coverage_dir)/.lcov.info --output-file $(coverage_dir)/.lcov-clean.info 'test-*' + genhtml -t "systemd test coverage" -o $(coverage_dir) $(coverage_dir)/.lcov-clean.info + @echo "Coverage report generated in $(abs_builddir)/$(coverage_dir)/index.html" + +# lcov doesn't work properly with vpath builds, make sure that bad +# output is not uploaded by mistake. +coverage-sync: coverage + test "$(builddir)" = "$(srcdir)" + rsync -rlv --delete --omit-dir-times coverage/ $(www_target)/coverage + +else +lcov-run lcov-report: + echo "Need to reconfigure with --enable-coverage" +endif # ENABLE_COVERAGE + +ifneq ($(HAVE_REMOTE),) +nodist_sysusers_DATA += \ + sysusers.d/systemd-remote.conf +endif # HAVE_REMOTE +dist_factory_etc_DATA = \ + factory/etc/nsswitch.conf + +ifneq ($(HAVE_PAM),) +dist_factory_pam_DATA = \ + factory/etc/pam.d/system-auth \ + factory/etc/pam.d/other +endif # HAVE_PAM + +libsystemd-install-hook: + libname=libsystemd.so && $(move-to-rootlibdir) + +libsystemd-uninstall-hook: + rm -f $(DESTDIR)$(rootlibdir)/libsystemd.so* + +INSTALL_EXEC_HOOKS += libsystemd-install-hook +UNINSTALL_EXEC_HOOKS += libsystemd-uninstall-hook + +# move lib from $(libdir) to $(rootlibdir) and update devel link, if needed +libudev-install-hook: + libname=libudev.so && $(move-to-rootlibdir) + +libudev-uninstall-hook: + rm -f $(DESTDIR)$(rootlibdir)/libudev.so* + +INSTALL_EXEC_HOOKS += libudev-install-hook +UNINSTALL_EXEC_HOOKS += libudev-uninstall-hook + +ifneq ($(ENABLE_TESTS),) +TESTS += \ + test/udev-test.pl + +ifneq ($(HAVE_PYTHON),) +TESTS += \ + test/rule-syntax-check.py + +ifneq ($(HAVE_SYSV_COMPAT),) +TESTS += \ + test/sysv-generator-test.py +endif # HAVE_SYSV_COMPAT +endif # HAVE_PYTHON +endif # ENABLE_TESTS + +tests += \ + test-libudev + +manual_tests += \ + test-udev + +test_libudev_SOURCES = \ + src/test/test-libudev.c + +test_libudev_LDADD = \ + libshared.la + +test_udev_SOURCES = \ + src/test/test-udev.c + +test_udev_LDADD = \ + libudev-core.la \ + $(BLKID_LIBS) \ + $(KMOD_LIBS) + +ifneq ($(ENABLE_TESTS),) +check_DATA += \ + test/sys +endif # ENABLE_TESTS + +# packed sysfs test tree +$(outdir)/sys: test/sys.tar.xz + -rm -rf test/sys + $(AM_V_at)$(MKDIR_P) $(dir $@) + $(AM_V_GEN)tar -C test/ -xJf $(top_srcdir)/test/sys.tar.xz + -touch test/sys + +test-sys-distclean: + -rm -rf test/sys +DISTCLEAN_LOCAL_HOOKS += test-sys-distclean + +EXTRA_DIST += \ + test/sys.tar.xz \ + test/udev-test.pl \ + test/rule-syntax-check.py \ + test/sysv-generator-test.py \ + test/mocks/fsck + +test_nss_SOURCES = \ + src/test/test-nss.c + +test_nss_LDADD = \ + libsystemd-internal.la \ + -ldl + +manual_tests += \ + test-nss + +EXTRA_DIST += \ + test/Makefile \ + test/README.testsuite \ + test/TEST-01-BASIC \ + test/TEST-01-BASIC/Makefile \ + test/TEST-01-BASIC/test.sh \ + test/TEST-02-CRYPTSETUP \ + test/TEST-02-CRYPTSETUP/Makefile \ + test/TEST-02-CRYPTSETUP/test.sh \ + test/TEST-03-JOBS \ + test/TEST-03-JOBS/Makefile \ + test/TEST-03-JOBS/test-jobs.sh \ + test/TEST-03-JOBS/test.sh \ + test/TEST-04-JOURNAL/Makefile \ + test/TEST-04-JOURNAL/test-journal.sh \ + test/TEST-04-JOURNAL/test.sh \ + test/TEST-05-RLIMITS/Makefile \ + test/TEST-05-RLIMITS/test-rlimits.sh \ + test/TEST-05-RLIMITS/test.sh \ + test/TEST-06-SELINUX/Makefile \ + test/TEST-06-SELINUX/test-selinux-checks.sh \ + test/TEST-06-SELINUX/test.sh \ + test/TEST-06-SELINUX/systemd_test.te \ + test/TEST-06-SELINUX/systemd_test.if \ + test/TEST-07-ISSUE-1981/Makefile \ + test/TEST-07-ISSUE-1981/test-segfault.sh \ + test/TEST-07-ISSUE-1981/test.sh \ + test/TEST-08-ISSUE-2730/Makefile \ + test/TEST-08-ISSUE-2730/test.sh \ + test/TEST-09-ISSUE-2691/Makefile \ + test/TEST-09-ISSUE-2691/test.sh \ + test/TEST-10-ISSUE-2467/Makefile \ + test/TEST-10-ISSUE-2467/test.sh \ + test/TEST-11-ISSUE-3166/Makefile \ + test/TEST-11-ISSUE-3166/test.sh \ + test/TEST-12-ISSUE-3171/Makefile \ + test/TEST-12-ISSUE-3171/test.sh \ + test/test-functions + +EXTRA_DIST += \ + test/loopy2.service \ + test/loopy3.service \ + test/loopy4.service \ + test/loopy.service \ + test/loopy.service.d \ + test/loopy.service.d/compat.conf + +$(outdir)/%: units/%.in + $(SED_PROCESS) + +$(outdir)/%: man/%.in + $(SED_PROCESS) + +%.pc: %.pc.in + $(SED_PROCESS) + +%.conf: %.conf.in + $(SED_PROCESS) + +$(outdir)/%.systemd: src/core/%.systemd.in + $(SED_PROCESS) + +$(outdir)/%.policy.in: src/%.policy.in.in + $(SED_PROCESS) + +$(outdir)/%: shell-completion/%.in + $(SED_PROCESS) + +%.rules: %.rules.in + $(SED_PROCESS) + +%.conf: %.conf.in + $(SED_PROCESS) + +$(outdir)/%: sysusers.d/%.m4 $(top_builddir)/config.status + $(AM_V_at)$(MKDIR_P) $(dir $@) + $(AM_V_M4)$(M4) -P $(M4_DEFINES) < $< > $@ + +$(outdir)/%: tmpfiles.d/%.m4 $(top_builddir)/config.status + $(AM_V_at)$(MKDIR_P) $(dir $@) + $(AM_V_M4)$(M4) -P $(M4_DEFINES) < $< > $@ + + +$(outdir)/%: units/%.m4 $(top_builddir)/config.status + $(AM_V_at)$(MKDIR_P) $(dir $@) + $(AM_V_M4)$(M4) -P $(M4_DEFINES) -DFOR_SYSTEM=1 < $< > $@ + +$(outdir)/%: units/user/%.m4 $(top_builddir)/config.status + $(AM_V_at)$(MKDIR_P) $(dir $@) + $(AM_V_M4)$(M4) -P $(M4_DEFINES) -DFOR_USER=1 < $< > $@ + +ifneq ($(ENABLE_POLKIT),) +nodist_polkitpolicy_DATA = \ + $(polkitpolicy_files) \ + $(polkitpolicy_in_in_files:.policy.in.in=.policy) +endif # ENABLE_POLKIT + +EXTRA_DIST += \ + $(polkitpolicy_in_files) \ + $(polkitpolicy_in_in_files) + +CLEANFILES += \ + man/custom-entities.ent + +EXTRA_DIST += \ + man/custom-html.xsl \ + man/custom-man.xsl + +# ------------------------------------------------------------------------------ +SOCKETS_TARGET_WANTS += \ + systemd-initctl.socket + +ifneq ($(HAVE_UTMP),) +ifneq ($(HAVE_SYSV_COMPAT),) +MULTI_USER_TARGET_WANTS += \ + systemd-update-utmp-runlevel.service +GRAPHICAL_TARGET_WANTS += \ + systemd-update-utmp-runlevel.service +RESCUE_TARGET_WANTS += \ + systemd-update-utmp-runlevel.service +endif # HAVE_SYSV_COMPAT + +SYSINIT_TARGET_WANTS += \ + systemd-update-utmp.service +endif # HAVE_UTMP + +SYSINIT_TARGET_WANTS += \ + systemd-update-done.service + +LOCAL_FS_TARGET_WANTS += \ + systemd-remount-fs.service \ + tmp.mount \ + var-lib-machines.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-sysctl.service \ + systemd-ask-password-console.path + +ifneq ($(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 # HAVE_SYSV_COMPAT + +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)/timers.target timers.target \ + $(systemunitdir)/paths.target paths.target \ + $(systemunitdir)/bluetooth.target bluetooth.target \ + $(systemunitdir)/printer.target printer.target \ + $(systemunitdir)/sound.target sound.target \ + $(systemunitdir)/smartcard.target smartcard.target + +USER_UNIT_ALIASES += \ + $(systemunitdir)/busnames.target busnames.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 \ + $(dbussystemservicedir)/org.freedesktop.systemd1.service $(dbussessionservicedir)/org.freedesktop.systemd1.service + +ifneq ($(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 # HAVE_SYSV_COMPAT + +INSTALL_DIRS += \ + $(prefix)/lib/modules-load.d \ + $(sysconfdir)/modules-load.d \ + $(prefix)/lib/systemd/network \ + $(sysconfdir)/systemd/network \ + $(prefix)/lib/sysctl.d \ + $(sysconfdir)/sysctl.d \ + $(prefix)/lib/kernel/install.d \ + $(sysconfdir)/kernel/install.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 + +install-exec-hook: $(INSTALL_EXEC_HOOKS) + +uninstall-hook: $(UNINSTALL_DATA_HOOKS) $(UNINSTALL_EXEC_HOOKS) + +install-data-hook: $(INSTALL_DATA_HOOKS) + +distclean-local: $(DISTCLEAN_LOCAL_HOOKS) + +clean-local: $(CLEAN_LOCAL_HOOKS) + rm -rf $(abs_srcdir)/install-tree + rm -f $(abs_srcdir)/hwdb/usb.ids $(abs_srcdir)/hwdb/pci.ids $(abs_srcdir)/hwdb/oui.txt \ + $(abs_srcdir)/hwdb/iab.txt + +DISTCHECK_CONFIGURE_FLAGS = \ + --with-dbuspolicydir=$$dc_install_base/$(dbuspolicydir) \ + --with-dbussessionservicedir=$$dc_install_base/$(dbussessionservicedir) \ + --with-dbussystemservicedir=$$dc_install_base/$(dbussystemservicedir) \ + --with-bashcompletiondir=$$dc_install_base/$(bashcompletiondir) \ + --with-zshcompletiondir=$$dc_install_base/$(zshcompletiondir) \ + --with-pamlibdir=$$dc_install_base/$(pamlibdir) \ + --with-pamconfdir=$$dc_install_base/$(pamconfdir) \ + --with-rootprefix=$$dc_install_base \ + --enable-compat-libs + +ifneq ($(HAVE_SYSV_COMPAT),) +DISTCHECK_CONFIGURE_FLAGS += \ + --with-sysvinit-path=$$dc_install_base/$(sysvinitdir) \ + --with-sysvrcnd-path=$$dc_install_base/$(sysvrcnddir) +else +DISTCHECK_CONFIGURE_FLAGS += \ + --with-sysvinit-path= \ + --with-sysvrcnd-path= +endif # HAVE_SYSV_COMPAT + +ifneq ($(ENABLE_SPLIT_USR),) +DISTCHECK_CONFIGURE_FLAGS += \ + --enable-split-usr +else +DISTCHECK_CONFIGURE_FLAGS += \ + --disable-split-usr +endif # ENABLE_SPLIT_USR + +.PHONY: dist-check-help +dist-check-help: $(rootbin_PROGRAMS) $(bin_PROGRAMS) + for i in $(abspath $^); do \ + if $$i --help | grep -v 'default:' | grep -E -q '.{80}.' ; then \ + echo "$(basename $$i) --help output is too wide:"; \ + $$i --help | awk 'length > 80' | grep -E --color=yes '.{80}'; \ + exit 1; \ + fi; done + +include_compilers = "$(CC)" "$(CC) -ansi" "$(CC) -std=iso9899:1990" +public_headers = $(filter-out src/systemd/_sd-common.h, $(pkginclude_HEADERS) $(include_HEADERS)) +.PHONY: dist-check-includes +dist-check-includes: $(public_headers) + @res=0; \ + for i in $(abspath $^); do \ + for cc in $(include_compilers); do \ + echo "$$cc -o/dev/null -c -x c -include "$$i" - </dev/null"; \ + $$cc -o/dev/null -c -x c -include "$$i" - </dev/null || res=1; \ + done; \ + done; exit $$res + +.PHONY: built-sources +built-sources: $(BUILT_SOURCES) + +.PHONY: git-tag +git-tag: + git tag -s "v$(VERSION)" -m "systemd $(VERSION)" + +.PHONY: git-tar +git-tar: + git archive --format=tar --prefix=systemd-$(VERSION)/ HEAD | gzip > systemd-$(VERSION).tar.gz + +www_target = www.freedesktop.org:/srv/www.freedesktop.org/www/software/systemd + +.PHONY: doc-sync +doc-sync: all + rsync -rlv --delete-excluded --include="*.html" --exclude="*" --omit-dir-times man/ $(www_target)/man/ + +.PHONY: install-tree +install-tree: all + rm -rf $(abs_srcdir)/install-tree + $(MAKE) install DESTDIR=$(abs_srcdir)/install-tree + tree $(abs_srcdir)/install-tree + +BUILT_SOURCES += \ + test-libsystemd-sym.c \ + test-libudev-sym.c + +CLEANFILES += \ + test-libsystemd-sym.c \ + test-libudev-sym.c + +tests += \ + test-libsystemd-sym \ + test-libudev-sym + + +include $(topsrcdir)/build-aux/Makefile.tail.mk |