From 44e293d65c78b8a97c22be4e94657bd5fb2b9bfd Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Wed, 26 Nov 2008 12:42:35 +0100 Subject: [PATCH] tools: add checkincludes.pl (from linux kernel) Signed-off-by: Karel Zak --- Makefile.am | 11 +++++++++++ tools/checkincludes.pl | 24 ++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100755 tools/checkincludes.pl diff --git a/Makefile.am b/Makefile.am index b78e8a77..fefff76f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -14,6 +14,10 @@ SUBDIRS = \ text-utils \ tests + +RCS_FIND_IGNORE := \( -name SCCS -o -name BitKeeper -o -name .svn -o \ + -name CVS -o -name .pc -o -name .hg -o -name .git \) -prune -o + if LINUX SUBDIRS += \ hwclock \ @@ -42,6 +46,13 @@ distclean-local: -find . -name \*~ -o -name \*.orig -o -name \*.rej | xargs rm -f rm -rf autom4te.cache + +checkincludes: + -find * $(RCS_FIND_IGNORE) \ + -name '*.[hcS]' -type f -print | sort -u \ + | xargs $(top_srcdir)/tools/checkincludes.pl + + ENABLE_ALL = --enable-static-programs \ --enable-elvtune --enable-init --enable-kill --enable-last \ --enable-mesg --enable-partx --enable-raw --enable-rdev --enable-reset \ diff --git a/tools/checkincludes.pl b/tools/checkincludes.pl new file mode 100755 index 00000000..8e6b716c --- /dev/null +++ b/tools/checkincludes.pl @@ -0,0 +1,24 @@ +#!/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); +} -- 2.39.5