summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rwxr-xr-xtools/mkdep.pl16
1 files changed, 8 insertions, 8 deletions
diff --git a/tools/mkdep.pl b/tools/mkdep.pl
index e84cc358..8c89f39a 100755
--- a/tools/mkdep.pl
+++ b/tools/mkdep.pl
@@ -51,6 +51,9 @@ $barrier = "#-- Everything below is generated by mkdep.pl - do not edit --#\n";
# This converts from filenames to full pathnames for our dependencies
%dep_path = {};
+# List of files that cannot be found; these *must* be excluded
+@must_exclude = ();
+
#
# Scan files for dependencies
#
@@ -70,7 +73,8 @@ sub scandeps($) {
if ( $line =~ /^\s*\#\s*include\s+\"(.*)\"\s*$/ ) {
my $nf = $1;
if (!defined($dep_path{$nf})) {
- die "$0: cannot determine path for dependency: $file -> $nf\n";
+ push(@must_exclude, $nf);
+ next;
}
$nf = $dep_path{$nf};
$mdeps{$nf}++;
@@ -138,7 +142,7 @@ sub _insert_deps($$) {
my $selfrule = 0;
my $do_external = 0;
my $maxline = 78; # Seems like a reasonable default
- my @exclude = (); # Don't exclude anything
+ my %exclude = (); # Don't exclude anything
my @genhdrs = ();
my $external = undef;
my $raw_output = 0;
@@ -165,7 +169,7 @@ sub _insert_deps($$) {
} elsif ( $parm eq 'continuation' ) {
$cont = $val;
} elsif ( $parm eq 'exclude' ) {
- @exclude = split(/\,/, $val);
+ $excludes{$val}++;
} elsif ( $parm eq 'include-command' ) {
$include_command = $val;
} elsif ( $parm eq 'external' ) {
@@ -201,10 +205,6 @@ sub _insert_deps($$) {
}
my $e;
- my %do_exclude = ();
- foreach $e (@exclude) {
- $do_exclude{$e} = 1;
- }
foreach my $dfile ($external, sort(keys(%deps)) ) {
my $ofile;
@@ -222,7 +222,7 @@ sub _insert_deps($$) {
my $len = length($ofile);
print $out $ofile;
foreach my $dep (@deps) {
- unless ($do_exclude{$dep}) {
+ unless ($excludes{$dep}) {
my $str = convert_file($dep, $sep);
my $sl = length($str)+1;
if ( $len+$sl > $maxline-2 ) {