Changeset View
Changeset View
Standalone View
Standalone View
depends/packages/native_cctools.mk
package=native_cctools | package=native_cctools | ||||
$(package)_version=4da2f3b485bcf4cef526f30c0b8c0bcda99cdbb4 | $(package)_version=4da2f3b485bcf4cef526f30c0b8c0bcda99cdbb4 | ||||
$(package)_download_path=https://github.com/tpoechtrager/cctools-port/archive | $(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 | ||||
$(package)_patches=ld64_disable_threading.patch | $(package)_patches=ld64_disable_threading.patch | ||||
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-16.04.tar.xz | $(package)_clang_download_file=clang+llvm-$($(package)_clang_version)-x86_64-linux-gnu-ubuntu-16.04.tar.xz | ||||
$(package)_clang_file_name=clang-llvm-$($(package)_clang_version)-x86_64-linux-gnu-ubuntu-16.04.tar.xz | $(package)_clang_file_name=clang-llvm-$($(package)_clang_version)-x86_64-linux-gnu-ubuntu-16.04.tar.xz | ||||
$(package)_clang_sha256_hash=87b88d620284d1f0573923e6f7cc89edccf11d19ebaec1cfb83b4f09ac5db09c | $(package)_clang_sha256_hash=87b88d620284d1f0573923e6f7cc89edccf11d19ebaec1cfb83b4f09ac5db09c | ||||
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 | ||||
$(package)_libtapi_download_file=$($(package)_libtapi_version).tar.gz | $(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 && \ | ||||
echo "$($(package)_clang_sha256_hash) $($(package)_source_dir)/$($(package)_clang_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \ | echo "$($(package)_clang_sha256_hash) $($(package)_source_dir)/$($(package)_clang_file_name)" >> $($(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 && \ | 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 && \ | $(build_SHA256SUM) -c $($(package)_extract_dir)/.$($(package)_file_name).hash && \ | ||||
mkdir -p toolchain/bin toolchain/lib/clang/$($(package)_clang_version)/include && \ | mkdir -p toolchain/bin toolchain/lib/clang/$($(package)_clang_version)/include && \ | ||||
mkdir -p libtapi && \ | 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 -C libtapi -xf $($(package)_source_dir)/$($(package)_libtapi_file_name) && \ | ||||
tar --no-same-owner --strip-components=1 -C toolchain -xf $($(package)_source_dir)/$($(package)_clang_file_name) && \ | tar --no-same-owner --strip-components=1 -C toolchain -xf $($(package)_source_dir)/$($(package)_clang_file_name) && \ | ||||
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 | ||||
CC=$($(package)_cc) CXX=$($(package)_cxx) INSTALLPREFIX=$($(package)_extract_dir) ./libtapi/build.sh && \ | CC=$($(package)_cc) CXX=$($(package)_cxx) INSTALLPREFIX=$($(package)_extract_dir) ./libtapi/build.sh && \ | ||||
CC=$($(package)_cc) CXX=$($(package)_cxx) INSTALLPREFIX=$($(package)_extract_dir) ./libtapi/install.sh && \ | CC=$($(package)_cc) CXX=$($(package)_cxx) INSTALLPREFIX=$($(package)_extract_dir) ./libtapi/install.sh && \ | ||||
patch -p1 < $($(package)_patch_dir)/ld64_disable_threading.patch | patch -p1 < $($(package)_patch_dir)/ld64_disable_threading.patch | ||||
endef | endef | ||||
define $(package)_config_cmds | define $(package)_config_cmds | ||||
$($(package)_autoconf) | $($(package)_autoconf) | ||||
endef | endef | ||||
define $(package)_build_cmds | define $(package)_build_cmds | ||||
$(MAKE) -j$(JOBS) | $(MAKE) -j$(JOBS) | ||||
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/ && \ | ||||
cd $($(package)_extract_dir) && \ | cd $($(package)_extract_dir) && \ | ||||
cp lib/libtapi.so.6 $($(package)_staging_prefix_dir)/lib/ && \ | cp lib/libtapi.so.6 $($(package)_staging_prefix_dir)/lib/ && \ | ||||
cd $($(package)_extract_dir)/toolchain && \ | cd $($(package)_extract_dir)/toolchain && \ | ||||
mkdir -p $($(package)_staging_prefix_dir)/lib/clang/$($(package)_clang_version)/include && \ | mkdir -p $($(package)_staging_prefix_dir)/lib/clang/$($(package)_clang_version)/include && \ | ||||
mkdir -p $($(package)_staging_prefix_dir)/bin $($(package)_staging_prefix_dir)/include && \ | mkdir -p $($(package)_staging_prefix_dir)/bin $($(package)_staging_prefix_dir)/include && \ | ||||
cp bin/clang $($(package)_staging_prefix_dir)/bin/ &&\ | cp bin/clang $($(package)_staging_prefix_dir)/bin/ &&\ | ||||
cp -P bin/clang++ $($(package)_staging_prefix_dir)/bin/ &&\ | cp -P bin/clang++ $($(package)_staging_prefix_dir)/bin/ &&\ | ||||
cp lib/libLTO.so $($(package)_staging_prefix_dir)/lib/ && \ | cp lib/libLTO.so $($(package)_staging_prefix_dir)/lib/ && \ | ||||
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 |