X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=Configure;h=1caba711ea7941155d642a2ac83e1404b08e8f05;hp=557ea2228d4f7cfaa533d27ed6f8f33674cf7a72;hb=5902821d81ced5e7c5db972e4b569848500940f7;hpb=d4037cea3c26b7cfdc8cc518a31ba7a89081e931 diff --git a/Configure b/Configure index 557ea2228d..1caba711ea 100755 --- a/Configure +++ b/Configure @@ -267,6 +267,7 @@ my @disablables = ( "engine", "err", "filenames", + "gost", "heartbeats", "hmac", "hw(-.+)?", @@ -276,7 +277,6 @@ my @disablables = ( "md4", "md5", "mdc2", - "md[-_]ghost94", "multiblock", "nextprotoneg", "ocb", @@ -290,7 +290,6 @@ my @disablables = ( "rc5", "rdrand", "rfc3779", - "rijndael", # Old AES name "ripemd", "rmd160", "rsa", @@ -356,11 +355,11 @@ my @disable_cascades = ( "ssl" => [ "ssl3" ], "ssl3-method" => [ "ssl3" ], "zlib" => [ "zlib-dynamic" ], - "rijndael" => [ "aes" ], "des" => [ "mdc2" ], "ec" => [ "ecdsa", "ecdh" ], - "dgram" => [ "dtls" ], + "dgram" => [ "dtls", "sctp" ], + "sock" => [ "sctp" ], "dtls" => [ @dtls ], # SSL 3.0, (D)TLS 1.0 and TLS 1.1 require MD5 and SHA @@ -395,6 +394,8 @@ my @disable_cascades = ( "pic" => [ "shared" ], "shared" => [ "dynamic-engine" ], "engine" => [ "afalgeng" ], + "comp" => [ "zlib" ], + sub { !$disabled{"unit-test"} } => [ "heartbeats" ], ); # Avoid protocol support holes. Also disable all versions below N, if version @@ -550,6 +551,7 @@ foreach (@argvcopy) { $disabled{$proto} = "option(dtls)"; } + $disabled{"dtls"} = "option(dtls)"; } elsif ($1 eq "ssl") { @@ -873,7 +875,7 @@ $config{cross_compile_prefix} = $ENV{'CROSS_COMPILE'} if $config{cross_compile_prefix} eq ""; # Allow overriding the names of some tools. USE WITH CARE -$config{perl} = $ENV{'PERL'} || which("perl5") || which("perl") || "perl"; +$config{perl} = $ENV{'PERL'} || ($^O ne "VMS" ? $^X : "perl"); $target{cc} = $ENV{'CC'} || $target{cc} || "cc"; $target{ranlib} = $ENV{'RANLIB'} || $target{ranlib} || which("ranlib") || "true"; $target{ar} = $ENV{'AR'} || $target{ar} || "ar"; @@ -1303,6 +1305,7 @@ if ($builder eq "unified") { my %ordinals = (); my %sources = (); + my %shared_sources = (); my %includes = (); my %depends = (); my %renames = (); @@ -1382,6 +1385,9 @@ if ($builder eq "unified") { qr/^\s*SOURCE\[((?:\\.|[^\\\]])+)\]\s*=\s*(.*)\s*$/ => sub { push @{$sources{$1}}, split(/\s+/, $2) if !@skip || $skip[$#skip] > 0 }, + qr/^\s*SHARED_SOURCE\[((?:\\.|[^\\\]])+)\]\s*=\s*(.*)\s*$/ + => sub { push @{$shared_sources{$1}}, split(/\s+/, $2) + if !@skip || $skip[$#skip] > 0 }, qr/^\s*INCLUDE\[((?:\\.|[^\\\]])+)\]\s*=\s*(.*)\s*$/ => sub { push @{$includes{$1}}, split(/\s+/, $2) if !@skip || $skip[$#skip] > 0 }, @@ -1567,6 +1573,32 @@ EOF } } + foreach (keys %shared_sources) { + my $dest = $_; + my $ddest = cleanfile($buildd, $_, $blddir); + if ($unified_info{rename}->{$ddest}) { + $ddest = $unified_info{rename}->{$ddest}; + } + foreach (@{$shared_sources{$dest}}) { + my $s = cleanfile($sourced, $_, $blddir); + + # If it isn't in the source tree, we assume it's generated + # in the build tree + if (! -f $s) { + $s = cleanfile($buildd, $_, $blddir); + } + # We recognise C and asm files + if ($s =~ /\.[csS]\b$/) { + (my $o = $_) =~ s/\.[csS]\b$/.o/; + $o = cleanfile($buildd, $o, $blddir); + $unified_info{shared_sources}->{$ddest}->{$o} = 1; + $unified_info{sources}->{$o}->{$s} = 1; + } else { + die "unrecognised source file type for shared library: $s\n"; + } + } + } + foreach (keys %generate) { my $dest = $_; my $ddest = cleanfile($buildd, $_, $blddir); @@ -1636,7 +1668,7 @@ EOF $unified_info{$_} = [ sort keys %{$unified_info{$_}} ]; } # Two level structures - foreach my $l1 (("sources", "ldadd", "depends")) { + foreach my $l1 (("sources", "shared_sources", "ldadd", "depends")) { foreach my $l2 (sort keys %{$unified_info{$l1}}) { $unified_info{$l1}->{$l2} = [ sort keys %{$unified_info{$l1}->{$l2}} ]; @@ -1664,7 +1696,7 @@ use warnings; use Exporter; #use vars qw(\@ISA \@EXPORT); our \@ISA = qw(Exporter); -our \@EXPORT = qw(\%config \%target \%disabled \%withargs \%unified_info); +our \@EXPORT = qw(\%config \%target \%disabled \%withargs \%unified_info \@disablables); EOF print OUT "our %config = (\n"; @@ -1701,6 +1733,14 @@ print OUT " dtls => [ ", join(", ", map { quotify("perl", $_) } @dtls), " ],\n" print OUT <<"EOF"; ); +EOF +print OUT "our \@disablables = (\n"; +foreach (@disablables) { + print OUT " ", quotify("perl", $_), ",\n"; +} +print OUT <<"EOF"; +); + EOF print OUT "our \%disabled = (\n"; foreach (sort keys %disabled) { @@ -1770,7 +1810,6 @@ print OUT "1;\n"; close(OUT); -print "IsMK1MF =", ($builder eq "mk1mf" ? "yes" : "no"), "\n"; print "CC =$target{cc}\n"; print "CFLAG =$target{cflags} $config{cflags}\n"; print "SHARED_CFLAG =$target{shared_cflag}\n"; @@ -1862,71 +1901,6 @@ my %builders = ( run_dofile("util/domd", "util/domd.in"); chmod 0755, "util/domd"; }, - mk1mf => sub { - my $platform = shift; - # The only reason we do this is to have something to build MINFO from - build_Makefile(); - - # create the ms/version32.rc file if needed - my ($v1, $v2, $v3, $v4); - 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; - $v2=hex $2; - $v3=hex $3; - $v4=hex $4; - } - open (OUT,">ms/version32.rc") || die "Can't open ms/version32.rc"; - print OUT <<"EOF"; -#include - -LANGUAGE 0x09,0x01 - -1 VERSIONINFO - FILEVERSION $v1,$v2,$v3,$v4 - PRODUCTVERSION $v1,$v2,$v3,$v4 - FILEFLAGSMASK 0x3fL -#ifdef _DEBUG - FILEFLAGS 0x01L -#else - FILEFLAGS 0x00L -#endif - FILEOS VOS__WINDOWS32 - FILETYPE VFT_DLL - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904b0" - BEGIN - // Required: - VALUE "CompanyName", "The OpenSSL Project, http://www.openssl.org/\\0" - VALUE "FileDescription", "OpenSSL Shared Library\\0" - VALUE "FileVersion", "$config{version}\\0" -#if defined(CRYPTO) - VALUE "InternalName", "libcrypto32\\0" - VALUE "OriginalFilename", "libcrypto32.dll\\0" -#elif defined(SSL) - VALUE "InternalName", "libssl32\\0" - VALUE "OriginalFilename", "libssl32.dll\\0" -#endif - VALUE "ProductName", "The OpenSSL Toolkit\\0" - VALUE "ProductVersion", "$config{version}\\0" - // Optional: - //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 "LegalTrademarks", "\\0" - //VALUE "PrivateBuild", "\\0" - //VALUE "SpecialBuild", "\\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 0x4b0 - END -END -EOF - close(OUT); - }, ); $builders{$builder}->($builder_platform, @builder_opts);