Skip to content

Commit 765e0be

Browse files
committed
build: split native_cctools
1 parent 3ececa7 commit 765e0be

File tree

5 files changed

+63
-91
lines changed

5 files changed

+63
-91
lines changed

depends/hosts/darwin.mk

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,13 @@ ifeq ($(strip $(FORCE_USE_SYSTEM_CLANG)),)
1212
# FORCE_USE_SYSTEM_CLANG is empty, so we use our depends-managed, pinned clang
1313
# from llvm.org
1414

15-
# The native_cctools package is what provides clang when FORCE_USE_SYSTEM_CLANG
16-
# is empty
15+
# Clang is a dependency of native_cctools when FORCE_USE_SYSTEM_CLANG is empty
1716
darwin_native_toolchain=native_cctools
1817

1918
clang_prog=$(build_prefix)/bin/clang
2019
clangxx_prog=$(clang_prog)++
2120

22-
clang_resource_dir=$(build_prefix)/lib/clang/$(native_cctools_clang_version)
21+
clang_resource_dir=$(build_prefix)/lib/clang/$(native_clang_version)
2322
else
2423
# FORCE_USE_SYSTEM_CLANG is non-empty, so we use the clang from the user's
2524
# system

depends/packages/native_cctools.mk

Lines changed: 9 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -5,81 +5,19 @@ $(package)_file_name=$($(package)_version).tar.gz
55
$(package)_sha256_hash=e51995a843533a3dac155dd0c71362dd471597a2d23f13dff194c6285362f875
66
$(package)_build_subdir=cctools
77
$(package)_patches=ld64_disable_threading.patch
8-
9-
ifeq ($(strip $(FORCE_USE_SYSTEM_CLANG)),)
10-
$(package)_clang_version=8.0.0
11-
$(package)_clang_download_path=https://releases.llvm.org/$($(package)_clang_version)
12-
$(package)_clang_download_file=clang+llvm-$($(package)_clang_version)-x86_64-linux-gnu-ubuntu-14.04.tar.xz
13-
$(package)_clang_file_name=clang-llvm-$($(package)_clang_version)-x86_64-linux-gnu-ubuntu-14.04.tar.xz
14-
$(package)_clang_sha256_hash=9ef854b71949f825362a119bf2597f744836cb571131ae6b721cd102ffea8cd0
15-
endif
16-
17-
$(package)_libtapi_version=3efb201881e7a76a21e0554906cf306432539cef
18-
$(package)_libtapi_download_path=https://github.com/tpoechtrager/apple-libtapi/archive
19-
$(package)_libtapi_download_file=$($(package)_libtapi_version).tar.gz
20-
$(package)_libtapi_file_name=$($(package)_libtapi_version).tar.gz
21-
$(package)_libtapi_sha256_hash=380c1ca37cfa04a8699d0887a8d3ee1ad27f3d08baba78887c73b09485c0fbd3
22-
23-
$(package)_extra_sources=$($(package)_libtapi_file_name)
24-
ifeq ($(strip $(FORCE_USE_SYSTEM_CLANG)),)
25-
$(package)_extra_sources += $($(package)_clang_file_name)
26-
endif
27-
28-
ifeq ($(strip $(FORCE_USE_SYSTEM_CLANG)),)
29-
define $(package)_fetch_cmds
30-
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_download_file),$($(package)_file_name),$($(package)_sha256_hash)) && \
31-
$(call fetch_file,$(package),$($(package)_clang_download_path),$($(package)_clang_download_file),$($(package)_clang_file_name),$($(package)_clang_sha256_hash)) && \
32-
$(call fetch_file,$(package),$($(package)_libtapi_download_path),$($(package)_libtapi_download_file),$($(package)_libtapi_file_name),$($(package)_libtapi_sha256_hash))
33-
endef
34-
else
35-
define $(package)_fetch_cmds
36-
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_download_file),$($(package)_file_name),$($(package)_sha256_hash)) && \
37-
$(call fetch_file,$(package),$($(package)_libtapi_download_path),$($(package)_libtapi_download_file),$($(package)_libtapi_file_name),$($(package)_libtapi_sha256_hash))
38-
endef
39-
endif
40-
41-
ifeq ($(strip $(FORCE_USE_SYSTEM_CLANG)),)
42-
define $(package)_extract_cmds
43-
mkdir -p $($(package)_extract_dir) && \
44-
echo "$($(package)_sha256_hash) $($(package)_source)" > $($(package)_extract_dir)/.$($(package)_file_name).hash && \
45-
echo "$($(package)_clang_sha256_hash) $($(package)_source_dir)/$($(package)_clang_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
46-
echo "$($(package)_libtapi_sha256_hash) $($(package)_source_dir)/$($(package)_libtapi_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
47-
$(build_SHA256SUM) -c $($(package)_extract_dir)/.$($(package)_file_name).hash && \
48-
mkdir -p toolchain/bin toolchain/lib/clang/$($(package)_clang_version)/include && \
49-
mkdir -p libtapi && \
50-
tar --no-same-owner --strip-components=1 -C libtapi -xf $($(package)_source_dir)/$($(package)_libtapi_file_name) && \
51-
tar --no-same-owner --strip-components=1 -C toolchain -xf $($(package)_source_dir)/$($(package)_clang_file_name) && \
52-
rm -f toolchain/lib/libc++abi.so* && \
53-
tar --no-same-owner --strip-components=1 -xf $($(package)_source)
54-
endef
55-
else
56-
define $(package)_extract_cmds
57-
mkdir -p $($(package)_extract_dir) && \
58-
echo "$($(package)_sha256_hash) $($(package)_source)" > $($(package)_extract_dir)/.$($(package)_file_name).hash && \
59-
echo "$($(package)_libtapi_sha256_hash) $($(package)_source_dir)/$($(package)_libtapi_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
60-
$(build_SHA256SUM) -c $($(package)_extract_dir)/.$($(package)_file_name).hash && \
61-
mkdir -p libtapi && \
62-
tar --no-same-owner --strip-components=1 -C libtapi -xf $($(package)_source_dir)/$($(package)_libtapi_file_name) && \
63-
tar --no-same-owner --strip-components=1 -xf $($(package)_source)
64-
endef
65-
endif
8+
$(package)_dependencies=native_libtapi
669

