mirror of
https://github.com/openssl/openssl.git
synced 2025-01-24 13:55:42 +08:00
Move the display of disabled features to configdata.pm as well.
The additional possibility is: perl configdata.pm --options Display the features, both enabled and disabled, and display defined macro and skipped directories where applicable. Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5185)
This commit is contained in:
parent
f9856cc5b4
commit
ca3724142a
156
Configure
156
Configure
@ -1024,68 +1024,6 @@ foreach my $feature (@{$target{enable}}) {
|
||||
}
|
||||
}
|
||||
|
||||
foreach (sort (keys %disabled))
|
||||
{
|
||||
$config{options} .= " no-$_";
|
||||
|
||||
printf " no-%-12s %-10s", $_, "[$disabled{$_}]";
|
||||
|
||||
if (/^dso$/)
|
||||
{ }
|
||||
elsif (/^threads$/)
|
||||
{ }
|
||||
elsif (/^shared$/)
|
||||
{ }
|
||||
elsif (/^pic$/)
|
||||
{ }
|
||||
elsif (/^zlib$/)
|
||||
{ }
|
||||
elsif (/^dynamic-engine$/)
|
||||
{ }
|
||||
elsif (/^makedepend$/)
|
||||
{ }
|
||||
elsif (/^zlib-dynamic$/)
|
||||
{ }
|
||||
elsif (/^sse2$/)
|
||||
{ }
|
||||
elsif (/^engine$/)
|
||||
{
|
||||
@{$config{dirs}} = grep !/^engines$/, @{$config{dirs}};
|
||||
@{$config{sdirs}} = grep !/^engine$/, @{$config{sdirs}};
|
||||
push @{$config{openssl_other_defines}}, "OPENSSL_NO_ENGINE";
|
||||
print " OPENSSL_NO_ENGINE (skip engines)";
|
||||
}
|
||||
else
|
||||
{
|
||||
my ($WHAT, $what);
|
||||
|
||||
($WHAT = $what = $_) =~ tr/[\-a-z]/[_A-Z]/;
|
||||
|
||||
# Fix up C macro end names
|
||||
$WHAT = "RMD160" if $what eq "ripemd";
|
||||
|
||||
# fix-up crypto/directory name(s)
|
||||
$what = "ripemd" if $what eq "rmd160";
|
||||
$what = "whrlpool" if $what eq "whirlpool";
|
||||
|
||||
if ($what ne "async" && $what ne "err"
|
||||
&& grep { $_ eq $what } @{$config{sdirs}})
|
||||
{
|
||||
push @{$config{openssl_algorithm_defines}}, "OPENSSL_NO_$WHAT";
|
||||
@{$config{sdirs}} = grep { $_ ne $what} @{$config{sdirs}};
|
||||
|
||||
print " OPENSSL_NO_$WHAT (skip dir)";
|
||||
}
|
||||
else
|
||||
{
|
||||
push @{$config{openssl_other_defines}}, "OPENSSL_NO_$WHAT";
|
||||
print " OPENSSL_NO_$WHAT";
|
||||
}
|
||||
}
|
||||
|
||||
print "\n";
|
||||
}
|
||||
|
||||
$target{cxxflags}//=$target{cflags} if $target{cxx};
|
||||
$target{exe_extension}="";
|
||||
$target{exe_extension}=".exe" if ($config{target} eq "DJGPP"
|
||||
@ -1150,6 +1088,46 @@ $config{plib_lflags} = [ $target{plib_lflags} ];
|
||||
# Allow overriding the build file name
|
||||
$config{build_file} = env('BUILDFILE') || $target{build_file} || "Makefile";
|
||||
|
||||
# ALL USE OF %useradd MUST BE DONE FROM HERE ON
|
||||
%useradd = undef;
|
||||
|
||||
my %disabled_info = (); # For configdata.pm
|
||||
foreach my $what (sort keys %disabled) {
|
||||
$config{options} .= " no-$what";
|
||||
|
||||
if (!grep { $what eq $_ } ( 'dso', 'threads', 'shared', 'pic',
|
||||
'dynamic-engine', 'makedepend',
|
||||
'zlib-dynamic', 'zlib', 'sse2' )) {
|
||||
(my $WHAT = uc $what) =~ s|-|_|g;
|
||||
|
||||
# Fix up C macro end names
|
||||
$WHAT = "RMD160" if $what eq "ripemd";
|
||||
|
||||
# fix-up crypto/directory name(s)
|
||||
$what = "ripemd" if $what eq "rmd160";
|
||||
$what = "whrlpool" if $what eq "whirlpool";
|
||||
|
||||
my $macro = $disabled_info{$what}->{macro} = "OPENSSL_NO_$WHAT";
|
||||
|
||||
if ((grep { $what eq $_ } @{$config{sdirs}})
|
||||
&& $what ne 'async' && $what ne 'err') {
|
||||
@{$config{sdirs}} = grep { $what ne $_} @{$config{sdirs}};
|
||||
$disabled_info{$what}->{skipped} = [ catdir('crypto', $what) ];
|
||||
|
||||
if ($what ne 'engine') {
|
||||
push @{$config{openssl_algorithm_defines}}, $macro;
|
||||
} else {
|
||||
@{$config{dirs}} = grep !/^engines$/, @{$config{dirs}};
|
||||
push @{$disabled_info{engine}->{skipped}}, catdir('engines');
|
||||
push @{$config{openssl_other_defines}}, $macro;
|
||||
}
|
||||
} else {
|
||||
push @{$config{openssl_other_defines}}, $macro;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
# Make sure build_scheme is consistent.
|
||||
$target{build_scheme} = [ $target{build_scheme} ]
|
||||
if ref($target{build_scheme}) ne "ARRAY";
|
||||
@ -2316,8 +2294,23 @@ foreach (sort keys %user) {
|
||||
"'",$user_to_target{$_} || lc $_,"',\n";
|
||||
}
|
||||
print OUT ");\n";
|
||||
print OUT "my \%disabled_info = (\n";
|
||||
foreach my $what (sort keys %disabled_info) {
|
||||
print OUT " '$what' => {\n";
|
||||
foreach my $info (sort keys %{$disabled_info{$what}}) {
|
||||
if (ref $disabled_info{$what}->{$info} eq 'ARRAY') {
|
||||
print OUT " $info => [ ",
|
||||
join(', ', map { "'$_'" } @{$disabled_info{$what}->{$info}}),
|
||||
" ],\n";
|
||||
} else {
|
||||
print OUT " $info => '", $disabled_info{$what}->{$info},
|
||||
"',\n";
|
||||
}
|
||||
}
|
||||
print OUT " },\n";
|
||||
}
|
||||
print OUT ");\n";
|
||||
print OUT << 'EOF';
|
||||
|
||||
# If run directly, we can give some answers, and even reconfigure
|
||||
unless (caller) {
|
||||
use Getopt::Long;
|
||||
@ -2329,6 +2322,7 @@ unless (caller) {
|
||||
|
||||
my $dump = undef;
|
||||
my $cmdline = undef;
|
||||
my $options = undef;
|
||||
my $envvars = undef;
|
||||
my $makevars = undef;
|
||||
my $buildparams = undef;
|
||||
@ -2338,6 +2332,7 @@ unless (caller) {
|
||||
my $man = undef;
|
||||
GetOptions('dump|d' => \$dump,
|
||||
'command-line|c' => \$cmdline,
|
||||
'options|o' => \$options,
|
||||
'environment|e' => \$envvars,
|
||||
'make-variables|m' => \$makevars,
|
||||
'build-parameters|b' => \$buildparams,
|
||||
@ -2347,8 +2342,8 @@ unless (caller) {
|
||||
'man' => \$man)
|
||||
or die "Errors in command line arguments\n";
|
||||
|
||||
unless ($dump || $cmdline || $envvars || $makevars || $buildparams
|
||||
|| $reconf || $verbose || $help || $man) {
|
||||
unless ($dump || $cmdline || $options || $envvars || $makevars
|
||||
|| $buildparams || $reconf || $verbose || $help || $man) {
|
||||
print STDERR <<"_____";
|
||||
You must give at least one option.
|
||||
For more information, do '$0 --help'
|
||||
@ -2372,6 +2367,30 @@ _____
|
||||
catfile($config{sourcedir}, 'Configure'),
|
||||
@{$config{perlargv}}), "\n";
|
||||
}
|
||||
if ($dump || $options) {
|
||||
my $longest = 0;
|
||||
foreach my $what (@disablables) {
|
||||
$longest = length($what) if $longest < length($what);
|
||||
}
|
||||
print "\nEnabled features:\n\n";
|
||||
foreach my $what (@disablables) {
|
||||
print " $what\n" unless $disabled{$what};
|
||||
}
|
||||
print "\nDisabled features:\n\n";
|
||||
foreach my $what (@disablables) {
|
||||
if ($disabled{$what}) {
|
||||
print " $what", ' ' x ($longest - length($what) + 1),
|
||||
"[$disabled{$what}]", ' ' x (10 - length($disabled{$what}));
|
||||
print $disabled_info{$what}->{macro}
|
||||
if $disabled_info{$what}->{macro};
|
||||
print ' (skip ',
|
||||
join(', ', @{$disabled_info{$what}->{skipped}}),
|
||||
')'
|
||||
if $disabled_info{$what}->{skipped};
|
||||
print "\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($dump || $envvars) {
|
||||
print "\nRecorded environment:\n\n";
|
||||
foreach (sort keys %{$config{perlenv}}) {
|
||||
@ -2482,12 +2501,17 @@ Print the manual page and exit.
|
||||
=item B<--dump> | B<-c>
|
||||
|
||||
Print all relevant configuration data. This is equivalent to B<--command-line>
|
||||
B<--environment> B<--make-variables> B<--build-parameters>.
|
||||
B<--options> B<--environment> B<--make-variables> B<--build-parameters>.
|
||||
|
||||
=item B<--command-line> | B<-c>
|
||||
|
||||
Print the current configuration command line.
|
||||
|
||||
=item B<--options> | B<-o>
|
||||
|
||||
Print the features, both enabled and disabled, and display defined macro and
|
||||
skipped directories where applicable.
|
||||
|
||||
=item B<--environment> | B<-e>
|
||||
|
||||
Print the environment variables and their values at the time of configuration.
|
||||
|
Loading…
Reference in New Issue
Block a user