+
+ifneq "$(headers)" ""
+# Test that all of the headers installed by this directory can be compiled
+# in isolation.
+tests-special += $(objpfx)check-installed-headers-c.out
+libof-check-installed-headers-c := testsuite
+$(objpfx)check-installed-headers-c.out: \
+ $(..)scripts/check-installed-headers.sh $(headers)
+ $(SHELL) $(..)scripts/check-installed-headers.sh c \
+ "$(CC) $(filter-out -std=%,$(CFLAGS)) -D_ISOMAC $(+includes)" \
+ $(headers) > $@; \
+ $(evaluate-test)
+
+ifneq "$(CXX)" ""
+# If a C++ compiler is available, also test that they can be compiled
+# in isolation as C++.
+tests-special += $(objpfx)check-installed-headers-cxx.out
+libof-check-installed-headers-cxx := testsuite
+$(objpfx)check-installed-headers-cxx.out: \
+ $(..)scripts/check-installed-headers.sh $(headers)
+ $(SHELL) $(..)scripts/check-installed-headers.sh c++ \
+ "$(CXX) $(filter-out -std=%,$(CXXFLAGS)) -D_ISOMAC $(+includes)" \
+ $(headers) > $@; \
+ $(evaluate-test)
+endif # $(CXX)
+
+# Test that a wrapper header exists in include/ for each non-sysdeps header.
+# This script does not need $(py-env).
+tests-special += $(objpfx)check-wrapper-headers.out
+$(objpfx)check-wrapper-headers.out: \
+ $(..)scripts/check-wrapper-headers.py $(headers)
+ $(PYTHON) $< --root=$(..) --subdir=$(subdir) $(headers) > $@; \
+ $(evaluate-test)
+
+# Test that none of the headers installed by this directory use certain
+# obsolete constructs (e.g. legacy BSD typedefs superseded by stdint.h).
+# This script does not need $(py-env).
+tests-special += $(objpfx)check-obsolete-constructs.out
+libof-check-obsolete-constructs := testsuite
+$(objpfx)check-obsolete-constructs.out: \
+ $(..)scripts/check-obsolete-constructs.py $(headers)
+ $(PYTHON) $^ > $@ 2>&1; \
+ $(evaluate-test)
+
+endif # $(headers)