diff options
author | Richard Levitte <levitte@openssl.org> | 2018-09-10 02:18:22 +0200 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2018-09-12 01:59:45 +0200 |
commit | 609e4be88e63e489c32438b3b0872fd891829301 (patch) | |
tree | af95fbfe4a0f66b20dea99012f4b48f0533f6c6b | |
parent | d6b345708f8f8a04fdb5ca2e58a953b7fec461e1 (diff) | |
download | openssl-609e4be88e63e489c32438b3b0872fd891829301.zip openssl-609e4be88e63e489c32438b3b0872fd891829301.tar.gz openssl-609e4be88e63e489c32438b3b0872fd891829301.tar.bz2 |
Configure: DON'T trickle down includes from products to sources
Instead, use the include settings from the products later in the process,
making it possible to have different includes for two different libraries
that share the same source code.
Reviewed-by: Paul Dale <paul.dale@oracle.com>
Reviewed-by: Tim Hudson <tjh@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/7159)
-rw-r--r-- | Configurations/common.tmpl | 6 | ||||
-rwxr-xr-x | Configure | 24 |
2 files changed, 7 insertions, 23 deletions
diff --git a/Configurations/common.tmpl b/Configurations/common.tmpl index 180621e..ad67591 100644 --- a/Configurations/common.tmpl +++ b/Configurations/common.tmpl @@ -82,7 +82,8 @@ generator_incs => $unified_info{includes}->{$script}, generator_deps => $unified_info{depends}->{$script}, deps => $unified_info{depends}->{$src}, - incs => $unified_info{includes}->{$obj}, + incs => [ @{$unified_info{includes}->{$obj}}, + @{$unified_info{includes}->{$bin}} ], %opts); foreach (@{$unified_info{depends}->{$src}}) { dogenerate($_, $obj, $bin, %opts); @@ -103,7 +104,8 @@ product => $bin, srcs => $unified_info{sources}->{$obj}, deps => $unified_info{depends}->{$obj}, - incs => $unified_info{includes}->{$obj}, + incs => [ @{$unified_info{includes}->{$obj}}, + @{$unified_info{includes}->{$bin}} ], %opts); foreach ((@{$unified_info{sources}->{$obj}}, @{$unified_info{depends}->{$obj}})) { @@ -2189,26 +2189,6 @@ EOF } } - # Trickle down includes placed on libraries, engines and programs to - # their sources (i.e. object files) - foreach my $dest (keys %{$unified_info{engines}}, - keys %{$unified_info{libraries}}, - keys %{$unified_info{programs}}) { - foreach my $k (("source", "build")) { - next unless defined($unified_info{includes}->{$dest}->{$k}); - my @incs = reverse @{$unified_info{includes}->{$dest}->{$k}}; - foreach my $obj (grep /\.o$/, - (keys %{$unified_info{sources}->{$dest}}, - keys %{$unified_info{shared_sources}->{$dest}})) { - foreach my $inc (@incs) { - unshift @{$unified_info{includes}->{$obj}->{$k}}, $inc - unless grep { $_ eq $inc } @{$unified_info{includes}->{$obj}->{$k}}; - } - } - } - delete $unified_info{includes}->{$dest}; - } - ### Make unified_info a bit more efficient # One level structures foreach (("programs", "libraries", "engines", "scripts", "extra", "overrides")) { @@ -2233,9 +2213,11 @@ EOF push @{$unified_info{includes}->{$dest}}, $inc unless grep { $_ eq $inc } @{$unified_info{includes}->{$dest}}; } - } else { + } elsif (defined($unified_info{includes}->{$dest}->{source})) { $unified_info{includes}->{$dest} = [ @{$unified_info{includes}->{$dest}->{source}} ]; + } else { + delete $unified_info{includes}->{$dest}; } } } |