summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Configurations/gentemplate.pm7
-rwxr-xr-xConfigure9
-rw-r--r--build.info5
3 files changed, 17 insertions, 4 deletions
diff --git a/Configurations/gentemplate.pm b/Configurations/gentemplate.pm
index a02b19a688..4bf19af9c2 100644
--- a/Configurations/gentemplate.pm
+++ b/Configurations/gentemplate.pm
@@ -56,7 +56,8 @@ sub emit {
my $fh = $self->{output};
die "No name?" unless $name;
- print $fh "{-\n ", $name, '(', dump_data(\%opts), ');', " \n-}";
+ print $fh "{-\n ", $name, '(', dump_data(\%opts), ');', " \n-}"
+ unless defined $opts{attrs}->{skip};
}
my $debug_resolvedepends = $ENV{BUILDFILE_DEBUG_DEPENDS};
@@ -200,7 +201,7 @@ sub dogenerate {
my $self = shift;
my $src = shift;
# Safety measure
- return "" unless defined $self->{info}->{generate}->{$_};
+ return "" unless defined $self->{info}->{generate}->{$src};
return "" if $cache{$src};
my $obj = shift;
my $bin = shift;
@@ -209,6 +210,7 @@ sub dogenerate {
die "$src is generated by Configure, should not appear in build file\n"
if ref $self->{info}->{generate}->{$src} eq "";
my $script = $self->{info}->{generate}->{$src}->[0];
+ my %attrs = %{$self->{info}->{attributes}->{generate}->{$src} // {}};
$self->emit('generatesrc',
src => $src,
product => $bin,
@@ -220,6 +222,7 @@ sub dogenerate {
defined $bin ? @{$self->{info}->{includes}->{$bin} // []} : () ],
defs => [ defined $obj ? @{$self->{info}->{defines}->{$obj} // []} : (),
defined $bin ? @{$self->{info}->{defines}->{$bin} // []} : () ],
+ attrs => { %attrs },
%opts);
foreach (@{$self->{info}->{depends}->{$src} // []}) {
$self->dogenerate($_, $obj, $bin, %opts);
diff --git a/Configure b/Configure
index 1992f907aa..ce0fcb6e51 100755
--- a/Configure
+++ b/Configure
@@ -2202,9 +2202,10 @@ if ($builder eq "unified") {
\$attributes{depends}, $+{ATTRIBS},
tokenize($expand_variables->($+{VALUE})))
if !@skip || $skip[$#skip] > 0; },
- qr/^\s* GENERATE ${index_re} \s* = \s* ${value_re} \s* $/x
+ qr/^\s* GENERATE ${index_re} ${attribs_re} \s* = \s* ${value_re} \s* $/x
=> sub { $push_to->(\%generate, $expand_variables->($+{INDEX}),
- undef, undef, $expand_variables->($+{VALUE}))
+ \$attributes{generate}, $+{ATTRIBS},
+ $expand_variables->($+{VALUE}))
if !@skip || $skip[$#skip] > 0; },
qr/^\s* (?:\#.*)? $/x => sub { },
"OTHERWISE" => sub { die "Something wrong with this line:\n$_\nat $sourced/$f" },
@@ -2372,6 +2373,10 @@ EOF
$check_generate{$ddest}->{$generator[0]}++;
$unified_info{generate}->{$ddest} = [ @generator ];
+ # Fix up associated attributes
+ $unified_info{attributes}->{generate}->{$ddest} =
+ $attributes{generate}->{$dest}->{$gen}
+ if defined $attributes{generate}->{$dest}->{$gen};
}
foreach (keys %depends) {
diff --git a/build.info b/build.info
index 881dc907b5..76284cb70f 100644
--- a/build.info
+++ b/build.info
@@ -22,6 +22,7 @@ DEPEND[]=include/openssl/asn1.h \
include/openssl/cmp.h \
include/openssl/cms.h \
include/openssl/conf.h \
+ include/openssl/configuration.h \
include/openssl/crmf.h \
include/openssl/crypto.h \
include/openssl/ct.h \
@@ -48,6 +49,10 @@ GENERATE[include/openssl/bio.h]=include/openssl/bio.h.in
GENERATE[include/openssl/cmp.h]=include/openssl/cmp.h.in
GENERATE[include/openssl/cms.h]=include/openssl/cms.h.in
GENERATE[include/openssl/conf.h]=include/openssl/conf.h.in
+# include/openssl/configuration.h is generated by configdata.pm
+# We still need this information for the FIPS module checksum, but the attribute
+# 'skip' ensures that nothing is actually done with it.
+GENERATE[include/openssl/configuration.h]{skip}=include/openssl/configuration.h.in
GENERATE[include/openssl/crmf.h]=include/openssl/crmf.h.in
GENERATE[include/openssl/crypto.h]=include/openssl/crypto.h.in
GENERATE[include/openssl/ct.h]=include/openssl/ct.h.in