Check gcc version to see if it supports -MM and friends
authorRichard Levitte <levitte@openssl.org>
Tue, 8 Mar 2016 16:16:16 +0000 (17:16 +0100)
committerRichard Levitte <levitte@openssl.org>
Wed, 9 Mar 2016 11:09:30 +0000 (12:09 +0100)
According to manuals found here: https://gcc.gnu.org/onlinedocs/, GNU
C version 3 and on support the dependency generation options.  We
therefore need to check the gcc version to see if we're going to use
it or makedepend for dependency generation.

Reviewed-by: Andy Polyakov <appro@openssl.org>
Configure

index 17f45b0..fa1272b 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -1104,7 +1104,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/;
     }