4bff13985ebdc7e56715b098daca17cb08463d24
[firefly-linux-kernel-4.4.55.git] / scripts / checkincludes.pl
1 #!/usr/bin/perl
2 #
3 # checkincludes: Find files included more than once in (other) files.
4 # Copyright abandoned, 2000, Niels Kristian Bech Jensen <nkbj@image.dk>.
5
6 sub usage {
7         print "Usage: checkincludes.pl <file list>\n";
8         exit 1;
9 }
10
11 if ($#ARGV < 0) {
12         usage();
13 }
14
15 foreach $file (@ARGV) {
16         open(FILE, $file) or die "Cannot open $file: $!.\n";
17
18         my %includedfiles = ();
19
20         while (<FILE>) {
21                 if (m/^\s*#\s*include\s*[<"](\S*)[>"]/o) {
22                         ++$includedfiles{$1};
23                 }
24         }
25
26         close(FILE);
27         
28         foreach $filename (keys %includedfiles) {
29                 if ($includedfiles{$filename} > 1) {
30                         print "$file: $filename is included more than once.\n";
31                 }
32         }
33 }