Refactoring BIO: add error macros & text, and make update
[openssl.git] / Configure
index 09c76978405860f5e69d68619b07c1b0af34ed8d..40bc7573ffa959eccf6f288baa09eadb396286ac 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -10,7 +10,7 @@
 require 5.000;
 use strict;
 use File::Basename;
-use File::Spec::Functions qw/:DEFAULT abs2rel rel2abs catpath splitpath/;
+use File::Spec::Functions qw/:DEFAULT abs2rel rel2abs/;
 use File::Path qw/make_path/;
 use Cwd qw/:DEFAULT realpath/;
 
@@ -175,8 +175,7 @@ die "erroneous version information in opensslv.h: ",
 
 # Collect target configurations
 
-my ($vol, $dir, $dummy) = splitpath($0);
-my $pattern = catpath($vol, catdir($dir, "Configurations"), "*.conf");
+my $pattern = catfile(dirname($0), "Configurations", "*.conf");
 foreach (sort glob($pattern) ) {
     &read_config($_);
 }
@@ -597,11 +596,11 @@ foreach (@argvcopy)
                        }
                elsif (/^--with-zlib-lib=(.*)$/)
                        {
-                       $withargs{"zlib-lib"}=$1;
+                       $withargs{zlib_lib}=$1;
                        }
                elsif (/^--with-zlib-include=(.*)$/)
                        {
-                       $withargs{"zlib-include"}="-I$1";
+                       $withargs{zlib_include}="-I$1";
                        }
                elsif (/^--with-fipslibdir=(.*)$/)
                        {
@@ -938,9 +937,9 @@ if ($zlib)
        $config{cflags} = "-DZLIB $config{cflags}";
        if (defined($disabled{"zlib-dynamic"}))
                {
-               if (defined($withargs{"zlib-lib"}))
+               if (defined($withargs{zlib_lib}))
                        {
-                       $config{ex_libs} .= " -L" . $withargs{"zlib-lib"} . " -lz";
+                       $config{ex_libs} .= " -L" . $withargs{zlib_lib} . " -lz";
                        }
                else
                        {
@@ -1072,11 +1071,19 @@ if (!$no_asm) {
     }
 }
 
+# Is the compiler gcc or clang?  $ecc is used below to see if error-checking
+# can be turned on.
 my $ecc = $target{cc};
-$ecc = "clang" if `$target{cc} --version 2>&1` =~ /clang/;
+my $ccpcc = "$config{cross_compile_prefix}$target{cc}";
+$config{makedepprog} = 'makedepend';
+open(PIPE, "$ccpcc --version 2>&1 | head -2 |");
+while ( <PIPE> ) {
+    $config{makedepprog} = $ccpcc if /clang|gcc/;
+    $ecc = "clang" if /clang/;
+    $ecc = "gcc" if /gcc/;
+}
+close(PIPE);
 
-$config{makedepprog} =
-    $ecc eq "gcc" || $ecc eq "clang" ? $target{cc} : "makedepend";
 $config{depflags} =~ s/^\s*//;
 
 
@@ -1121,7 +1128,8 @@ if (defined($config{api})) {
 if ($strict_warnings)
        {
        my $wopt;
-       die "ERROR --strict-warnings requires gcc or clang" unless ($ecc =~ /gcc(-\d(\.\d)*)?$/ or $ecc =~ /clang$/);
+       die "ERROR --strict-warnings requires gcc or clang"
+            unless $ecc eq 'gcc' || $ecc eq 'clang';
        foreach $wopt (split /\s+/, $gcc_devteam_warn)
                {
                $config{cflags} .= " $wopt" unless ($config{cflags} =~ /(^|\s)$wopt(\s|$)/)