Configure: fix Mac OS X builds that still require makedepend
authorTodd Short <tshort@akamai.com>
Thu, 3 May 2018 15:17:49 +0000 (11:17 -0400)
committerAndy Polyakov <appro@openssl.org>
Sat, 5 May 2018 19:03:24 +0000 (21:03 +0200)
Earlier Apple Xcode compilers, e.g. one targeting Mac OS X 10.7, don't
support dependency generation and one still has to use makedepend.  It's
unclear when it was fixed, but all clang-based Apple compilers seem to
support -M options.

Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Andy Polyakov <appro@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/6167)

Configure

index c0033643c61d2a0ba0b81bbc87f89db5c94a7e6d..7f073b6294ec20cf12ac5c91e177197f1f342da8 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -1215,8 +1215,10 @@ if ($^O ne "VMS") {
 
     if (!$disabled{makedepend}) {
        # We know that GNU C version 3 and up as well as all clang
-       # versions support dependency generation
-       if ($predefined{__GNUC__} >= 3) {
+       # versions support dependency generation, but Xcode did not
+       # handle $cc -M before clang support (but claims __GNUC__ = 3)
+       if (($predefined{__GNUC__} // -1) >= 3
+               && !($predefined{__APPLE_CC__} && !$predefined{__clang__})) {
            $config{makedepprog} = $cc;
        } else {
            $config{makedepprog} = which('makedepend');