summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Configurations/README8
-rw-r--r--Configurations/common.tmpl1
-rw-r--r--Configurations/descrip.mms.tmpl3
-rw-r--r--Configurations/unix-Makefile.tmpl5
4 files changed, 11 insertions, 6 deletions
diff --git a/Configurations/README b/Configurations/README
index b67506a590..89fc65ca21 100644
--- a/Configurations/README
+++ b/Configurations/README
@@ -488,6 +488,7 @@ They are all expected to return a string with the lines they produce.
src2dep(obj => "PATH/TO/objectfile",
srcs => [ "PATH/TO/sourcefile", ... ],
+ deps => [ "dep1", ... ],
incs => [ "INCL/PATH", ... ]);
'obj' has the dependent object file as well as
@@ -496,7 +497,8 @@ They are all expected to return a string with the lines they produce.
'srcs' has the list of source files to build the
object file, with the first item being the source
file that directly corresponds to the object file.
- 'incs' is a list of include file directories.
+ 'deps' is a list of explicit dependencies. 'incs'
+ is a list of include file directories.
src2obj - function that produces build file lines to build an
object file from source files and associated data.
@@ -513,8 +515,8 @@ They are all expected to return a string with the lines they produce.
'srcs' has the list of source files to build the
object file, with the first item being the source
file that directly corresponds to the object file.
- 'deps' is a list of dependencies. 'incs' is a list
- of include file directories.
+ 'deps' is a list of explicit dependencies. 'incs'
+ is a list of include file directories.
obj2lib - function that produces build file lines to build a
static library file ("libfoo.a" in Unix terms) from
diff --git a/Configurations/common.tmpl b/Configurations/common.tmpl
index a750e21a33..3bd73241a4 100644
--- a/Configurations/common.tmpl
+++ b/Configurations/common.tmpl
@@ -45,6 +45,7 @@
@{$unified_info{includes}->{$obj}} ]);
$OUT .= src2dep(obj => $obj_no_o,
srcs => $unified_info{sources}->{$obj},
+ deps => [ reducedepends(resolvedepends($obj)) ],
incs => [ @{$unified_info{includes}->{$bin}},
@{$unified_info{includes}->{$obj}} ]);
}
diff --git a/Configurations/descrip.mms.tmpl b/Configurations/descrip.mms.tmpl
index 4732782072..ef745edc1e 100644
--- a/Configurations/descrip.mms.tmpl
+++ b/Configurations/descrip.mms.tmpl
@@ -408,6 +408,7 @@ descrip.mms : {- sourcefile("Configurations", "descrip.mms.tmpl") -} $(SRCDIR)Co
sub src2dep {
my %args = @_;
my $dep = $args{obj};
+ my $deps = join(", -\n\t\t", @{$args{srcs}}, @{$args{deps}});
# Because VMS C isn't very good at combining a /INCLUDE path with
# #includes having a relative directory (like '#include "../foo.h"),
@@ -432,7 +433,7 @@ descrip.mms : {- sourcefile("Configurations", "descrip.mms.tmpl") -} $(SRCDIR)Co
my $after = $unified_info{after}->{$dep.".OBJ"} || "\@ !";
return <<"EOF";
-$dep.MMS : $srcs
+$dep.MMS : $deps
${before}
SET DEFAULT $forward
\$(CC) \$(CFLAGS)${incs} /MMS=(TARGET=.OBJ)/OBJECT=${depd}${depn}.MMS $srcs
diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl
index e013f1577b..1db92a8c00 100644
--- a/Configurations/unix-Makefile.tmpl
+++ b/Configurations/unix-Makefile.tmpl
@@ -708,11 +708,12 @@ Makefile: {- $config{build_file_template} -} $(SRCDIR)/Configure $(SRCDIR)/confi
my $dep = $args{obj}.'$(DEP_EXT)';
my $obj = $args{obj}.'$(OBJ_EXT)';
my $srcs = join(" ", @{$args{srcs}});
+ my $deps = join(" ", @{$args{srcs}}, @{$args{deps}});
my $incs = join(" ", map { " -I".$_ } @{$args{incs}});
my $makedepprog = $config{makedepprog};
if ($makedepprog eq "makedepend") {
return <<"EOF";
-$dep : $srcs
+$dep : $deps
rm -f \$\@.tmp; touch \$\@.tmp
\$(MAKEDEPEND) -f\$\@.tmp -o"|$obj"\
-- -DOPENSSL_DOING_MAKEDEPEND \$(DEPFLAGS)$incs \
@@ -722,7 +723,7 @@ $dep : $srcs
EOF
}
return <<"EOF";
-$dep : $srcs Makefile
+$dep : $deps Makefile
\$(CC) -DOPENSSL_DOING_MAKEDEPEND \$(DEPFLAGS)$incs -MM -MF \$\@ -MQ $obj $srcs
EOF
}