test_rtnl_LDADD = \
libsystemd-rtnl.la \
+ libsystemd-bus-internal.la \
+ libsystemd-id128-internal.la \
libsystemd-shared.la
tests += test-rtnl
libsystemd-daemon-internal.la \
libudev-internal.la \
libsystemd-shared.la \
+ libsystemd-rtnl.la \
$(LIBWRAP_LIBS) \
$(PAM_LIBS) \
$(AUDIT_LIBS) \
bin_PROGRAMS += \
bootctl
+
+dist_zshcompletion_DATA += \
+ shell-completion/zsh/_bootctl
+
endif
# ------------------------------------------------------------------------------
libsystemd-bus-internal.la \
libsystemd-id128-internal.la \
libsystemd-daemon-internal.la \
- libsystemd-shared.la
+ libsystemd-shared.la \
+ libsystemd-rtnl.la
# ------------------------------------------------------------------------------
systemd_run_SOURCES = \
# ------------------------------------------------------------------------------
libsystemd_daemon_la_SOURCES = \
+ src/libsystemd-daemon/libsystemd-daemon.sym \
src/libsystemd-daemon/sd-daemon.c
libsystemd_daemon_internal_la_SOURCES = \
src/libsystemd-daemon/libsystemd-daemon.pc
EXTRA_DIST += \
- src/libsystemd-daemon/libsystemd-daemon.pc.in \
- src/libsystemd-daemon/libsystemd-daemon.sym
+ src/libsystemd-daemon/libsystemd-daemon.pc.in
# ------------------------------------------------------------------------------
libsystemd_bus_la_SOURCES = \
+ src/libsystemd-bus/libsystemd-bus.sym \
src/systemd/sd-bus.h \
src/systemd/sd-bus-protocol.h \
src/systemd/sd-bus-vtable.h \
src/libsystemd-bus/libsystemd-bus.pc
EXTRA_DIST += \
- src/libsystemd-bus/libsystemd-bus.pc.in \
- src/libsystemd-bus/libsystemd-bus.sym
+ src/libsystemd-bus/libsystemd-bus.pc.in
lib_LTLIBRARIES += \
libsystemd-bus.la
libudev.la
libudev_la_SOURCES =\
+ src/libudev/libudev.sym \
src/libudev/libudev-private.h \
src/libudev/libudev.c \
src/libudev/libudev-list.c \
src/libudev/libudev.pc
EXTRA_DIST += \
- src/libudev/libudev.pc.in \
- src/libudev/libudev.sym
+ src/libudev/libudev.pc.in
CLEANFILES += \
src/libudev/libudev.pc \
# ------------------------------------------------------------------------------
libsystemd_id128_la_SOURCES = \
+ src/libsystemd-id128/libsystemd-id128.sym \
src/libsystemd-id128/sd-id128.c
libsystemd_id128_la_CFLAGS = \
-Wl,--version-script=$(top_srcdir)/src/libsystemd-id128/libsystemd-id128.sym
libsystemd_id128_la_LIBADD = \
+ libsystemd-daemon-internal.la \
libsystemd-shared.la
libsystemd_id128_internal_la_SOURCES = \
UNINSTALL_EXEC_HOOKS += libsystemd-id128-uninstall-hook
EXTRA_DIST += \
- src/libsystemd-id128/libsystemd-id128.pc.in \
- src/libsystemd-id128/libsystemd-id128.sym
+ src/libsystemd-id128/libsystemd-id128.pc.in
# ------------------------------------------------------------------------------
libsystemd-journal-core.la
libsystemd_journal_la_SOURCES = \
+ src/journal/libsystemd-journal.sym \
src/journal/sd-journal.c \
src/systemd/sd-journal.h \
src/systemd/_sd-common.h \
EXTRA_DIST += \
src/journal/libsystemd-journal.pc.in \
- src/journal/libsystemd-journal.sym \
units/systemd-journald.service.in \
units/systemd-journal-flush.service.in \
src/journal/journald-gperf.gperf
systemd_networkd_LDADD = \
libudev-internal.la \
- libsystemd-bus.la \
+ libsystemd-bus-internal.la \
+ libsystemd-id128-internal.la \
libsystemd-rtnl.la \
libsystemd-shared.la
test_network_LDADD = \
libudev-internal.la \
- libsystemd-bus.la \
+ libsystemd-bus-internal.la \
+ libsystemd-id128-internal.la \
libsystemd-rtnl.la \
libsystemd-shared.la
test-login-shared
libsystemd_login_la_SOURCES = \
+ src/login/libsystemd-login.sym \
src/login/sd-login.c \
src/systemd/sd-login.h \
src/login/login-shared.c \
EXTRA_DIST += \
src/login/logind-gperf.gperf \
src/login/libsystemd-login.pc.in \
- src/login/libsystemd-login.sym \
src/login/71-seat.rules.in \
src/login/73-seat-late.rules.in \
units/systemd-logind.service.in \
# Let's run all tests of the test suite, but under valgrind. Let's
# exclude the one perl script we have in there
valgrind-tests: $(TESTS)
- for f in $(TESTS) ; do \
- [ "$$f" == "$${f/.pl/}" ] && libtool --mode=execute valgrind --leak-check=full --error-exitcode=55 $(builddir)/$$f ; \
+ $(AM_V_GEN)for f in $(filter-out %.pl, $^); do \
+ echo "Running $$f"; \
+ libtool --mode=execute valgrind -q --leak-check=full --max-stackframe=4194400 --error-exitcode=55 $(builddir)/$$f ; \
done
-exported: $(lib_LTLIBRARIES)
- $(AM_V_GEN)for f in $(lib_LTLIBRARIES) ; do \
- nm -g --defined-only $(builddir)/.libs/"$${f/.la/.so}" 2>&1 /dev/null | grep " T " | cut -d" " -f3 ; \
- done > $@
+exported-%: %
+ $(AM_V_GEN)nm -g --defined-only $(builddir)/.libs/$(<:.la=.so) 2>&1 /dev/null | grep " T " | cut -d" " -f3 > $@
+
+exported: $(addprefix exported-, $(lib_LTLIBRARIES))
+ $(AM_V_GEN)cat $^ > $@
check-api-docs: exported man
- for symbol in `cat exported` ; do \
+ $(AM_V_GEN)for symbol in `cat exported` ; do \
if test -f $(builddir)/man/$$symbol.html ; then \
echo " Symbol $$symbol() is documented." ; \
else \
echo "‣ Symbol $$symbol() lacks documentation." ; \
fi ; \
- done
+ done
OBJECT_VARIABLES:=$(filter %_OBJECTS,$(.VARIABLES))
ALL_OBJECTS:=$(foreach v,$(OBJECT_VARIABLES),$($(v)))
check-api-unused: defined undefined exported
( cat exported undefined ) | sort -u | diff -u - defined | grep ^+ | grep -v ^+++ | cut -c2-
+
+# Stupid test that everything purported to be exported really is
+
+define generate-sym-test
+ $(AM_V_at)$(MKDIR_P) $(dir $@)
+ $(AM_V_at)printf '#include <stdio.h>\n' > $@
+ $(AM_V_at)printf '#include "%s"\n' $(notdir $(filter %.h, $^)) >> $@
+ $(AM_V_at)printf 'void* functions[] = {\n' >> $@
+ $(AM_V_GEN)sed -r -n 's/^ +([a-zA-Z0-9_]+);/\1,/p' $< >> $@
+ $(AM_V_at)printf '};\nint main(void) {\n' >> $@
+ $(AM_V_at)printf 'unsigned i; for (i=0;i<sizeof(functions)/sizeof(void*);i++) printf("%%p\\n", functions[i]);\n' >> $@
+ $(AM_V_at)printf 'return 0; }\n' >> $@
+endef
+
+test-libsystemd-bus-sym.c: \
+ src/libsystemd-bus/libsystemd-bus.sym \
+ src/systemd/sd-bus.h \
+ src/systemd/sd-utf8.h \
+ Makefile
+ $(generate-sym-test)
+
+test-libsystemd-daemon-sym.c: \
+ src/libsystemd-daemon/libsystemd-daemon.sym \
+ src/systemd/sd-daemon.h \
+ Makefile
+ $(generate-sym-test)
+
+test-libsystemd-id128-sym.c: \
+ src/libsystemd-id128/libsystemd-id128.sym \
+ src/systemd/sd-id128.h \
+ Makefile
+ $(generate-sym-test)
+
+test-libsystemd-journal-sym.c: \
+ src/journal/libsystemd-journal.sym \
+ src/systemd/sd-journal.h \
+ Makefile
+ $(generate-sym-test)
+
+test-libsystemd-login-sym.c: \
+ src/login/libsystemd-login.sym \
+ src/systemd/sd-login.h \
+ Makefile
+ $(generate-sym-test)
+
+test-libudev-sym.c: \
+ src/libudev/libudev.sym \
+ src/udev/udev.h \
+ Makefile
+ $(generate-sym-test)
+
+test_libsystemd_bus_sym_SOURCES = \
+ test-libsystemd-bus-sym.c
+test_libsystemd_bus_sym_LDADD = \
+ libsystemd-bus.la
+
+test_libsystemd_daemon_sym_SOURCES = \
+ test-libsystemd-daemon-sym.c
+test_libsystemd_daemon_sym_LDADD = \
+ libsystemd-daemon.la
+
+test_libsystemd_id128_sym_SOURCES = \
+ test-libsystemd-id128-sym.c
+test_libsystemd_id128_sym_LDADD = \
+ libsystemd-id128.la
+
+test_libsystemd_journal_sym_SOURCES = \
+ test-libsystemd-journal-sym.c
+test_libsystemd_journal_sym_LDADD = \
+ libsystemd-journal.la
+
+test_libsystemd_login_sym_SOURCES = \
+ test-libsystemd-login-sym.c
+test_libsystemd_login_sym_LDADD = \
+ libsystemd-login.la
+
+test_libudev_sym_SOURCES = \
+ test-libudev-sym.c
+test_libudev_sym_LDADD = \
+ libudev.la
+
+BUILT_SOURCES += \
+ $(test_libsystemd_bus_sym_SOURCES) \
+ $(test_libsystemd_daemon_sym_SOURCES) \
+ $(test_libsystemd_id128_sym_SOURCES) \
+ $(test_libsystemd_journal_sym_SOURCES) \
+ $(test_libsystemd_login_sym_SOURCES) \
+ $(test_libudev_sym_SOURCES)
+
+tests += \
+ test-libsystemd-bus-sym \
+ test-libsystemd-daemon-sym \
+ test-libsystemd-id128-sym \
+ test-libsystemd-journal-sym \
+ test-libsystemd-login-sym \
+ test-libudev-sym