chiark / gitweb /
build-sys: simplify defined/undefined definition
[elogind.git] / Makefile.am
index ccecc3ec17ed16c995b1ff74bfd2c3139e84ced3..ae927af907a5816c24cc10e442c20d48927d9128 100644 (file)
@@ -177,6 +177,7 @@ AM_CPPFLAGS = \
        -DKEXEC=\"$(KEXEC)\" \
        -I $(top_srcdir)/src \
        -I $(top_srcdir)/src/shared \
+       -I $(top_srcdir)/src/network \
        -I $(top_srcdir)/src/login \
        -I $(top_srcdir)/src/journal \
        -I $(top_srcdir)/src/systemd \
@@ -1506,7 +1507,7 @@ systemd_shutdownd_LDADD = \
        libsystemd-daemon-internal.la \
        libsystemd-shared.la
 
-pkginclude_HEADERS += \
+dist_doc_DATA += \
        src/systemd/sd-shutdown.h
 
 # ------------------------------------------------------------------------------
@@ -1783,14 +1784,10 @@ systemd_cgroups_agent_LDADD = \
 systemctl_SOURCES = \
        src/systemctl/systemctl.c
 
-systemctl_CFLAGS = \
-       $(AM_CFLAGS) \
-       $(DBUS_CFLAGS)
-
 systemctl_LDADD = \
        libsystemd-units.la \
        libsystemd-label.la \
-       libsystemd-dbus.la \
+       libsystemd-bus-internal.la \
        libsystemd-logs.la \
        libsystemd-login-internal.la \
        libsystemd-journal-internal.la \
@@ -2024,7 +2021,7 @@ tests += \
        test-bus-objects \
        test-event
 
-noinst_PROGRAMS += \
+bin_PROGRAMS += \
        busctl
 
 test_bus_marshal_SOURCES = \
@@ -3774,6 +3771,59 @@ EXTRA_DIST += \
 
 endif
 
+# ------------------------------------------------------------------------------
+rootlibexec_PROGRAMS += \
+       systemd-networkd
+
+systemd_networkd_SOURCES = \
+       src/network/networkd.h \
+       src/network/networkd.c \
+       src/network/networkd-link.c \
+       src/network/networkd-network.c \
+       src/network/networkd-address.c \
+       src/network/networkd-route.c \
+       src/network/networkd-manager.c
+
+nodist_systemd_networkd_SOURCES = \
+       src/network/networkd-gperf.c
+
+systemd_networkd_LDADD = \
+       libudev-internal.la \
+       libsystemd-bus.la \
+       libsystemd-rtnl.la \
+       libsystemd-shared.la
+
+nodist_systemunit_DATA += \
+       units/systemd-networkd.service
+
+MULTI_USER_TARGET_WANTS += \
+       systemd-networkd.service
+
+test_network_SOURCES = \
+       src/network/test-network.c \
+       src/network/networkd.h \
+       src/network/networkd-link.c \
+       src/network/networkd-network.c \
+       src/network/networkd-address.c \
+       src/network/networkd-route.c \
+       src/network/networkd-manager.c \
+       src/network/networkd-gperf.c
+
+test_network_LDADD = \
+       libudev-internal.la \
+       libsystemd-bus.la \
+       libsystemd-rtnl.la \
+       libsystemd-shared.la
+
+tests += test-network
+
+EXTRA_DIST += \
+       src/network/networkd-gperf.gperf \
+       units/systemd-networkd.service.in
+
+CLEANFILES += \
+       src/network/networkd-gperf.c
+
 # ------------------------------------------------------------------------------
 if ENABLE_LOGIND
 systemd_logind_SOURCES = \
@@ -3847,14 +3897,12 @@ loginctl_SOURCES = \
        src/login/loginctl.c \
        src/login/sysfs-show.c
 
-loginctl_CFLAGS = \
-       $(AM_CFLAGS) \
-       $(DBUS_CFLAGS)
-
 loginctl_LDADD = \
-       libsystemd-dbus.la \
+       libsystemd-bus-internal.la \
        libudev-internal.la \
-       libsystemd-shared.la
+       libsystemd-shared.la \
+       libsystemd-id128-internal.la \
+       libsystemd-daemon-internal.la
 
 rootbin_PROGRAMS += \
        loginctl
@@ -4572,4 +4620,30 @@ 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 ; done
+       for f in $(TESTS) ; do \
+               [ "$$f" == "$${f/.pl/}" ] && libtool --mode=execute valgrind --leak-check=full --error-exitcode=55 $(builddir)/$$f ; \
+       done
+
+check-api-docs: $(lib_LTLIBRARIES) man
+       for symbol in `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` ; do \
+               if test -f $(builddir)/man/$$symbol.html ; then \
+                       echo "  Symbol $$symbol() is documented." ; \
+               else \
+                       echo "‣ Symbol $$symbol() lacks documentation." ; \
+               fi ; \
+        done
+
+OBJECT_VARIABLES:=$(filter %_OBJECTS,$(.VARIABLES))
+ALL_OBJECTS:=$(foreach v,$(OBJECT_VARIABLES),$($(v)))
+
+undefined defined: $(ALL_OBJECTS)
+       $(AM_V_GEN)for f in $(ALL_OBJECTS) ; do \
+               nm -g --$@-only `echo $(builddir)/"$$f" | sed -e 's,\([^/]*\).lo$$,.libs/\1.o,'` ; \
+       done | cut -c 20- | cut -d @ -f 1 | sort -u > $@
+
+CLEANFILES += \
+       defined \
+       undefined
+
+check-api-unused: defined undefined
+       diff -u undefined defined | grep ^+ | grep -v ^+++ | cut -c2-