6710
define $(package)_set_vars
68-
$(package)_config_opts=--target=$(host) --with-libtapi=$($(package)_extract_dir)
11+
$(package)_config_opts=--target=$(host)
6912
$(package)_ldflags+=-Wl,-rpath=\\$$$$$$$$\$$$$$$$$ORIGIN/../lib
7013
ifeq ($(strip $(FORCE_USE_SYSTEM_CLANG)),)
71-
$(package)_config_opts+=--enable-lto-support --with-llvm-config=$($(package)_extract_dir)/toolchain/bin/llvm-config
72-
$(package)_cc=$($(package)_extract_dir)/toolchain/bin/clang
73-
$(package)_cxx=$($(package)_extract_dir)/toolchain/bin/clang++
74-
else
75-
$(package)_cc=clang
76-
$(package)_cxx=clang++
14+
$(package)_config_opts+=--enable-lto-support --with-llvm-config=$(build_prefix)/bin/llvm-config
7715
endif
16+
$(package)_cc=$(clang_prog)
17+
$(package)_cxx=$(clangxx_prog)
7818
endef
7919

8020
define $(package)_preprocess_cmds
81-
CC=$($(package)_cc) CXX=$($(package)_cxx) INSTALLPREFIX=$($(package)_extract_dir) ./libtapi/build.sh && \
82-
CC=$($(package)_cc) CXX=$($(package)_cxx) INSTALLPREFIX=$($(package)_extract_dir) ./libtapi/install.sh && \
8321
patch -p1 < $($(package)_patch_dir)/ld64_disable_threading.patch
8422
endef
8523

@@ -91,26 +29,10 @@ define $(package)_build_cmds
9129
$(MAKE)
9230
endef
9331

