Refactor file writing - Adapt util/mkdef.pl to use configdata.pm

For this adaptation, the variables $options and $version needed to
move to %config in Configure, and why not move all other variables
holding diverse version numbers at the same time?

Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
This commit is contained in:
Richard Levitte 2016-01-12 00:17:12 +01:00 committed by Richard Levitte
parent d36ab9ce9a
commit 3fa04f0d72
2 changed files with 42 additions and 53 deletions

View File

@ -395,7 +395,7 @@ my $openssl_sys_defines="";
my $openssl_other_defines=""; my $openssl_other_defines="";
my $libs=""; my $libs="";
my $target=""; my $target="";
my $options=""; $config{options}="";
my $api; my $api;
my $make_depend=0; my $make_depend=0;
my %withargs=(); my %withargs=();
@ -610,10 +610,10 @@ foreach (@argvcopy)
# we really only write OPTIONS to the Makefile out of # we really only write OPTIONS to the Makefile out of
# nostalgia.) # nostalgia.)
if ($options eq "") if ($config{options} eq "")
{ $options = $_; } { $config{options} = $_; }
else else
{ $options .= " ".$_; } { $config{options} .= " ".$_; }
} }
if (defined($api) && !exists $apitable->{$api}) { if (defined($api) && !exists $apitable->{$api}) {
@ -676,7 +676,7 @@ if ($target =~ m/^CygWin32(-.*)$/) {
foreach (sort (keys %disabled)) foreach (sort (keys %disabled))
{ {
$options .= " no-$_"; $config{options} .= " no-$_";
printf " no-%-12s %-10s", $_, "[$disabled{$_}]"; printf " no-%-12s %-10s", $_, "[$disabled{$_}]";
@ -945,12 +945,12 @@ if ($target{build_scheme}->[0] ne "mk1mf")
if ($no_shared) if ($no_shared)
{ {
$openssl_other_defines.="#define OPENSSL_NO_DYNAMIC_ENGINE\n"; $openssl_other_defines.="#define OPENSSL_NO_DYNAMIC_ENGINE\n";
$options.=" static-engine"; $config{options}.=" static-engine";
} }
else else
{ {
$openssl_other_defines.="#define OPENSSL_NO_STATIC_ENGINE\n"; $openssl_other_defines.="#define OPENSSL_NO_STATIC_ENGINE\n";
$options.=" no-static-engine"; $config{options}.=" no-static-engine";
} }
} }
@ -1081,36 +1081,36 @@ if (!$no_asm) {
# and works as well on command lines. # and works as well on command lines.
$cflags =~ s/([\\\"])/\\\1/g; $cflags =~ s/([\\\"])/\\\1/g;
my $version = "unknown"; $config{version} = "unknown";
my $version_num = "unknown"; $config{version_num} = "unknown";
my $major = "unknown"; $config{major} = "unknown";
my $minor = "unknown"; $config{minor} = "unknown";
my $shlib_version_number = "unknown"; $config{shlib_version_number} = "unknown";
my $shlib_version_history = "unknown"; $config{shlib_version_history} = "unknown";
my $shlib_major = "unknown"; $config{shlib_major} = "unknown";
my $shlib_minor = "unknown"; $config{shlib_minor} = "unknown";
open(IN,'<include/openssl/opensslv.h') || die "unable to read opensslv.h:$!\n"; open(IN,'<include/openssl/opensslv.h') || die "unable to read opensslv.h:$!\n";
while (<IN>) while (<IN>)
{ {
$version=$1 if /OPENSSL.VERSION.TEXT.*OpenSSL (\S+) /; $config{version}=$1 if /OPENSSL.VERSION.TEXT.*OpenSSL (\S+) /;
$version_num=$1 if /OPENSSL.VERSION.NUMBER.*(0x\S+)/; $config{version_num}=$1 if /OPENSSL.VERSION.NUMBER.*(0x\S+)/;
$shlib_version_number=$1 if /SHLIB_VERSION_NUMBER *"([^"]+)"/; $config{shlib_version_number}=$1 if /SHLIB_VERSION_NUMBER *"([^"]+)"/;
$shlib_version_history=$1 if /SHLIB_VERSION_HISTORY *"([^"]*)"/; $config{shlib_version_history}=$1 if /SHLIB_VERSION_HISTORY *"([^"]*)"/;
} }
close(IN); close(IN);
if ($shlib_version_history ne "") { $shlib_version_history .= ":"; } if ($config{shlib_version_history} ne "") { $config{shlib_version_history} .= ":"; }
if ($version =~ /(^[0-9]*)\.([0-9\.]*)/) if ($config{version} =~ /(^[0-9]*)\.([0-9\.]*)/)
{ {
$major=$1; $config{major}=$1;
$minor=$2; $config{minor}=$2;
} }
if ($shlib_version_number =~ /(^[0-9]*)\.([0-9\.]*)/) if ($config{shlib_version_number} =~ /(^[0-9]*)\.([0-9\.]*)/)
{ {
$shlib_major=$1; $config{shlib_major}=$1;
$shlib_minor=$2; $config{shlib_minor}=$2;
} }
if (defined($api)) { if (defined($api)) {
@ -1215,13 +1215,13 @@ while (<IN>)
$sdirs = 0 unless /\\$/; $sdirs = 0 unless /\\$/;
s/fips // if (/^DIRS=/ && !$fips); s/fips // if (/^DIRS=/ && !$fips);
s/engines // if (/^DIRS=/ && $disabled{"engine"}); s/engines // if (/^DIRS=/ && $disabled{"engine"});
s/^VERSION=.*/VERSION=$version/; s/^VERSION=.*/VERSION=$config{version}/;
s/^MAJOR=.*/MAJOR=$major/; s/^MAJOR=.*/MAJOR=$config{major}/;
s/^MINOR=.*/MINOR=$minor/; s/^MINOR=.*/MINOR=$config{minor}/;
s/^SHLIB_VERSION_NUMBER=.*/SHLIB_VERSION_NUMBER=$shlib_version_number/; s/^SHLIB_VERSION_NUMBER=.*/SHLIB_VERSION_NUMBER=$config{shlib_version_number}/;
s/^SHLIB_VERSION_HISTORY=.*/SHLIB_VERSION_HISTORY=$shlib_version_history/; s/^SHLIB_VERSION_HISTORY=.*/SHLIB_VERSION_HISTORY=$config{shlib_version_history}/;
s/^SHLIB_MAJOR=.*/SHLIB_MAJOR=$shlib_major/; s/^SHLIB_MAJOR=.*/SHLIB_MAJOR=$config{shlib_major}/;
s/^SHLIB_MINOR=.*/SHLIB_MINOR=$shlib_minor/; s/^SHLIB_MINOR=.*/SHLIB_MINOR=$config{shlib_minor}/;
s/^SHLIB_EXT=.*/SHLIB_EXT=$target{shared_extension}/; s/^SHLIB_EXT=.*/SHLIB_EXT=$target{shared_extension}/;
s/^INSTALLTOP=.*$/INSTALLTOP=$config{prefix}/; s/^INSTALLTOP=.*$/INSTALLTOP=$config{prefix}/;
s/^MULTILIB=.*$/MULTILIB=$target{multilib}/; s/^MULTILIB=.*$/MULTILIB=$target{multilib}/;
@ -1229,7 +1229,7 @@ while (<IN>)
s/^LIBDIR=.*$/LIBDIR=$libdir/; s/^LIBDIR=.*$/LIBDIR=$libdir/;
s/^INSTALL_PREFIX=.*$/INSTALL_PREFIX=$install_prefix/; s/^INSTALL_PREFIX=.*$/INSTALL_PREFIX=$install_prefix/;
s/^PLATFORM=.*$/PLATFORM=$target/; s/^PLATFORM=.*$/PLATFORM=$target/;
s/^OPTIONS=.*$/OPTIONS=$options/; s/^OPTIONS=.*$/OPTIONS=$config{options}/;
my $argvstring = "(".join(", ", map { quotify("perl", $_) } @argvcopy).")"; my $argvstring = "(".join(", ", map { quotify("perl", $_) } @argvcopy).")";
s/^CONFIGURE_ARGS=.*$/CONFIGURE_ARGS=$argvstring/; s/^CONFIGURE_ARGS=.*$/CONFIGURE_ARGS=$argvstring/;
if ($cross_compile_prefix) if ($cross_compile_prefix)
@ -1579,7 +1579,7 @@ EOF
# create the ms/version32.rc file if needed # create the ms/version32.rc file if needed
if (! grep /^netware/, @{$target{build_scheme}}) { if (! grep /^netware/, @{$target{build_scheme}}) {
my ($v1, $v2, $v3, $v4); my ($v1, $v2, $v3, $v4);
if ($version_num =~ /^0x([0-9a-f]{1})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{1})L$/i) { if ($config{version_num} =~ /^0x([0-9a-f]{1})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{1})L$/i) {
$v1=hex $1; $v1=hex $1;
$v2=hex $2; $v2=hex $2;
$v3=hex $3; $v3=hex $3;
@ -1611,7 +1611,7 @@ BEGIN
// Required: // Required:
VALUE "CompanyName", "The OpenSSL Project, http://www.openssl.org/\\0" VALUE "CompanyName", "The OpenSSL Project, http://www.openssl.org/\\0"
VALUE "FileDescription", "OpenSSL Shared Library\\0" VALUE "FileDescription", "OpenSSL Shared Library\\0"
VALUE "FileVersion", "$version\\0" VALUE "FileVersion", "$config{version}\\0"
#if defined(CRYPTO) #if defined(CRYPTO)
VALUE "InternalName", "libeay32\\0" VALUE "InternalName", "libeay32\\0"
VALUE "OriginalFilename", "libeay32.dll\\0" VALUE "OriginalFilename", "libeay32.dll\\0"
@ -1620,7 +1620,7 @@ BEGIN
VALUE "OriginalFilename", "ssleay32.dll\\0" VALUE "OriginalFilename", "ssleay32.dll\\0"
#endif #endif
VALUE "ProductName", "The OpenSSL Toolkit\\0" VALUE "ProductName", "The OpenSSL Toolkit\\0"
VALUE "ProductVersion", "$version\\0" VALUE "ProductVersion", "$config{version}\\0"
// Optional: // Optional:
//VALUE "Comments", "\\0" //VALUE "Comments", "\\0"
VALUE "LegalCopyright", "Copyright © 1998-2015 The OpenSSL Project. Copyright © 1995-1998 Eric A. Young, Tim J. Hudson. All rights reserved.\\0" VALUE "LegalCopyright", "Copyright © 1998-2015 The OpenSSL Project. Copyright © 1995-1998 Eric A. Young, Tim J. Hudson. All rights reserved.\\0"

View File

@ -38,6 +38,9 @@
# exclude. # exclude.
# #
use lib ".";
use configdata;
my $debug=0; my $debug=0;
my $crypto_num= "util/libeay.num"; my $crypto_num= "util/libeay.num";
@ -128,16 +131,9 @@ foreach (@known_algorithms) {
# disabled by default # disabled by default
$disabled_algorithms{"STATIC_ENGINE"} = 1; $disabled_algorithms{"STATIC_ENGINE"} = 1;
my $options="";
open(IN,"<Makefile") || die "unable to open Makefile!\n";
while(<IN>) {
$options=$1 if (/^OPTIONS=(.*)$/);
}
close(IN);
my $zlib; my $zlib;
foreach (@ARGV, split(/ /, $options)) foreach (@ARGV, split(/ /, $config{options}))
{ {
$debug=1 if $_ eq "debug"; $debug=1 if $_ eq "debug";
$W32=1 if $_ eq "32"; $W32=1 if $_ eq "32";
@ -1177,14 +1173,7 @@ sub print_test_file
} }
sub get_version { sub get_version {
local *MF; return $config{version};
my $v = '?';
open MF, 'Makefile' or return $v;
while (<MF>) {
$v = $1, last if /^VERSION=(.*?)\s*$/;
}
close MF;
return $v;
} }
sub print_def_file sub print_def_file