summaryrefslogtreecommitdiffstats
path: root/core/combo/mac_version.mk
blob: e9f06968cc5a132b0206bc058da52605f0cce83f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# Detect Mac OS X and SDK versions.
# Output variables:
#   build_mac_version
#   mac_sdk_version
#   mac_sdk_root
#   gcc_darwin_version

ifndef build_mac_version

build_mac_version := $(shell sw_vers -productVersion)

# Caution: Do not add 10.10 to this list until the prebuilts/darwin-x86 toolchains are updated.
#          In the meantime, setting mac_sdk_version to 10.9 works on Yosemite (verified on 10.10.1).
mac_sdk_versions_supported := 10.6 10.7 10.8 10.9 10.11
ifneq ($(strip $(MAC_SDK_VERSION)),)
mac_sdk_version := $(MAC_SDK_VERSION)
ifeq ($(filter $(mac_sdk_version),$(mac_sdk_versions_supported)),)
$(warning ****************************************************************)
$(warning * MAC_SDK_VERSION $(MAC_SDK_VERSION) isn\'t one of the supported $(mac_sdk_versions_supported))
$(warning ****************************************************************)
$(error Stop.)
endif
else
mac_sdk_versions_installed := $(shell xcodebuild -showsdks 2> /dev/null | grep macosx | sort | sed -e "s/.*macosx//g")
mac_sdk_version := $(firstword $(filter $(mac_sdk_versions_installed), $(mac_sdk_versions_supported)))
ifeq ($(mac_sdk_version),)
mac_sdk_version := $(firstword $(mac_sdk_versions_supported))
endif
endif

mac_sdk_path := $(shell xcode-select -print-path)

ifeq ($(strip "$(mac_sdk_path)"), "/Library/Developer/CommandLineTools")
# Accept any modern version of Apple Command Line Tools
mac_sdk_root := /

# Override mac_sdk_version with build_mac_version (aka the version of the OSX host), but assume the latest
# supported mac_sdk_version if the build_mac_version is not recognized.
mac_sdk_version := $(shell echo $(build_mac_version) | cut -d '.' -f 1,2)
ifeq ($(filter $(mac_sdk_version),$(mac_sdk_versions_supported)),)
mac_sdk_version := $(lastword $(mac_sdk_versions_supported))
endif
else
# try /Applications/Xcode*.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.?.sdk
#  or /Volume/Xcode/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.?.sdk
mac_sdk_root := $(mac_sdk_path)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX$(mac_sdk_version).sdk
ifeq ($(wildcard $(mac_sdk_root)),)
# try legacy /Developer/SDKs/MacOSX10.?.sdk
mac_sdk_root := /Developer/SDKs/MacOSX$(mac_sdk_version).sdk
endif
ifeq ($(wildcard $(mac_sdk_root)),)
$(warning *****************************************************)
$(warning * Can not find SDK $(mac_sdk_version) at $(mac_sdk_root))
$(warning *****************************************************)
$(error Stop.)
endif
endif # $(mac_sdk_path)

ifeq ($(mac_sdk_version),10.6)
  gcc_darwin_version := 10
else
  gcc_darwin_version := 11
endif

endif  # ifndef build_mac_version