mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-05-30 17:50:44 +02:00
This reverts the changes made in merge commit 1b307613604883daea4913a65da30ae073c9dc4d: This reverts commit b919efadff3d0393f4a8c3c1dc735f7ac5c665bb. This reverts commit d54f64c6c700be0604190f52c84fc5f1cdd9f02f. This reverts commit 787f40668dc15980c3d6de028d7950c08175d84a. This reverts commit d6306466626635e6fee44385e6a688c8dc118eb5. This reverts commit e6e44eedd56ecaf59f3fabf8e07ab7dee0ddb1b6.
208 lines
7.1 KiB
Makefile
208 lines
7.1 KiB
Makefile
.NOTPARALLEL :
|
|
|
|
# Pattern rule to print variables, e.g. make print-top_srcdir
|
|
print-%:
|
|
@echo $* = $($*)
|
|
|
|
SOURCES_PATH ?= $(BASEDIR)/sources
|
|
WORK_PATH = $(BASEDIR)/work
|
|
BASE_CACHE ?= $(BASEDIR)/built
|
|
SDK_PATH ?= $(BASEDIR)/SDKs
|
|
NO_QT ?=
|
|
NO_QR ?=
|
|
NO_WALLET ?=
|
|
NO_ZMQ ?=
|
|
NO_UPNP ?=
|
|
FALLBACK_DOWNLOAD_PATH ?= https://bitcoincore.org/depends-sources
|
|
|
|
BUILD = $(shell ./config.guess)
|
|
HOST ?= $(BUILD)
|
|
PATCHES_PATH = $(BASEDIR)/patches
|
|
BASEDIR = $(CURDIR)
|
|
HASH_LENGTH:=11
|
|
DOWNLOAD_CONNECT_TIMEOUT:=30
|
|
DOWNLOAD_RETRIES:=3
|
|
HOST_ID_SALT ?= salt
|
|
BUILD_ID_SALT ?= salt
|
|
|
|
host:=$(BUILD)
|
|
ifneq ($(HOST),)
|
|
host:=$(HOST)
|
|
endif
|
|
|
|
ifneq ($(DEBUG),)
|
|
release_type=debug
|
|
else
|
|
release_type=release
|
|
endif
|
|
|
|
base_build_dir=$(WORK_PATH)/build
|
|
base_staging_dir=$(WORK_PATH)/staging
|
|
base_download_dir=$(WORK_PATH)/download
|
|
canonical_host:=$(shell ./config.sub $(HOST))
|
|
build:=$(shell ./config.sub $(BUILD))
|
|
|
|
build_arch =$(firstword $(subst -, ,$(build)))
|
|
build_vendor=$(word 2,$(subst -, ,$(build)))
|
|
full_build_os:=$(subst $(build_arch)-$(build_vendor)-,,$(build))
|
|
build_os:=$(findstring linux,$(full_build_os))
|
|
build_os+=$(findstring darwin,$(full_build_os))
|
|
build_os:=$(strip $(build_os))
|
|
ifeq ($(build_os),)
|
|
build_os=$(full_build_os)
|
|
endif
|
|
|
|
host_arch=$(firstword $(subst -, ,$(canonical_host)))
|
|
host_vendor=$(word 2,$(subst -, ,$(canonical_host)))
|
|
full_host_os:=$(subst $(host_arch)-$(host_vendor)-,,$(canonical_host))
|
|
host_os:=$(findstring linux,$(full_host_os))
|
|
host_os+=$(findstring darwin,$(full_host_os))
|
|
host_os+=$(findstring mingw32,$(full_host_os))
|
|
|
|
ifeq (android,$(findstring android,$(full_host_os)))
|
|
host_os:=android
|
|
endif
|
|
|
|
host_os:=$(strip $(host_os))
|
|
ifeq ($(host_os),)
|
|
host_os=$(full_host_os)
|
|
endif
|
|
|
|
$(host_arch)_$(host_os)_prefix=$(BASEDIR)/$(host)
|
|
$(host_arch)_$(host_os)_host=$(host)
|
|
host_prefix=$($(host_arch)_$(host_os)_prefix)
|
|
build_prefix=$(host_prefix)/native
|
|
build_host=$(build)
|
|
|
|
AT_$(V):=
|
|
AT_:=@
|
|
AT:=$(AT_$(V))
|
|
|
|
all: install
|
|
|
|
include hosts/$(host_os).mk
|
|
include hosts/default.mk
|
|
include builders/$(build_os).mk
|
|
include builders/default.mk
|
|
include packages/packages.mk
|
|
|
|
build_id_string:=$(BUILD_ID_SALT)
|
|
build_id_string+=$(shell $(build_CC) --version 2>/dev/null)
|
|
build_id_string+=$(shell $(build_AR) --version 2>/dev/null)
|
|
build_id_string+=$(shell $(build_CXX) --version 2>/dev/null)
|
|
build_id_string+=$(shell $(build_RANLIB) --version 2>/dev/null)
|
|
build_id_string+=$(shell $(build_STRIP) --version 2>/dev/null)
|
|
|
|
$(host_arch)_$(host_os)_id_string:=$(HOST_ID_SALT)
|
|
$(host_arch)_$(host_os)_id_string+=$(shell $(host_CC) --version 2>/dev/null)
|
|
$(host_arch)_$(host_os)_id_string+=$(shell $(host_AR) --version 2>/dev/null)
|
|
$(host_arch)_$(host_os)_id_string+=$(shell $(host_CXX) --version 2>/dev/null)
|
|
$(host_arch)_$(host_os)_id_string+=$(shell $(host_RANLIB) --version 2>/dev/null)
|
|
$(host_arch)_$(host_os)_id_string+=$(shell $(host_STRIP) --version 2>/dev/null)
|
|
|
|
qrencode_packages_$(NO_QR) = $(qrencode_packages)
|
|
|
|
qt_packages_$(NO_QT) = $(qt_packages) $(qt_$(host_os)_packages) $(qt_$(host_arch)_$(host_os)_packages) $(qrencode_packages_)
|
|
|
|
wallet_packages_$(NO_WALLET) = $(wallet_packages)
|
|
upnp_packages_$(NO_UPNP) = $(upnp_packages)
|
|
zmq_packages_$(NO_ZMQ) = $(zmq_packages)
|
|
|
|
packages += $($(host_arch)_$(host_os)_packages) $($(host_os)_packages) $(qt_packages_) $(wallet_packages_) $(upnp_packages_)
|
|
native_packages += $($(host_arch)_$(host_os)_native_packages) $($(host_os)_native_packages)
|
|
|
|
ifneq ($(zmq_packages_),)
|
|
packages += $(zmq_packages)
|
|
endif
|
|
|
|
all_packages = $(packages) $(native_packages)
|
|
|
|
meta_depends = Makefile funcs.mk builders/default.mk hosts/default.mk hosts/$(host_os).mk builders/$(build_os).mk
|
|
|
|
$(host_arch)_$(host_os)_native_toolchain?=$($(host_os)_native_toolchain)
|
|
|
|
include funcs.mk
|
|
|
|
toolchain_path=$($($(host_arch)_$(host_os)_native_toolchain)_prefixbin)
|
|
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))
|
|
$(host_prefix)/.stamp_$(final_build_id): $(native_packages) $(packages)
|
|
$(AT)rm -rf $(@D)
|
|
$(AT)mkdir -p $(@D)
|
|
$(AT)echo copying packages: $^
|
|
$(AT)echo to: $(@D)
|
|
$(AT)cd $(@D); $(foreach package,$^, tar xf $($(package)_cached); )
|
|
$(AT)touch $@
|
|
|
|
$(host_prefix)/share/config.site : config.site.in $(host_prefix)/.stamp_$(final_build_id)
|
|
$(AT)@mkdir -p $(@D)
|
|
$(AT)sed -e 's|@HOST@|$(host)|' \
|
|
-e 's|@CC@|$(toolchain_path)$(host_CC)|' \
|
|
-e 's|@CXX@|$(toolchain_path)$(host_CXX)|' \
|
|
-e 's|@AR@|$(toolchain_path)$(host_AR)|' \
|
|
-e 's|@RANLIB@|$(toolchain_path)$(host_RANLIB)|' \
|
|
-e 's|@NM@|$(toolchain_path)$(host_NM)|' \
|
|
-e 's|@STRIP@|$(toolchain_path)$(host_STRIP)|' \
|
|
-e 's|@build_os@|$(build_os)|' \
|
|
-e 's|@host_os@|$(host_os)|' \
|
|
-e 's|@CFLAGS@|$(strip $(host_CFLAGS) $(host_$(release_type)_CFLAGS))|' \
|
|
-e 's|@CXXFLAGS@|$(strip $(host_CXXFLAGS) $(host_$(release_type)_CXXFLAGS))|' \
|
|
-e 's|@CPPFLAGS@|$(strip $(host_CPPFLAGS) $(host_$(release_type)_CPPFLAGS))|' \
|
|
-e 's|@LDFLAGS@|$(strip $(host_LDFLAGS) $(host_$(release_type)_LDFLAGS))|' \
|
|
-e 's|@allow_host_packages@|$(ALLOW_HOST_PACKAGES)|' \
|
|
-e 's|@no_qt@|$(NO_QT)|' \
|
|
-e 's|@no_qr@|$(NO_QR)|' \
|
|
-e 's|@no_zmq@|$(NO_ZMQ)|' \
|
|
-e 's|@no_wallet@|$(NO_WALLET)|' \
|
|
-e 's|@no_upnp@|$(NO_UPNP)|' \
|
|
-e 's|@debug@|$(DEBUG)|' \
|
|
$< > $@
|
|
$(AT)touch $@
|
|
|
|
|
|
define check_or_remove_cached
|
|
mkdir -p $(BASE_CACHE)/$(host)/$(package) && cd $(BASE_CACHE)/$(host)/$(package); \
|
|
$(build_SHA256SUM) -c $($(package)_cached_checksum) >/dev/null 2>/dev/null || \
|
|
( rm -f $($(package)_cached_checksum); \
|
|
if test -f "$($(package)_cached)"; then echo "Checksum mismatch for $(package). Forcing rebuild.."; rm -f $($(package)_cached_checksum) $($(package)_cached); fi )
|
|
endef
|
|
|
|
define check_or_remove_sources
|
|
mkdir -p $($(package)_source_dir); cd $($(package)_source_dir); \
|
|
test -f $($(package)_fetched) && ( $(build_SHA256SUM) -c $($(package)_fetched) >/dev/null 2>/dev/null || \
|
|
( echo "Checksum missing or mismatched for $(package) source. Forcing re-download."; \
|
|
rm -f $($(package)_all_sources) $($(1)_fetched))) || true
|
|
endef
|
|
|
|
check-packages:
|
|
@$(foreach package,$(all_packages),$(call check_or_remove_cached,$(package));)
|
|
check-sources:
|
|
@$(foreach package,$(all_packages),$(call check_or_remove_sources,$(package));)
|
|
|
|
$(host_prefix)/share/config.site: check-packages
|
|
|
|
check-packages: check-sources
|
|
|
|
clean-all: clean
|
|
@rm -rf $(SOURCES_PATH) x86_64* i686* mips* arm* aarch64* powerpc* riscv32* riscv64* s390x*
|
|
|
|
clean:
|
|
@rm -rf $(WORK_PATH) $(BASE_CACHE) $(BUILD)
|
|
|
|
install: check-packages $(host_prefix)/share/config.site
|
|
|
|
|
|
download-one: check-sources $(all_sources)
|
|
|
|
download-osx:
|
|
@$(MAKE) -s HOST=x86_64-apple-darwin14 download-one
|
|
download-linux:
|
|
@$(MAKE) -s HOST=x86_64-unknown-linux-gnu download-one
|
|
download-win:
|
|
@$(MAKE) -s HOST=x86_64-w64-mingw32 download-one
|
|
download: download-osx download-linux download-win
|
|
|
|
$(foreach package,$(all_packages),$(eval $(call ext_add_stages,$(package))))
|
|
|
|
.PHONY: install cached clean clean-all download-one download-osx download-linux download-win download check-packages check-sources
|