94-
ifeq ($(strip $(FORCE_USE_SYSTEM_CLANG)),)
9532
define $(package)_stage_cmds
96-
$(MAKE) DESTDIR=$($(package)_staging_dir) install && \
97-
mkdir -p $($(package)_staging_prefix_dir)/lib/ && \
98-
cd $($(package)_extract_dir) && \
99-
cp lib/libtapi.so.6 $($(package)_staging_prefix_dir)/lib/ && \
100-
cd $($(package)_extract_dir)/toolchain && \
101-
mkdir -p $($(package)_staging_prefix_dir)/lib/clang/$($(package)_clang_version)/include && \
102-
mkdir -p $($(package)_staging_prefix_dir)/bin $($(package)_staging_prefix_dir)/include && \
103-
cp bin/clang $($(package)_staging_prefix_dir)/bin/ &&\
104-
cp -P bin/clang++ $($(package)_staging_prefix_dir)/bin/ &&\
105-
cp lib/libLTO.so $($(package)_staging_prefix_dir)/lib/ && \
106-
cp -rf lib/clang/$($(package)_clang_version)/include/* $($(package)_staging_prefix_dir)/lib/clang/$($(package)_clang_version)/include/ && \
107-
cp bin/dsymutil $($(package)_staging_prefix_dir)/bin/$(host)-dsymutil
33+
$(MAKE) DESTDIR=$($(package)_staging_dir) install
10834
endef
109-
else
110-
define $(package)_stage_cmds
111-
$(MAKE) DESTDIR=$($(package)_staging_dir) install && \
112-
mkdir -p $($(package)_staging_prefix_dir)/lib/ && \
113-
cd $($(package)_extract_dir) && \
114-
cp lib/libtapi.so.6 $($(package)_staging_prefix_dir)/lib/
35+
36+
define $(package)_postprocess_cmds
37+
rm -rf share
11538
endef
116-
endif

depends/packages/native_clang.mk

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package=native_clang
2+
$(package)_version=8.0.0
3+
$(package)_download_path=https://releases.llvm.org/$($(package)_version)
4+
$(package)_download_file=clang+llvm-$($(package)_version)-x86_64-linux-gnu-ubuntu-14.04.tar.xz
5+
$(package)_file_name=clang-llvm-$($(package)_version)-x86_64-linux-gnu-ubuntu-14.04.tar.xz
6+
$(package)_sha256_hash=9ef854b71949f825362a119bf2597f744836cb571131ae6b721cd102ffea8cd0
7+
8+
define $(package)_preprocess_cmds
9+
rm -f $($(package)_extract_dir)/lib/libc++abi.so*
10+
endef
11+
12+
define $(package)_stage_cmds
13+
mkdir -p $($(package)_staging_prefix_dir)/lib/clang/$($(package)_version)/include && \
14+
mkdir -p $($(package)_staging_prefix_dir)/bin && \
15+
mkdir -p $($(package)_staging_prefix_dir)/include && \
16+
cp bin/clang $($(package)_staging_prefix_dir)/bin/ && \
17+
cp -P bin/clang++ $($(package)_staging_prefix_dir)/bin/ && \
18+
cp bin/dsymutil $($(package)_staging_prefix_dir)/bin/$(host)-dsymutil && \
19+
cp bin/llvm-config $($(package)_staging_prefix_dir)/bin/ && \
20+
cp lib/libLTO.so $($(package)_staging_prefix_dir)/lib/ && \
21+
cp -rf lib/clang/$($(package)_version)/include/* $($(package)_staging_prefix_dir)/lib/clang/$($(package)_version)/include/
22+
endef
23+
24+
define $(package)_postprocess_cmds
25+
rmdir include
26+
endef

depends/packages/native_libtapi.mk

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package=native_libtapi
2+
$(package)_version=3efb201881e7a76a21e0554906cf306432539cef
3+
$(package)_download_path=https://github.com/tpoechtrager/apple-libtapi/archive
4+
$(package)_download_file=$($(package)_version).tar.gz
5+
$(package)_file_name=$($(package)_version).tar.gz
6+
$(package)_sha256_hash=380c1ca37cfa04a8699d0887a8d3ee1ad27f3d08baba78887c73b09485c0fbd3
7+
8+
ifeq ($(strip $(FORCE_USE_SYSTEM_CLANG)),)
9+
$(package)_dependencies=native_clang
10+
endif
11+
12+
define $(package)_build_cmds
13+
CC=$(clang_prog) CXX=$(clangxx_prog) INSTALLPREFIX=$($(package)_staging_prefix_dir) ./build.sh
14+
endef
15+
16+
define $(package)_stage_cmds
17+
./install.sh && \
18+
mkdir -p $($(package)_staging_prefix_dir)/include/llvm-c && \
19+
cp src/llvm/include/llvm-c/lto.h $($(package)_staging_prefix_dir)/include/llvm-c
20+
endef

depends/packages/packages.mk

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,10 @@ darwin_native_packages = native_ds_store native_mac_alias
2424
$(host_arch)_$(host_os)_native_packages += native_b2
2525

2626
ifneq ($(build_os),darwin)
27-
darwin_native_packages += native_cctools native_libdmg-hfsplus
27+
darwin_native_packages += native_cctools native_libtapi native_libdmg-hfsplus
28+
29+
ifeq ($(strip $(FORCE_USE_SYSTEM_CLANG)),)
30+
darwin_native_packages+= native_clang
31+
endif
32+
2833
endif

0 commit comments

Comments
 (0)