summaryrefslogtreecommitdiff
path: root/Configure
diff options
context:
space:
mode:
Diffstat (limited to 'Configure')
-rwxr-xr-xConfigure28
1 files changed, 19 insertions, 9 deletions
diff --git a/Configure b/Configure
index 6d0ffbf480..b068b60e66 100755
--- a/Configure
+++ b/Configure
@@ -1533,22 +1533,32 @@ unless ($disabled{asm}) {
# Check for makedepend capabilities.
if (!$disabled{makedepend}) {
- if ($config{target} =~ /^(VC|BC|vms)-/) {
- # For VC-, BC- and vms- targets, there's nothing more to do here. The
- # functionality is hard coded in the corresponding build files for
- # cl/cpp32 (Windows) and CC/DECC (VMS).
+ # If the attribute makedep_scheme is defined, then we assume that the
+ # config target and its associated build file are programmed to deal
+ # with it.
+ # If makedep_scheme is undefined, we go looking for GCC compatible
+ # dependency making, and if that's not available, we try to fall back
+ # on 'makedepend'.
+ if ($target{makedep_scheme}) {
+ $config{makedep_scheme} = $target{makedep_scheme};
+ # If the makedepcmd attribute is defined, copy it. If not, the
+ # build files will have to fend for themselves.
+ $config{makedepcmd} = $target{makedepcmd} if $target{makedepcmd};
} elsif (($predefined_C{__GNUC__} // -1) >= 3
&& !($predefined_C{__APPLE_CC__} && !$predefined_C{__clang__})) {
# We know that GNU C version 3 and up as well as all clang
# versions support dependency generation, but Xcode did not
# handle $cc -M before clang support (but claims __GNUC__ = 3)
- $config{makedepprog} = "\$(CROSS_COMPILE)$config{CC}";
+ $config{makedep_scheme} = 'gcc';
} else {
- # In all other cases, we look for 'makedepend', and disable the
- # capability if not found.
- $config{makedepprog} = which('makedepend');
- disable('unavailable', 'makedepend') unless $config{makedepprog};
+ # In all other cases, we look for 'makedepend', and set the
+ # makedep_scheme value if we found it.
+ $config{makedepcmd} = which('makedepend');
+ $config{makedep_scheme} = 'makedepend' if $config{makedepcmd};
}
+
+ # If no depend scheme is set, we disable makedepend
+ disable('unavailable', 'makedepend') unless $config{makedep_scheme};
}
if (!$disabled{asm} && !$predefined_C{__MACH__} && $^O ne 'VMS') {