X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=Configure;h=17bc6c2c6747c9ef1994c117a82e512a8cdab36c;hp=17f45b0bd0dede733ef72acc86ac983d54dbc460;hb=f425f9dcffc4efa13fbdbba34c6883b038409f3f;hpb=09aa263a143b006650a0f879dc2348609587b806 diff --git a/Configure b/Configure index 17f45b0bd0..17bc6c2c67 100755 --- a/Configure +++ b/Configure @@ -220,7 +220,7 @@ $config{dirs} = [ "crypto", "ssl", "engines", "apps", "test", "tools" ]; # crypto/ subdirectories to build $config{sdirs} = [ "objects", - "md2", "md4", "md5", "sha", "mdc2", "hmac", "ripemd", "whrlpool", "poly1305", + "md2", "md4", "md5", "sha", "mdc2", "hmac", "ripemd", "whrlpool", "poly1305", "blake2", "des", "aes", "rc2", "rc4", "rc5", "idea", "bf", "cast", "camellia", "seed", "chacha", "modes", "bn", "ec", "rsa", "dsa", "dh", "dso", "engine", "buffer", "bio", "stack", "lhash", "rand", "err", @@ -243,6 +243,7 @@ my @disablables = ( "autoalginit", "autoerrinit", "bf", + "blake2", "camellia", "capieng", "cast", @@ -274,7 +275,6 @@ my @disablables = ( "hmac", "hw(-.+)?", "idea", - "locking", "makedepend", "md2", "md4", @@ -397,7 +397,8 @@ my @disable_cascades = ( "dso" => [ "dynamic-engine" ], # Without position independent code, there can be no shared libraries or DSOs - "pic" => [ "shared", "dynamic-engine" ], + "pic" => [ "shared" ], + "shared" => [ "dynamic-engine" ], ); # Avoid protocol support holes. Also disable all versions below N, if version @@ -1101,15 +1102,23 @@ if ($^O ne "VMS" && !$disabled{makedepend}) { # Is the compiler gcc or clang? $ecc is used below to see if # error-checking can be turned on. my $ccpcc = "$config{cross_compile_prefix}$target{cc}"; - $config{makedepprog} = which('makedepend'); - open(PIPE, "$ccpcc --version 2>&1 | head -2 |"); + open(PIPE, "$ccpcc --version 2>&1 |"); + my $lines = 2; while ( ) { - $config{makedepprog} = $ccpcc if /clang|gcc/; + # Find the version number and save the major. + m|(?:.*)\b(\d+)\.\d+\.\d+\b(?:.*)|; + my $compiler_major = $1; + # We know that GNU C version 3 and up as well as all clang + # versions support dependency generation + $config{makedepprog} = $ccpcc + if (/clang/ || (/gcc/ && $compiler_major > 3)); $ecc = "clang" if /clang/; $ecc = "gcc" if /gcc/; + last if ($config{makedepprog} || !$lines--); } close(PIPE); + $config{makedepprog} = which('makedepend') unless $config{makedepprog}; $disabled{makedepend} = "unavailable" unless $config{makedepprog}; } @@ -1189,22 +1198,24 @@ else { $no_user_defines=1; } # ALL MODIFICATIONS TO %config and %target MUST BE DONE FROM HERE ON -$config{afalg}=""; -if ($target =~ m/^linux/) { - my $minver = 4*10000 + 1*100 + 0; - if ($config{cross_compile_prefix} eq "") { - my $verstr = `uname -r`; - my ($ma, $mi1, $mi2) = split("\\.", $verstr); - ($mi2) = $mi2 =~ /(\d+)/; - my $ver = $ma*10000 + $mi1*100 + $mi2; - if ($ver < $minver) { - $disabled{afalg} = "too-old-kernel"; - } else { - push @{$config{engdirs}}, "afalg"; +unless ($disabled{engine}) { + $config{afalg}=""; + if ($target =~ m/^linux/) { + my $minver = 4*10000 + 1*100 + 0; + if ($config{cross_compile_prefix} eq "") { + my $verstr = `uname -r`; + my ($ma, $mi1, $mi2) = split("\\.", $verstr); + ($mi2) = $mi2 =~ /(\d+)/; + my $ver = $ma*10000 + $mi1*100 + $mi2; + if ($ver < $minver) { + $disabled{afalg} = "too-old-kernel"; + } else { + push @{$config{engdirs}}, "afalg"; + } } + } else { + $disabled{afalg} = "not-linux"; } -} else { - $disabled{afalg} = "not-linux"; } push @{$config{openssl_other_defines}}, "OPENSSL_NO_AFALGENG" if ($disabled{afalg}); @@ -1328,7 +1339,13 @@ if ($builder eq "unified") { $l1 =~ s/\\$//; $l1.$l2 }), # Info we're looking for qr/^\s*IF\[((?:\\.|[^\\\]])*)\]\s*$/ - => sub { push @skip, !! $1; }, + => sub { + if (! @skip || $skip[$#skip] > 0) { + push @skip, !! $1; + } else { + push @skip, -1; + } + }, qr/^\s*ELSIF\[((?:\\.|[^\\\]])*)\]\s*$/ => sub { die "ELSIF out of scope" if ! @skip; die "ELSIF following ELSE" if abs($skip[$#skip]) == 2; @@ -1747,6 +1764,7 @@ 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"; print "DEFINES =",join(" ", @{$target{defines}}, @{$config{defines}}),"\n"; print "LFLAG =$target{lflags}\n"; print "PLIB_LFLAG =$target{plib_lflags}\n"; @@ -1770,6 +1788,7 @@ print "MODES_OBJ =$target{modes_obj}\n"; print "PADLOCK_OBJ =$target{padlock_obj}\n"; print "CHACHA_ENC =$target{chacha_obj}\n"; print "POLY1305_OBJ =$target{poly1305_obj}\n"; +print "BLAKE2_OBJ =$target{blake2_obj}\n"; print "PROCESSOR =$config{processor}\n"; print "RANLIB =$target{ranlib}\n"; print "ARFLAGS =$target{arflags}\n"; @@ -2046,7 +2065,7 @@ sub resolve_config { my $target = shift; my @breadcrumbs = @_; - my $extra_checks = defined($ENV{CONFIGURE_EXTRA_CHECKS}); +# my $extra_checks = defined($ENV{CONFIGURE_EXTRA_CHECKS}); if (grep { $_ eq $target } @breadcrumbs) { die "inherit_from loop! target backtrace:\n " @@ -2146,10 +2165,10 @@ sub resolve_config { unless(defined($table{$target}->{$_})) { delete $table{$target}->{$_}; } - if ($extra_checks && - $previous && !($add_called || $previous ~~ $table{$target}->{$_})) { - warn "$_ got replaced in $target\n"; - } +# if ($extra_checks && +# $previous && !($add_called || $previous ~~ $table{$target}->{$_})) { +# warn "$_ got replaced in $target\n"; +# } } # Finally done, return the result.