From bfb35cfda11d529f02c698e87ae298309a776305 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Mon, 10 Feb 2014 10:37:11 +0100 Subject: [PATCH 1/1] build-sys: add check-includes build target and script --- Makefile.am | 8 ++++++++ tools/check-includes.pl | 23 +++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100755 tools/check-includes.pl 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); +} -- 2.30.2