chiark / gitweb /
rtnl: add event loop integration
[elogind.git] / Makefile.am
index 8710462aad9106aa5777881122f6ad93ee8a2bbf..b5a7a7ed54f021ae7bd8e896076b0dd95523cafe 100644 (file)
@@ -646,6 +646,7 @@ test_rtnl_SOURCES = \
 
 test_rtnl_LDADD = \
        libsystemd-rtnl.la \
+       libsystemd-bus.la \
        libsystemd-shared.la
 
 tests += test-rtnl
@@ -1024,6 +1025,7 @@ libsystemd_core_la_LIBADD = \
        libsystemd-daemon-internal.la \
        libudev-internal.la \
        libsystemd-shared.la \
+       libsystemd-rtnl.la \
        $(LIBWRAP_LIBS) \
        $(PAM_LIBS) \
        $(AUDIT_LIBS) \
@@ -1730,6 +1732,10 @@ bootctl_LDADD = \
 
 bin_PROGRAMS += \
        bootctl
+
+dist_zshcompletion_DATA += \
+       shell-completion/zsh/_bootctl
+
 endif
 
 # ------------------------------------------------------------------------------
@@ -1847,7 +1853,8 @@ systemd_nspawn_LDADD = \
        libsystemd-bus-internal.la \
        libsystemd-id128-internal.la \
        libsystemd-daemon-internal.la \
-       libsystemd-shared.la
+       libsystemd-shared.la \
+       libsystemd-rtnl.la
 
 # ------------------------------------------------------------------------------
 systemd_run_SOURCES = \
@@ -1881,6 +1888,7 @@ systemd_tty_ask_password_agent_LDADD = \
 
 # ------------------------------------------------------------------------------
 libsystemd_daemon_la_SOURCES = \
+       src/libsystemd-daemon/libsystemd-daemon.sym \
        src/libsystemd-daemon/sd-daemon.c
 
 libsystemd_daemon_internal_la_SOURCES = \
@@ -1926,11 +1934,11 @@ pkgconfiglib_DATA += \
        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 \
@@ -1991,8 +1999,7 @@ pkgconfiglib_DATA += \
        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
@@ -2220,6 +2227,7 @@ lib_LTLIBRARIES += \
        libudev.la
 
 libudev_la_SOURCES =\
+       src/libudev/libudev.sym \
        src/libudev/libudev-private.h \
        src/libudev/libudev.c \
        src/libudev/libudev-list.c \
@@ -2249,8 +2257,7 @@ pkgconfiglib_DATA += \
        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 \
@@ -2802,6 +2809,7 @@ udevlibexec_PROGRAMS += \
 
 # ------------------------------------------------------------------------------
 libsystemd_id128_la_SOURCES = \
+       src/libsystemd-id128/libsystemd-id128.sym \
        src/libsystemd-id128/sd-id128.c
 
 libsystemd_id128_la_CFLAGS = \
@@ -2814,6 +2822,7 @@ libsystemd_id128_la_LDFLAGS = \
        -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 = \
@@ -2853,8 +2862,7 @@ INSTALL_EXEC_HOOKS += libsystemd-id128-install-hook
 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
 
 # ------------------------------------------------------------------------------
 
@@ -2984,6 +2992,7 @@ test_catalog_LDADD = \
        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 \
@@ -3201,7 +3210,6 @@ SYSINIT_TARGET_WANTS += \
 
 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
@@ -3812,6 +3820,7 @@ EXTRA_DIST += \
 endif
 
 # ------------------------------------------------------------------------------
+if ENABLE_NETWORKD
 rootlibexec_PROGRAMS += \
        systemd-networkd
 
@@ -3863,6 +3872,7 @@ EXTRA_DIST += \
 
 CLEANFILES += \
        src/network/networkd-gperf.c
+endif
 
 # ------------------------------------------------------------------------------
 if ENABLE_LOGIND
@@ -4004,6 +4014,7 @@ tests += \
        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 \
@@ -4139,7 +4150,6 @@ polkitpolicy_in_files += \
 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 \
@@ -4660,23 +4670,25 @@ install-tree: all
 # 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)))
@@ -4692,3 +4704,102 @@ CLEANFILES += \
 
 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)echo '#include <stdio.h>' > $@
+       $(AM_V_at)for file in $(notdir $(filter %.h, $^)); do \
+               echo "#include \"$$file\""; \
+       done >> $@
+       $(AM_V_at)echo 'void* functions[] = {' >> $@
+       $(AM_V_GEN)sed -r -n 's/^( +[a-zA-Z0-9_]+);/\1,/p' $< >> $@
+       $(AM_V_at)echo '};' >> $@
+       $(AM_V_at)echo 'int main(void) {' >> $@
+       $(AM_V_at)echo ' unsigned i; for (i=0;i<sizeof(functions)/sizeof(void*);i++) printf("%p\n", functions[i]);' >> $@
+       $(AM_V_at)echo 'return 0; }' >> $@
+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