platform_build/core/combo/mac_version.mk
Dan Willemsen ee4a6fa59e OSX: Use the oldest SDK, but always set our target to 10.8
Build binaries usable on older machines even if older SDKs are not
installed. Older SDKs can no longer be installed on newer Xcode
versions.

Change-Id: I0c9f2534466a127a19107820879c2856bfac0076
2016-03-09 10:52:59 -08:00

50 lines
2.1 KiB
Makefile

# Detect Mac OS X and SDK versions.
# Output variables:
# build_mac_version
# mac_sdk_version
# mac_sdk_root
# gcc_darwin_version
# You can no longer install older SDKs in newer xcode versions, so it appears
# to be expected to use the newer SDKs, but set command line flags in order to
# target older Mac OS X versions.
#
# We'll use the oldest SDK we can find, and then use the -mmacosx-version-min
# and MACOSX_DEPLOYMENT_TARGET flags to set our minimum version.
ifndef build_mac_version
build_mac_version := $(shell sw_vers -productVersion)
mac_sdk_versions_supported := 10.8 10.9 10.10 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 | grep macosx | 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)
# 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)),)
$(warning *****************************************************)
$(warning * Can not find SDK $(mac_sdk_version) at $(mac_sdk_root))
$(warning *****************************************************)
$(error Stop.)
endif
# Set to the minimum version of OS X that we want to run on.
mac_sdk_version := $(firstword $(mac_sdk_versions_supported))
endif # ifndef build_mac_version