]> git.sesse.net Git - vlc/blobdiff - src/Makefile.am
Add sanity check for public headers
[vlc] / src / Makefile.am
index 876fe1017e9ff09b3335a82830bcd67717796265..861296fdfab2e5407f8665afa60430b3937ed449 100644 (file)
@@ -371,8 +371,15 @@ misc/revision.c:
 ###############################################################################
 # Unit/regression test
 ###############################################################################
-check_PROGRAMS = test_i18n_atof test_url test_utf8 test_control
-dist_check_SCRIPTS = check_symbols
+check_PROGRAMS = \
+       test_i18n_atof \
+       test_url \
+       test_utf8 \
+       test_headers \
+       test_control \
+       $(NULL)
+
+dist_check_SCRIPTS = check_symbols check_headers
 TESTS = $(check_PROGRAMS) $(dist_check_SCRIPTS)
 
 CFLAGS_tests = `$(VLC_CONFIG) --cflags libvlc`
@@ -388,10 +395,24 @@ test_utf8_SOURCES = test/utf8.c
 test_utf8_LDADD = libvlc.la
 test_utf8_CFLAGS = $(CFLAGS_tests)
 
+test_headers_SOURCES = test/headers.c
+test_headers_CFLAGS = $(CFLAGS_tests)
+
 test_control_SOURCES = control/testapi.c
 test_control_LDADD = libvlc-control.la
 test_control_CFLAGS = $(CFLAGS_tests)
 
+check-local:
+       for h in `echo $(dist_pkginclude_HEADERS) $(pkginclude_HEADERS) | sed -e s,\.\./include/,,g`; \
+       do \
+               echo grep - "#include <$$h>" $(srcdir)/test/headers.c ; \
+               if ! grep -- "#include <$$h>" $(srcdir)/test/headers.c ; \
+               then \
+                       echo "Header $$h not included in test/headers.c!"; \
+                       exit 1; \
+               fi ; \
+       done
+
 FORCE:
        @echo "Generated source cannot be phony. Go away." >&2
        @exit 1