From: Karel Zak Date: Mon, 10 Feb 2014 09:37:11 +0000 (+0100) Subject: build-sys: add check-includes build target and script X-Git-Tag: v209~206 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=bfb35cfda11d529f02c698e87ae298309a776305 build-sys: add check-includes build target and script --- diff --git a/Makefile.am b/Makefile.am index 4f5e03699..3730e71dc 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 000000000..bf23929d4 --- /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 . + +foreach $file (@ARGV) { + open(FILE, $file) or die "Cannot open $file: $!.\n"; + + my %includedfiles = (); + + while () { + 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); +}