chiark / gitweb /
build-sys: add make check-api-unused
authorLennart Poettering <lennart@poettering.net>
Fri, 8 Nov 2013 15:52:42 +0000 (16:52 +0100)
committerLennart Poettering <lennart@poettering.net>
Fri, 8 Nov 2013 15:53:29 +0000 (16:53 +0100)
Makefile.am

index 53685c11c23df7843040efa07b5c24c5c5214483..a67f18b77a5eeb574bcb5dd9633ff0076f0d703d 100644 (file)
@@ -4578,3 +4578,23 @@ check-api-docs: $(lib_LTLIBRARIES) man
                        echo "‣ Symbol $$symbol() lacks documentation." ; \
                fi ; \
         done
+
+OBJECT_VARIABLES:=$(filter %_OBJECTS,$(.VARIABLES))
+ALL_OBJECTS:=$(foreach v,$(OBJECT_VARIABLES),$($(v)))
+
+defined: $(ALL_OBJECTS)
+       $(AM_V_GEN)for f in $(ALL_OBJECTS) ; do \
+               nm -g --undefined-only `echo $(builddir)/"$$f" | sed -e 's,\([^/]*\).lo$$,.libs/\1.o,'` ; \
+       done | cut -c 20- | cut -d @ -f 1 | sort -u > $(builddir)/undefined
+
+undefined:
+       $(AM_V_GEN)for f in $(ALL_OBJECTS) ; do \
+               nm -g --defined-only `echo $(builddir)/"$$f" | sed -e 's,\([^/]*\).lo$$,.libs/\1.o,'` ; \
+       done | cut -c 20- | cut -d @ -f 1 | sort -u > $(builddir)/defined
+
+CLEANFILES += \
+       defined \
+       undefined
+
+check-api-unused: defined undefined
+       diff -u undefined defined | grep ^+ | grep -v ^+++ | cut -c2-