summaryrefslogtreecommitdiff
path: root/source4/script/find_unused_makefilevars.pl
diff options
context:
space:
mode:
Diffstat (limited to 'source4/script/find_unused_makefilevars.pl')
-rwxr-xr-xsource4/script/find_unused_makefilevars.pl45
1 files changed, 45 insertions, 0 deletions
diff --git a/source4/script/find_unused_makefilevars.pl b/source4/script/find_unused_makefilevars.pl
new file mode 100755
index 0000000000..697ed54f5c
--- /dev/null
+++ b/source4/script/find_unused_makefilevars.pl
@@ -0,0 +1,45 @@
+#!/usr/bin/perl
+# Script that reads in Makefile.in and outputs the names of all
+# used but undefined vars and all defined but unused vars
+
+# Arguments:
+# 1: Makefile.in
+#
+
+my %references;
+my %defines;
+
+# First, make a list of defines in configure
+$in = shift;
+
+open(IN, $in);
+while(<IN>) {
+ my $line = $_;
+ while($line =~ /^\b([a-zA-Z0-9_][a-zA-Z0-9_]*)\b[ \t]*=.*/sgm) {
+ $defines{$1} = 1;
+ }
+ while($line =~ /\$\(([a-zA-Z0-9_][a-zA-Z0-9_]*)\)/sgm) {
+ $references{$1} = 1;
+ }
+}
+close IN;
+
+print "##### DEFINED BUT UNUSED: #####\n";
+foreach(%defines) {
+# print $_." defined\n";
+
+ if ($_ != 1) {
+ if ($references{$_} != 1) {
+ print $_."\n";
+ }
+ }
+}
+
+print "##### USED BUT UNDEFINED: #####\n";
+foreach(%references) {
+ if ($_ != 1) {
+ if ($defines{$_} != 1) {
+ print $_."\n";
+ }
+ }
+}