# There is NO WARRANTY, to the extent permitted by law.
use strict;
-use List::Compare;
use Getopt::Long;
my $output = undef;
open STDIN, "<", $input or die "$input: $!\n" if (defined $input);
my $printed_header = 0;
-my (%allvars, %sourcevars);
my @cleanfiles;
+# Hashes to record make variables used in the automake source. The allvars
+# hash contains variables actually assigned in the Makefile, sourcevars
+# contains variables used as filenames. Keys are the variable name, and
+# the value is always set to 1.
+my (%allvars, %sourcevars);
+
sub drop {
undef $_;
next;
EOF
print @cleanfiles;
-# Some filenames are AC_SUBSTed by the Gnulib macros, and thus we need to
-# prepend lib/ if and only if they're not empty. Unfortunately, make is not
-# powerful to do this, so we need to put this transformation into configure
-# itself by defining a new autoconf macro.
-
-my $lc = List::Compare->new('-u', '-a', \%sourcevars, \%allvars);
-my @vars = $lc->get_unique;
-
print <<'EOF';
if FALSE
], [dnl M4 code follows
])
EOF
-foreach (@vars) {
- print "$_=\${$_:+lib/\$$_}\n";
+# Some filenames are AC_SUBSTed by the Gnulib macros, and thus we need to
+# prepend lib/ if and only if they're not empty. Unfortunately, make is not
+# powerful to do this, so we need to put this transformation into configure
+# itself by defining a new autoconf macro.
+
+foreach (keys %sourcevars) {
+ print "$_=\${$_:+lib/\$$_}\n" unless $allvars{$_};
}
print <<'EOF';