.SECONDARY:
LIBUDEV_CURRENT=4
-LIBUDEV_REVISION=5
+LIBUDEV_REVISION=6
LIBUDEV_AGE=3
LIBGUDEV_CURRENT=1
LIBGUDEV_REVISION=3
LIBGUDEV_AGE=1
-LIBSYSTEMD_LOGIN_CURRENT=7
-LIBSYSTEMD_LOGIN_REVISION=1
-LIBSYSTEMD_LOGIN_AGE=7
+LIBSYSTEMD_LOGIN_CURRENT=8
+LIBSYSTEMD_LOGIN_REVISION=0
+LIBSYSTEMD_LOGIN_AGE=8
LIBSYSTEMD_DAEMON_CURRENT=0
LIBSYSTEMD_DAEMON_REVISION=10
LIBSYSTEMD_ID128_REVISION=23
LIBSYSTEMD_ID128_AGE=0
-LIBSYSTEMD_JOURNAL_CURRENT=10
-LIBSYSTEMD_JOURNAL_REVISION=2
-LIBSYSTEMD_JOURNAL_AGE=10
+LIBSYSTEMD_JOURNAL_CURRENT=11
+LIBSYSTEMD_JOURNAL_REVISION=0
+LIBSYSTEMD_JOURNAL_AGE=11
# Dirs of external packages
dbuspolicydir=@dbuspolicydir@
-I $(top_srcdir)/src/core \
-I $(top_srcdir)/src/libudev \
-I $(top_srcdir)/src/udev \
+ -I $(top_builddir)/src/udev \
-I $(top_srcdir)/src/libsystemd-bus \
$(OUR_CPPFLAGS)
test-fileio \
test-time \
test-hashmap \
- test-list
+ test-list \
+ test-tables
EXTRA_DIST += \
test/sched_idle_bad.service \
test_list_LDADD = \
libsystemd-core.la
+test_tables_SOURCES = \
+ src/test/test-tables.c \
+ src/shared/test-tables.h
+
+test_tables_CFLAGS = \
+ $(AM_CFLAGS) \
+ $(DBUS_CFLAGS)
+
+test_tables_LDADD = \
+ libsystemd-core.la \
+ libsystemd-logs.la
+
test_prioq_SOURCES = \
src/test/test-prioq.c
libsystemd-core.la \
libsystemd-daemon.la
+# ------------------------------------------------------------------------------
+## .PHONY so it always rebuilds it
+.PHONY: coverage lcov-run lcov-report
+
+# run lcov from scratch, always
+coverage:
+ $(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))'
+
+if 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
+ genhtml -t "systemd test coverage" -o $(coverage_dir) $(coverage_dir)/.lcov.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
+
# ------------------------------------------------------------------------------
systemd_initctl_SOURCES = \
src/initctl/initctl.c
SYSINIT_TARGET_WANTS += \
systemd-modules-load.service
+if ENABLE_TMPFILES
+nodist_systemunit_DATA += \
+ units/kmod-static-nodes.service
+
+SYSINIT_TARGET_WANTS += \
+ kmod-static-nodes.service
+endif
endif
EXTRA_DIST += \
- units/systemd-modules-load.service.in
+ units/systemd-modules-load.service.in \
+ units/kmod-static-nodes.service.in
# ------------------------------------------------------------------------------
if ENABLE_TMPFILES
rules/99-systemd.rules \
rules/42-usb-hid-pm.rules \
rules/50-udev-default.rules \
+ rules/60-keyboard.rules \
rules/60-persistent-storage-tape.rules \
rules/60-persistent-serial.rules \
rules/60-persistent-input.rules \
noinst_LTLIBRARIES += \
libudev-core.la
+src/udev/keyboard-keys.txt: Makefile
+ $(AM_V_at)$(MKDIR_P) $(dir $@)
+ $(AM_V_GEN)$(CPP) $(CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) -dM -include linux/input.h - < /dev/null | $(AWK) '/^#define[ \t]+KEY_[^ ]+[ \t]+[0-9]/ { if ($$2 != "KEY_MAX") { print $$2 } }' | sed 's/^KEY_COFFEE$$/KEY_SCREENLOCK/' > $@
+
+src/udev/keyboard-keys-from-name.gperf: src/udev/keyboard-keys.txt Makefile
+ $(AM_V_GEN)$(AWK) 'BEGIN{ print "struct key { const char* name; unsigned short id; };"; print "%null-strings"; print "%%";} { print tolower(substr($$1 ,5)) ", " $$1 }' < $< > $@
+
+src/udev/keyboard-keys-from-name.h: src/udev/keyboard-keys-from-name.gperf Makefile
+ $(AM_V_GPERF)$(GPERF) -L ANSI-C -t -N keyboard_lookup_key -H hash_key_name -p -C < $< > $@
+
+src/udev/keyboard-keys-to-name.h: src/udev/keyboard-keys.txt Makefile
+ $(AM_V_GEN)$(AWK) 'BEGIN{ print "const char* const key_names[KEY_CNT] = { "} { print "[" $$1 "] = \"" $$1 "\"," } END{print "};"}' < $< > $@
+
libudev_core_la_SOURCES = \
src/udev/udev.h \
src/udev/udev-event.c \
src/udev/udev-builtin-btrfs.c \
src/udev/udev-builtin-hwdb.c \
src/udev/udev-builtin-input_id.c \
+ src/udev/udev-builtin-keyboard.c \
src/udev/udev-builtin-net_id.c \
src/udev/udev-builtin-path_id.c \
src/udev/udev-builtin-usb_id.c
+nodist_libudev_core_la_SOURCES = \
+ src/udev/keyboard-keys-from-name.h \
+ src/udev/keyboard-keys-to-name.h
+
+BUILT_SOURCES += \
+ $(nodist_libudev_core_la_SOURCES)
+
+CLEANFILES += \
+ src/udev/keyboard-keys-from-name.gperf \
+ src/udev/keyboard-keys.txt
+
libudev_core_la_CFLAGS = \
$(AM_CFLAGS) \
$(BLKID_CFLAGS) \
if ENABLE_MACHINED
systemd_machined_SOURCES = \
src/machine/machined.c \
- src/machine/machined.h \
+ src/machine/machined.h
+
+systemd_machined_CFLAGS = \
+ $(libsystemd_machine_core_la_CFLAGS)
+
+systemd_machined_LDADD = \
+ libsystemd-machine-core.la \
+ $(libsystemd_machine_core_la_LIBADD)
+
+rootlibexec_PROGRAMS += \
+ systemd-machined
+
+libsystemd_machine_core_la_SOURCES = \
src/machine/machined-dbus.c \
src/machine/machine.c \
src/machine/machine.h \
src/machine/machine-dbus.c
-systemd_machined_CFLAGS = \
+libsystemd_machine_core_la_CFLAGS = \
$(AM_CFLAGS) \
$(DBUS_CFLAGS)
-systemd_machined_LDADD = \
+libsystemd_machine_core_la_LIBADD = \
libsystemd-label.la \
libsystemd-audit.la \
libsystemd-shared.la \
libsystemd-id128-internal.la \
libudev.la
-rootlibexec_PROGRAMS += \
- systemd-machined
+noinst_LTLIBRARIES += \
+ libsystemd-machine-core.la
machinectl_SOURCES = \
src/machine/machinectl.c
rootbin_PROGRAMS += \
machinectl
+test_machine_tables_SOURCES = \
+ src/machine/test-machine-tables.c
+
+test_machine_tables_CFLAGS = \
+ $(AM_CFLAGS) \
+ $(DBUS_CFLAGS)
+
+test_machine_tables_LDADD = \
+ libsystemd-machine-core.la
+
+tests += \
+ test-machine-tables
+
nodist_systemunit_DATA += \
units/systemd-machined.service
SYSTEM_UNIT_ALIASES += \
systemd-machined.service dbus-org.freedesktop.machine1.service
-polkitpolicy_in_files += \
- src/machine/org.freedesktop.machine1.policy.in
-
EXTRA_DIST += \
- units/systemd-machine.service.in
+ units/systemd-machined.service.in
endif
if ENABLE_LOGIND
systemd_logind_SOURCES = \
src/login/logind.c \
- src/login/logind.h \
+ src/login/logind.h
+
+nodist_systemd_logind_SOURCES = \
+ src/login/logind-gperf.c
+
+systemd_logind_CFLAGS = \
+ $(libsystemd_logind_core_la_CFLAGS)
+
+systemd_logind_LDADD = \
+ libsystemd-logind-core.la \
+ $(libsystemd_logind_core_la_LIBADD)
+
+if HAVE_ACL
+systemd_logind_SOURCES += \
+ src/login/logind-acl.c
+
+systemd_logind_LDADD += \
+ libsystemd-acl.la
+endif
+
+libsystemd_logind_core_la_SOURCES = \
src/login/logind-dbus.c \
src/login/logind-device.c \
src/login/logind-device.h \
src/login/logind-user-dbus.c \
src/login/logind-acl.h
-nodist_systemd_logind_SOURCES = \
- src/login/logind-gperf.c
-
-systemd_logind_CFLAGS = \
+libsystemd_logind_core_la_CFLAGS = \
$(AM_CFLAGS) \
- $(DBUS_CFLAGS)
+ $(DBUS_CFLAGS)
-systemd_logind_LDADD = \
+libsystemd_logind_core_la_LIBADD = \
libsystemd-label.la \
libsystemd-audit.la \
libsystemd-shared.la \
libsystemd-id128-internal.la \
libudev.la
-if HAVE_ACL
-systemd_logind_SOURCES += \
- src/login/logind-acl.c
-
-systemd_logind_LDADD += \
- libsystemd-acl.la
-endif
+noinst_LTLIBRARIES += \
+ libsystemd-logind-core.la
systemd_user_sessions_SOURCES = \
src/login/user-sessions.c
$(AM_CFLAGS) \
$(DBUS_CFLAGS)
+test_login_tables_SOURCES = \
+ src/login/test-login-tables.c
+
+test_login_tables_CFLAGS = \
+ $(AM_CFLAGS) \
+ $(DBUS_CFLAGS)
+
+test_login_tables_LDADD = \
+ libsystemd-logind-core.la
+
manual_tests += \
test-login \
test-inhibit
+tests += \
+ test-login-tables
+
libsystemd_login_la_SOURCES = \
src/login/sd-login.c
'|SUSHELL=$(SUSHELL)|' \
'|DEBUGTTY=$(DEBUGTTY)|' \
'|KILL=$(KILL)|' \
+ '|KMOD=$(KMOD)|' \
+ '|MKDIR_P=$(MKDIR_P)|' \
'|QUOTAON=$(QUOTAON)|' \
'|QUOTACHECK=$(QUOTACHECK)|' \
'|SYSTEM_SYSVINIT_PATH=$(sysvinitdir)|' \