mirror of
https://github.com/openssl/openssl.git
synced 2025-01-18 13:44:20 +08:00
Unified build - fix make depend
There was a catch 22, where 'make depend' directly after configuring in an otherwise pristine build tree would fail because buildinf.h didn't exist yet. This change has the depend building targets depend on the same other targets as the object file building targets, so the generation of buildinf.h and similar files would kick in during 'make depend'. Reviewed-by: Rich Salz <rsalz@openssl.org>
This commit is contained in:
parent
82049c543c
commit
50e83cdde6
@ -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
|
||||
|
@ -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}} ]);
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user