mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-10 22:18:54 +01:00
depends: Allow building with system clang
This commit is contained in:
@@ -156,7 +156,11 @@ $(host_arch)_$(host_os)_native_toolchain?=$($(host_os)_native_toolchain)
|
|||||||
include funcs.mk
|
include funcs.mk
|
||||||
|
|
||||||
binutils_path=$($($(host_arch)_$(host_os)_native_binutils)_prefixbin)
|
binutils_path=$($($(host_arch)_$(host_os)_native_binutils)_prefixbin)
|
||||||
|
ifeq ($(strip $(FORCE_USE_SYSTEM_CLANG)),)
|
||||||
toolchain_path=$($($(host_arch)_$(host_os)_native_toolchain)_prefixbin)
|
toolchain_path=$($($(host_arch)_$(host_os)_native_toolchain)_prefixbin)
|
||||||
|
else
|
||||||
|
toolchain_path=
|
||||||
|
endif
|
||||||
final_build_id_long+=$(shell $(build_SHA256SUM) config.site.in)
|
final_build_id_long+=$(shell $(build_SHA256SUM) config.site.in)
|
||||||
final_build_id+=$(shell echo -n "$(final_build_id_long)" | $(build_SHA256SUM) | cut -c-$(HASH_LENGTH))
|
final_build_id+=$(shell echo -n "$(final_build_id_long)" | $(build_SHA256SUM) | cut -c-$(HASH_LENGTH))
|
||||||
$(host_prefix)/.stamp_$(final_build_id): $(native_packages) $(packages)
|
$(host_prefix)/.stamp_$(final_build_id): $(native_packages) $(packages)
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ OSX_SDK=$(SDK_PATH)/Xcode-$(XCODE_VERSION)-$(XCODE_BUILD_ID)-extracted-SDK-with-
|
|||||||
|
|
||||||
# When cross-compiling for Darwin using Clang, -mlinker-version must be passed to
|
# When cross-compiling for Darwin using Clang, -mlinker-version must be passed to
|
||||||
# ensure that modern linker features are enabled.
|
# ensure that modern linker features are enabled.
|
||||||
darwin_CC=clang -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK) -mlinker-version=$(LD64_VERSION)
|
darwin_CC=clang -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK) -mlinker-version=$(LD64_VERSION) -B$(build_prefix)/bin
|
||||||
darwin_CXX=clang++ -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK) -stdlib=libc++ -mlinker-version=$(LD64_VERSION)
|
darwin_CXX=clang++ -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK) -stdlib=libc++ -mlinker-version=$(LD64_VERSION) -B$(build_prefix)/bin
|
||||||
|
|
||||||
darwin_CFLAGS=-pipe
|
darwin_CFLAGS=-pipe
|
||||||
darwin_CXXFLAGS=$(darwin_CFLAGS)
|
darwin_CXXFLAGS=$(darwin_CFLAGS)
|
||||||
@@ -21,5 +21,10 @@ darwin_debug_CFLAGS=-O1
|
|||||||
darwin_debug_CXXFLAGS=$(darwin_debug_CFLAGS)
|
darwin_debug_CXXFLAGS=$(darwin_debug_CFLAGS)
|
||||||
|
|
||||||
darwin_native_binutils=native_cctools
|
darwin_native_binutils=native_cctools
|
||||||
|
ifeq ($(strip $(FORCE_USE_SYSTEM_CLANG)),)
|
||||||
darwin_native_toolchain=native_cctools
|
darwin_native_toolchain=native_cctools
|
||||||
|
else
|
||||||
|
darwin_native_toolchain=
|
||||||
|
endif
|
||||||
|
|
||||||
darwin_cmake_system=Darwin
|
darwin_cmake_system=Darwin
|
||||||
|
|||||||
@@ -4,11 +4,13 @@ $(package)_download_path=https://github.com/tpoechtrager/cctools-port/archive
|
|||||||
$(package)_file_name=$($(package)_version).tar.gz
|
$(package)_file_name=$($(package)_version).tar.gz
|
||||||
$(package)_sha256_hash=a2d491c0981cef72fee2b833598f20f42a6c44a7614a61c439bda93d56446fec
|
$(package)_sha256_hash=a2d491c0981cef72fee2b833598f20f42a6c44a7614a61c439bda93d56446fec
|
||||||
$(package)_build_subdir=cctools
|
$(package)_build_subdir=cctools
|
||||||
|
ifeq ($(strip $(FORCE_USE_SYSTEM_CLANG)),)
|
||||||
$(package)_clang_version=8.0.0
|
$(package)_clang_version=8.0.0
|
||||||
$(package)_clang_download_path=https://releases.llvm.org/$($(package)_clang_version)
|
$(package)_clang_download_path=https://releases.llvm.org/$($(package)_clang_version)
|
||||||
$(package)_clang_download_file=clang+llvm-$($(package)_clang_version)-x86_64-linux-gnu-ubuntu-14.04.tar.xz
|
$(package)_clang_download_file=clang+llvm-$($(package)_clang_version)-x86_64-linux-gnu-ubuntu-14.04.tar.xz
|
||||||
$(package)_clang_file_name=clang-llvm-$($(package)_clang_version)-x86_64-linux-gnu-ubuntu-14.04.tar.xz
|
$(package)_clang_file_name=clang-llvm-$($(package)_clang_version)-x86_64-linux-gnu-ubuntu-14.04.tar.xz
|
||||||
$(package)_clang_sha256_hash=9ef854b71949f825362a119bf2597f744836cb571131ae6b721cd102ffea8cd0
|
$(package)_clang_sha256_hash=9ef854b71949f825362a119bf2597f744836cb571131ae6b721cd102ffea8cd0
|
||||||
|
endif
|
||||||
|
|
||||||
$(package)_libtapi_version=3efb201881e7a76a21e0554906cf306432539cef
|
$(package)_libtapi_version=3efb201881e7a76a21e0554906cf306432539cef
|
||||||
$(package)_libtapi_download_path=https://github.com/tpoechtrager/apple-libtapi/archive
|
$(package)_libtapi_download_path=https://github.com/tpoechtrager/apple-libtapi/archive
|
||||||
@@ -16,15 +18,25 @@ $(package)_libtapi_download_file=$($(package)_libtapi_version).tar.gz
|
|||||||
$(package)_libtapi_file_name=$($(package)_libtapi_version).tar.gz
|
$(package)_libtapi_file_name=$($(package)_libtapi_version).tar.gz
|
||||||
$(package)_libtapi_sha256_hash=380c1ca37cfa04a8699d0887a8d3ee1ad27f3d08baba78887c73b09485c0fbd3
|
$(package)_libtapi_sha256_hash=380c1ca37cfa04a8699d0887a8d3ee1ad27f3d08baba78887c73b09485c0fbd3
|
||||||
|
|
||||||
$(package)_extra_sources=$($(package)_clang_file_name)
|
$(package)_extra_sources=$($(package)_libtapi_file_name)
|
||||||
$(package)_extra_sources += $($(package)_libtapi_file_name)
|
ifeq ($(strip $(FORCE_USE_SYSTEM_CLANG)),)
|
||||||
|
$(package)_extra_sources += $($(package)_clang_file_name)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(strip $(FORCE_USE_SYSTEM_CLANG)),)
|
||||||
define $(package)_fetch_cmds
|
define $(package)_fetch_cmds
|
||||||
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_download_file),$($(package)_file_name),$($(package)_sha256_hash)) && \
|
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_download_file),$($(package)_file_name),$($(package)_sha256_hash)) && \
|
||||||
$(call fetch_file,$(package),$($(package)_clang_download_path),$($(package)_clang_download_file),$($(package)_clang_file_name),$($(package)_clang_sha256_hash)) && \
|
$(call fetch_file,$(package),$($(package)_clang_download_path),$($(package)_clang_download_file),$($(package)_clang_file_name),$($(package)_clang_sha256_hash)) && \
|
||||||
$(call fetch_file,$(package),$($(package)_libtapi_download_path),$($(package)_libtapi_download_file),$($(package)_libtapi_file_name),$($(package)_libtapi_sha256_hash))
|
$(call fetch_file,$(package),$($(package)_libtapi_download_path),$($(package)_libtapi_download_file),$($(package)_libtapi_file_name),$($(package)_libtapi_sha256_hash))
|
||||||
endef
|
endef
|
||||||
|
else
|
||||||
|
define $(package)_fetch_cmds
|
||||||
|
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_download_file),$($(package)_file_name),$($(package)_sha256_hash)) && \
|
||||||
|
$(call fetch_file,$(package),$($(package)_libtapi_download_path),$($(package)_libtapi_download_file),$($(package)_libtapi_file_name),$($(package)_libtapi_sha256_hash))
|
||||||
|
endef
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(strip $(FORCE_USE_SYSTEM_CLANG)),)
|
||||||
define $(package)_extract_cmds
|
define $(package)_extract_cmds
|
||||||
mkdir -p $($(package)_extract_dir) && \
|
mkdir -p $($(package)_extract_dir) && \
|
||||||
echo "$($(package)_sha256_hash) $($(package)_source)" > $($(package)_extract_dir)/.$($(package)_file_name).hash && \
|
echo "$($(package)_sha256_hash) $($(package)_source)" > $($(package)_extract_dir)/.$($(package)_file_name).hash && \
|
||||||
@@ -38,12 +50,28 @@ define $(package)_extract_cmds
|
|||||||
rm -f toolchain/lib/libc++abi.so* && \
|
rm -f toolchain/lib/libc++abi.so* && \
|
||||||
tar --no-same-owner --strip-components=1 -xf $($(package)_source)
|
tar --no-same-owner --strip-components=1 -xf $($(package)_source)
|
||||||
endef
|
endef
|
||||||
|
else
|
||||||
|
define $(package)_extract_cmds
|
||||||
|
mkdir -p $($(package)_extract_dir) && \
|
||||||
|
echo "$($(package)_sha256_hash) $($(package)_source)" > $($(package)_extract_dir)/.$($(package)_file_name).hash && \
|
||||||
|
echo "$($(package)_libtapi_sha256_hash) $($(package)_source_dir)/$($(package)_libtapi_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
|
||||||
|
$(build_SHA256SUM) -c $($(package)_extract_dir)/.$($(package)_file_name).hash && \
|
||||||
|
mkdir -p libtapi && \
|
||||||
|
tar --no-same-owner --strip-components=1 -C libtapi -xf $($(package)_source_dir)/$($(package)_libtapi_file_name) && \
|
||||||
|
tar --no-same-owner --strip-components=1 -xf $($(package)_source)
|
||||||
|
endef
|
||||||
|
endif
|
||||||
|
|
||||||
define $(package)_set_vars
|
define $(package)_set_vars
|
||||||
$(package)_config_opts=--target=$(host) --disable-lto-support --with-libtapi=$($(package)_extract_dir)
|
$(package)_config_opts=--target=$(host) --disable-lto-support --with-libtapi=$($(package)_extract_dir)
|
||||||
$(package)_ldflags+=-Wl,-rpath=\\$$$$$$$$\$$$$$$$$ORIGIN/../lib
|
$(package)_ldflags+=-Wl,-rpath=\\$$$$$$$$\$$$$$$$$ORIGIN/../lib
|
||||||
|
ifeq ($(strip $(FORCE_USE_SYSTEM_CLANG)),)
|
||||||
$(package)_cc=$($(package)_extract_dir)/toolchain/bin/clang
|
$(package)_cc=$($(package)_extract_dir)/toolchain/bin/clang
|
||||||
$(package)_cxx=$($(package)_extract_dir)/toolchain/bin/clang++
|
$(package)_cxx=$($(package)_extract_dir)/toolchain/bin/clang++
|
||||||
|
else
|
||||||
|
$(package)_cc=clang
|
||||||
|
$(package)_cxx=clang++
|
||||||
|
endif
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define $(package)_preprocess_cmds
|
define $(package)_preprocess_cmds
|
||||||
@@ -60,6 +88,7 @@ define $(package)_build_cmds
|
|||||||
$(MAKE)
|
$(MAKE)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
ifeq ($(strip $(FORCE_USE_SYSTEM_CLANG)),)
|
||||||
define $(package)_stage_cmds
|
define $(package)_stage_cmds
|
||||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install && \
|
$(MAKE) DESTDIR=$($(package)_staging_dir) install && \
|
||||||
mkdir -p $($(package)_staging_prefix_dir)/lib/ && \
|
mkdir -p $($(package)_staging_prefix_dir)/lib/ && \
|
||||||
@@ -74,3 +103,11 @@ define $(package)_stage_cmds
|
|||||||
cp -rf lib/clang/$($(package)_clang_version)/include/* $($(package)_staging_prefix_dir)/lib/clang/$($(package)_clang_version)/include/ && \
|
cp -rf lib/clang/$($(package)_clang_version)/include/* $($(package)_staging_prefix_dir)/lib/clang/$($(package)_clang_version)/include/ && \
|
||||||
cp bin/dsymutil $($(package)_staging_prefix_dir)/bin/$(host)-dsymutil
|
cp bin/dsymutil $($(package)_staging_prefix_dir)/bin/$(host)-dsymutil
|
||||||
endef
|
endef
|
||||||
|
else
|
||||||
|
define $(package)_stage_cmds
|
||||||
|
$(MAKE) DESTDIR=$($(package)_staging_dir) install && \
|
||||||
|
mkdir -p $($(package)_staging_prefix_dir)/lib/ && \
|
||||||
|
cd $($(package)_extract_dir) && \
|
||||||
|
cp lib/libtapi.so.6 $($(package)_staging_prefix_dir)/lib/
|
||||||
|
endef
|
||||||
|
endif
|
||||||
|
|||||||
Reference in New Issue
Block a user