diff options
author | Karel Zak <kzak@redhat.com> | 2014-02-10 10:37:11 +0100 |
---|---|---|
committer | Tom Gundersen <teg@jklm.no> | 2014-02-10 13:00:19 +0100 |
commit | bfb35cfda11d529f02c698e87ae298309a776305 (patch) | |
tree | 9751c81ae67d521dd767c74b96979e5cf72e34be | |
parent | 63a1b905d83b8d223f78822122c71860c1b613d1 (diff) |
build-sys: add check-includes build target and script
-rw-r--r-- | Makefile.am | 8 | ||||
-rwxr-xr-x | tools/check-includes.pl | 23 |
2 files changed, 31 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am index 4f5e036990..3730e71dc2 100644 --- a/Makefile.am +++ b/Makefile.am @@ -4936,6 +4936,14 @@ CLEANFILES += \ check-api-unused: defined undefined exported ( cat exported undefined ) | sort -u | diff -u - defined | grep ^+ | grep -v ^+++ | cut -c2- +.PHONY: check-includes +check-includes: $(top_srcdir)/tools/check-includes.pl + $(AM_V_GEN) find * -name '*.[hcS]' -type f -print | sort -u \ + | xargs $(top_srcdir)/tools/check-includes.pl + +EXTRA_DIST += \ + $(top_srcdir)/tools/check-includes.pl + # Stupid test that everything purported to be exported really is define generate-sym-test diff --git a/tools/check-includes.pl b/tools/check-includes.pl new file mode 100755 index 0000000000..bf23929d47 --- /dev/null +++ b/tools/check-includes.pl @@ -0,0 +1,23 @@ +#!/usr/bin/perl +# +# checkincludes: Find files included more than once in (other) files. +# Copyright abandoned, 2000, Niels Kristian Bech Jensen <nkbj@image.dk>. + +foreach $file (@ARGV) { + open(FILE, $file) or die "Cannot open $file: $!.\n"; + + my %includedfiles = (); + + while (<FILE>) { + if (m/^\s*#\s*include\s*[<"](\S*)[>"]/o) { + ++$includedfiles{$1}; + } + } + foreach $filename (keys %includedfiles) { + if ($includedfiles{$filename} > 1) { + print "$file: $filename is included more than once.\n"; + } + } + + close(FILE); +} |