Makes SCT_LIST_set_source return the number of successes
[openssl.git] / Configure
index 17f45b0bd0dede733ef72acc86ac983d54dbc460..57d8a5aa813607fce92d3dd65cc6a1e544d0face 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -274,7 +274,6 @@ my @disablables = (
     "hmac",
     "hw(-.+)?",
     "idea",
-    "locking",
     "makedepend",
     "md2",
     "md4",
@@ -1104,7 +1103,11 @@ if ($^O ne "VMS" && !$disabled{makedepend}) {
     $config{makedepprog} = which('makedepend');
     open(PIPE, "$ccpcc --version 2>&1 | head -2 |");
     while ( <PIPE> ) {
-        $config{makedepprog} = $ccpcc if /clang|gcc/;
+        # Find the version number and save the major.
+        m|(?:.*)\b(\d+)\.\d+\.\d+\b(?:.*)|;
+        # We know that GNU C version 3 and up as well as all clang
+        # versions support dependency generation
+        $config{makedepprog} = $ccpcc if /clang/ || (/gcc/ && $1 > 3);
         $ecc = "clang" if /clang/;
         $ecc = "gcc" if /gcc/;
     }
@@ -1189,22 +1192,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 +1333,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 +1758,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";