forked from LayerTwo-Labs/mainchain-deprecated
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
90e54e9
commit 679372f
Showing
2 changed files
with
118 additions
and
20 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,22 +1,30 @@ | ||
build_darwin_CC: = $(shell xcrun -f clang) | ||
build_darwin_CXX: = $(shell xcrun -f clang++) | ||
build_darwin_AR: = $(shell xcrun -f ar) | ||
build_darwin_RANLIB: = $(shell xcrun -f ranlib) | ||
build_darwin_STRIP: = $(shell xcrun -f strip) | ||
build_darwin_OTOOL: = $(shell xcrun -f otool) | ||
build_darwin_NM: = $(shell xcrun -f nm) | ||
build_darwin_CC:=$(shell xcrun -f clang) -isysroot$(shell xcrun --show-sdk-path) | ||
build_darwin_CXX:=$(shell xcrun -f clang++) -isysroot$(shell xcrun --show-sdk-path) | ||
build_darwin_AR:=$(shell xcrun -f ar) | ||
build_darwin_RANLIB:=$(shell xcrun -f ranlib) | ||
build_darwin_STRIP:=$(shell xcrun -f strip) | ||
build_darwin_OTOOL:=$(shell xcrun -f otool) | ||
build_darwin_NM:=$(shell xcrun -f nm) | ||
build_darwin_INSTALL_NAME_TOOL:=$(shell xcrun -f install_name_tool) | ||
build_darwin_SHA256SUM = shasum -a 256 | ||
build_darwin_DOWNLOAD = curl --location --fail --connect-timeout $(DOWNLOAD_CONNECT_TIMEOUT) --retry $(DOWNLOAD_RETRIES) -o | ||
build_darwin_DSYMUTIL:=$(shell xcrun -f dsymutil) | ||
build_darwin_SHA256SUM=shasum -a 256 | ||
build_darwin_DOWNLOAD=curl --location --fail --connect-timeout $(DOWNLOAD_CONNECT_TIMEOUT) --retry $(DOWNLOAD_RETRIES) -o | ||
|
||
#darwin host on darwin builder. overrides darwin host preferences. | ||
darwin_CC=$(shell xcrun -f clang) -mmacosx-version-min=$(OSX_MIN_VERSION) | ||
darwin_CXX:=$(shell xcrun -f clang++) -mmacosx-version-min=$(OSX_MIN_VERSION) -stdlib=libc++ | ||
darwin_CC=$(shell xcrun -f clang) -mmacosx-version-min=$(OSX_MIN_VERSION) -isysroot$(shell xcrun --show-sdk-path) | ||
darwin_CXX:=$(shell xcrun -f clang++) -mmacosx-version-min=$(OSX_MIN_VERSION) -stdlib=libc++ -isysroot$(shell xcrun --show-sdk-path) | ||
darwin_AR:=$(shell xcrun -f ar) | ||
darwin_RANLIB:=$(shell xcrun -f ranlib) | ||
darwin_STRIP:=$(shell xcrun -f strip) | ||
darwin_LIBTOOL:=$(shell xcrun -f libtool) | ||
darwin_OTOOL:=$(shell xcrun -f otool) | ||
darwin_NM:=$(shell xcrun -f nm) | ||
darwin_INSTALL_NAME_TOOL:=$(shell xcrun -f install_name_tool) | ||
darwin_DSYMUTIL:=$(shell xcrun -f dsymutil) | ||
darwin_native_binutils= | ||
darwin_native_toolchain= | ||
|
||
x86_64_darwin_CFLAGS += -arch x86_64 | ||
x86_64_darwin_CXXFLAGS += -arch x86_64 | ||
aarch64_darwin_CFLAGS += -arch arm64 | ||
aarch64_darwin_CXXFLAGS += -arch arm64 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,107 @@ | ||
OSX_MIN_VERSION=10.8 | ||
OSX_SDK_VERSION=10.11 | ||
OSX_SDK=$(SDK_PATH)/MacOSX$(OSX_SDK_VERSION).sdk | ||
LD64_VERSION=253.9 | ||
darwin_CC=clang -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK) -mlinker-version=$(LD64_VERSION) | ||
darwin_CXX=clang++ -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK) -mlinker-version=$(LD64_VERSION) -stdlib=libc++ | ||
OSX_MIN_VERSION=11.0 | ||
OSX_SDK_VERSION=11.0 | ||
XCODE_VERSION=12.2 | ||
XCODE_BUILD_ID=12B45b | ||
LD64_VERSION=711 | ||
|
||
darwin_CFLAGS=-pipe | ||
darwin_CXXFLAGS=$(darwin_CFLAGS) | ||
OSX_SDK=$(SDK_PATH)/Xcode-$(XCODE_VERSION)-$(XCODE_BUILD_ID)-extracted-SDK-with-libcxx-headers | ||
|
||
darwin_native_binutils=native_cctools | ||
|
||
ifeq ($(strip $(FORCE_USE_SYSTEM_CLANG)),) | ||
# FORCE_USE_SYSTEM_CLANG is empty, so we use our depends-managed, pinned clang | ||
# from llvm.org | ||
|
||
# Clang is a dependency of native_cctools when FORCE_USE_SYSTEM_CLANG is empty | ||
darwin_native_toolchain=native_cctools | ||
|
||
clang_prog=$(build_prefix)/bin/clang | ||
clangxx_prog=$(clang_prog)++ | ||
llvm_config_prog=$(build_prefix)/bin/llvm-config | ||
|
||
else | ||
# FORCE_USE_SYSTEM_CLANG is non-empty, so we use the clang from the user's | ||
# system | ||
|
||
darwin_native_toolchain= | ||
|
||
# We can't just use $(shell command -v clang) because GNU Make handles builtins | ||
# in a special way and doesn't know that `command` is a POSIX-standard builtin | ||
# prior to 1af314465e5dfe3e8baa839a32a72e83c04f26ef, first released in v4.2.90. | ||
# At the time of writing, GNU Make v4.2.1 is still being used in supported | ||
# distro releases. | ||
# | ||
# Source: https://lists.gnu.org/archive/html/bug-make/2017-11/msg00017.html | ||
clang_prog=$(shell $(SHELL) $(.SHELLFLAGS) "command -v clang") | ||
clangxx_prog=$(shell $(SHELL) $(.SHELLFLAGS) "command -v clang++") | ||
llvm_config_prog=$(shell $(SHELL) $(.SHELLFLAGS) "command -v llvm-config") | ||
|
||
llvm_lib_dir=$(shell $(llvm_config_prog) --libdir) | ||
endif | ||
|
||
cctools_TOOLS=AR RANLIB STRIP NM LIBTOOL OTOOL INSTALL_NAME_TOOL DSYMUTIL | ||
|
||
# Make-only lowercase function | ||
lc = $(subst A,a,$(subst B,b,$(subst C,c,$(subst D,d,$(subst E,e,$(subst F,f,$(subst G,g,$(subst H,h,$(subst I,i,$(subst J,j,$(subst K,k,$(subst L,l,$(subst M,m,$(subst N,n,$(subst O,o,$(subst P,p,$(subst Q,q,$(subst R,r,$(subst S,s,$(subst T,t,$(subst U,u,$(subst V,v,$(subst W,w,$(subst X,x,$(subst Y,y,$(subst Z,z,$1)))))))))))))))))))))))))) | ||
|
||
# For well-known tools provided by cctools, make sure that their well-known | ||
# variable is set to the full path of the tool, just like how AC_PATH_{TOO,PROG} | ||
# would. | ||
$(foreach TOOL,$(cctools_TOOLS),$(eval darwin_$(TOOL) = $$(build_prefix)/bin/$$(host)-$(call lc,$(TOOL)))) | ||
|
||
# Flag explanations: | ||
# | ||
# -mlinker-version | ||
# | ||
# Ensures that modern linker features are enabled. See here for more | ||
# details: https://github.com/bitcoin/bitcoin/pull/19407. | ||
# | ||
# -B$(build_prefix)/bin | ||
# | ||
# Explicitly point to our binaries (e.g. cctools) so that they are | ||
# ensured to be found and preferred over other possibilities. | ||
# | ||
# -isysroot$(OSX_SDK) -nostdlibinc | ||
# | ||
# Disable default include paths built into the compiler as well as | ||
# those normally included for libc and libc++. The only path that | ||
# remains implicitly is the clang resource dir. | ||
# | ||
# -iwithsysroot / -iframeworkwithsysroot | ||
# | ||
# Adds the desired paths from the SDK | ||
# | ||
|
||
darwin_CC=env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH \ | ||
-u OBJC_INCLUDE_PATH -u OBJCPLUS_INCLUDE_PATH -u CPATH \ | ||
-u LIBRARY_PATH \ | ||
$(clang_prog) --target=$(host) -mmacosx-version-min=$(OSX_MIN_VERSION) \ | ||
-B$(build_prefix)/bin -mlinker-version=$(LD64_VERSION) \ | ||
-isysroot$(OSX_SDK) -nostdlibinc \ | ||
-iwithsysroot/usr/include -iframeworkwithsysroot/System/Library/Frameworks | ||
|
||
darwin_CXX=env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH \ | ||
-u OBJC_INCLUDE_PATH -u OBJCPLUS_INCLUDE_PATH -u CPATH \ | ||
-u LIBRARY_PATH \ | ||
$(clangxx_prog) --target=$(host) -mmacosx-version-min=$(OSX_MIN_VERSION) \ | ||
-B$(build_prefix)/bin -mlinker-version=$(LD64_VERSION) \ | ||
-isysroot$(OSX_SDK) -nostdlibinc \ | ||
-iwithsysroot/usr/include/c++/v1 \ | ||
-iwithsysroot/usr/include -iframeworkwithsysroot/System/Library/Frameworks | ||
|
||
darwin_CFLAGS=-pipe -std=$(C_STANDARD) | ||
darwin_CXXFLAGS=-pipe -std=$(CXX_STANDARD) | ||
|
||
ifneq ($(LTO),) | ||
darwin_CFLAGS += -flto | ||
darwin_CXXFLAGS += -flto | ||
darwin_LDFLAGS += -flto | ||
endif | ||
|
||
darwin_release_CFLAGS=-O2 | ||
darwin_release_CXXFLAGS=$(darwin_release_CFLAGS) | ||
|
||
darwin_debug_CFLAGS=-O1 | ||
darwin_debug_CXXFLAGS=$(darwin_debug_CFLAGS) | ||
|
||
darwin_native_toolchain=native_cctools | ||
darwin_cmake_system=Darwin |