diff --git a/src/tools/dbdExpand.pl b/src/tools/dbdExpand.pl index 68e3a0802..32b38bf1e 100755 --- a/src/tools/dbdExpand.pl +++ b/src/tools/dbdExpand.pl @@ -28,28 +28,34 @@ my $dbd = DBD->new(); # Calculate filename for the dependency warning message below my $dep = $opt_o; +my $dot_d = ''; if ($opt_D) { $dep =~ s{\.\./O\.Common/(.*)}{\1\$\(DEP\)}; + $dot_d = '.d'; } else { $dep = "\$(COMMON_DIR)/$dep"; } die "dbdExpand.pl: No input files for $opt_o\n" if !@ARGV; +my $errors = 0; + while (@ARGV) { my $file = shift @ARGV; eval { &ParseDBD($dbd, &Readfile($file, $macros, \@opt_I)); }; if ($@) { - warn "dbdExpand: $@"; - warn " Your Makefile may need this dependency rule:\n" . + warn "dbdExpand.pl: $@"; + warn " while reading '$file' to create '$opt_o$dot_d'\n"; + warn " Your Makefile may need this dependency rule:\n", " $dep: \$(COMMON_DIR)/$file\n" - if $@ =~ m/Can't find file/; + if $@ =~ m/Can't find file '$file'/; + ++$errors; } } -if ($opt_D) { # Output dependencies only +if ($opt_D) { # Output dependencies only, ignore errors my %filecount; my @uniqfiles = grep { not $filecount{$_}++ } @inputfiles; print "$opt_o: ", join(" \\\n ", @uniqfiles), "\n\n"; @@ -57,6 +63,8 @@ if ($opt_D) { # Output dependencies only exit 0; } +die "dbdExpand.pl: Exiting due to errors\n" if $errors; + my $out; if ($opt_o) { open $out, '>', $opt_o or die "Can't create $opt_o: $!\n";