my %args = @_;
my $generator = join(" ", @{$args{generator}});
my $incs = join("", map { " -I".$_ } @{$args{incs}});
+ my $deps = join(" ", @{$args{deps}});
if ($args{src} !~ /\.[sS]$/) {
return <<"EOF";
-$args{src}: $args{generator}->[0]
+$args{src}: $args{generator}->[0] $deps
\$(PERL) $generator > \$@
EOF
} else {
if ($args{src} =~ /\.S$/) {
(my $target = $args{src}) =~ s|\.S$|.s|;
return <<"EOF";
-$target: $args{generator}->[0]
+$target: $args{generator}->[0] $deps
( trap "rm -f \$@.*" INT 0; \\
$generator \$@.S; \\
\$(CC) \$(CFLAGS) $incs -E -P \$@.S > \$@.i && mv -f \$@.i \$@ )
}
# Otherwise....
return <<"EOF";
-$args{src}: $args{generator}->[0]
+$args{src}: $args{generator}->[0] $deps
$generator \$@
EOF
}
return <<"EOF";
-$args{src}: $args{generator}->[0]
+$args{src}: $args{generator}->[0] $deps
\$(CC) \$(CFLAGS) $incs -E -P \$< > \$@
EOF
}