sub generatesrc {
my %args = @_;
my $generator = join(" ", @{$args{generator}});
+ my $deps = join(", -\n\t\t", @{$args{deps}});
if ($args{src} !~ /\.[sS]$/) {
return <<"EOF";
-$args{src} : $args{generator}->[0]
+$args{src} : $args{generator}->[0] $deps
\$(PERL) $generator > \$@
EOF
} else {
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
}
(my $target = $args{src}) =~ s/\.[sS]$/.asm/;
my $generator = join(" ", @{$args{generator}});
my $incs = join("", map { " /I ".$_ } @{$args{incs}});
+ my $deps = join(" ", @{$args{deps}});
if ($target !~ /\.asm$/) {
return <<"EOF";
-$target: $args{generator}->[0]
+$target: $args{generator}->[0] $deps
\$(PERL) $generator > \$@
EOF
} else {
# end up generating foo.s in two steps.
if ($args{src} =~ /\.S$/) {
return <<"EOF";
-$target: $args{generator}->[0]
+$target: $args{generator}->[0] $deps
set ASM=\$(AS)
set CC=\$(CC)
$generator \$@.S
}
# Otherwise....
return <<"EOF";
-$target: $args{generator}->[0]
+$target: $args{generator}->[0] $deps
set ASM=\$(AS)
set CC=\$(CC)
$generator \$@
EOF
}
return <<"EOF";
-$target: $args{generator}->[0]
+$target: $args{generator}->[0] $deps
\$(CC) \$(CFLAGS) $incs /EP /C \$< > \$@
EOF
}