44ZIG := zig
55BC := $(dir $(abspath $(lastword $(MAKEFILE_LIST ) ) ) )
66
7+ # OS and ARCH
8+ kernel = $(shell uname -ms)
9+ ifeq ($(kernel ) , Darwin arm64)
10+ OS := macos
11+ ARCH := aarch64
12+ else ifeq ($(kernel), Linux aarch64)
13+ OS := linux
14+ ARCH := aarch64
15+ else ifeq ($(kernel), Linux arm64)
16+ OS := linux
17+ ARCH := aarch64
18+ else ifeq ($(kernel), Linux x86_64)
19+ OS := linux
20+ ARCH := x86_64
21+ else
22+ $(error "Unhandled kernel: $(kernel)")
23+ endif
24+
25+
726# Infos
827# -----
928.PHONY : help
@@ -26,30 +45,11 @@ help:
2645.PHONY : build build-dev run run-release shell test bench download-zig wpt
2746
2847zig_version = $(shell grep 'recommended_zig_version = "' "vendor/zig-js-runtime/build.zig" | cut -d'"' -f2)
29- kernel = $(shell uname -ms)
3048
3149# # Download the zig recommended version
3250download-zig :
33- ifeq ($(kernel ) , Darwin x86_64)
34- $(eval target="macos")
35- $(eval arch="x86_64")
36- else ifeq ($(kernel), Darwin arm64)
37- $(eval target="macos")
38- $(eval arch="aarch64")
39- else ifeq ($(kernel), Linux aarch64)
40- $(eval target="linux")
41- $(eval arch="aarch64")
42- else ifeq ($(kernel), Linux arm64)
43- $(eval target="linux")
44- $(eval arch="aarch64")
45- else ifeq ($(kernel), Linux x86_64)
46- $(eval target="linux")
47- $(eval arch="x86_64")
48- else
49- $(error "Unhandled kernel: $(kernel)")
50- endif
51- $(eval url = "https://ziglang.org/builds/zig-$(target)-$(arch)-$(zig_version).tar.xz")
52- $(eval dest = "/tmp/zig-$(target)-$(arch)-$(zig_version).tar.xz")
51+ $(eval url = "https://ziglang.org/builds/zig-$(OS ) -$(ARCH ) -$(zig_version ) .tar.xz")
52+ $(eval dest = "/tmp/zig-$(OS ) -$(ARCH ) -$(zig_version ) .tar.xz")
5353 @printf " \e[36mDownload zig version $( zig_version) ...\e[0m\n"
5454 @curl -o " $( dest) " -L " $( url) " || (printf " \e[33mBuild ERROR\e[0m\n" ; exit 1; )
5555 @printf " \e[33mDownloaded $( dest) \e[0m\n"
@@ -188,24 +188,27 @@ install-zig-js-runtime:
188188 make install
189189
190190.PHONY : _build_mimalloc
191- _build_mimalloc :
192- @cd vendor/ mimalloc && \
193- mkdir -p out/include && \
194- cp include/mimalloc.h out/include/ && \
195- cd out && \
196- cmake -DMI_BUILD_SHARED=OFF -DMI_BUILD_OBJECT=OFF -DMI_BUILD_TESTS=OFF -DMI_OVERRIDE=OFF $( OPTS ) .. && \
197- make
191+ MIMALLOC := $( BC ) vendor/mimalloc/out/ $( OS ) - $( ARCH )
192+ _build_mimalloc : clean- mimalloc
193+ @ mkdir -p $( MIMALLOC ) /build && \
194+ cd $( MIMALLOC ) /build && \
195+ cmake -DMI_BUILD_SHARED=OFF -DMI_BUILD_OBJECT=OFF -DMI_BUILD_TESTS=OFF -DMI_OVERRIDE=OFF $( OPTS ) ../../.. && \
196+ make && \
197+ mkdir -p $( MIMALLOC ) /lib
198198
199199install-mimalloc-dev : _build_mimalloc
200200install-mimalloc-dev : OPTS=-DCMAKE_BUILD_TYPE=Debug
201201install-mimalloc-dev :
202- @cd vendor/mimalloc/out && \
203- mv libmimalloc-debug.a libmimalloc.a
202+ @cd $( MIMALLOC ) && \
203+ mv build/ libmimalloc-debug.a lib/ libmimalloc.a
204204
205205install-mimalloc : _build_mimalloc
206+ install-mimalloc :
207+ @cd $(MIMALLOC ) && \
208+ mv build/libmimalloc.a lib/libmimalloc.a
206209
207210clean-mimalloc :
208- @rm -fr vendor/mimalloc/lib/ *
211+ @rm -Rf $( MIMALLOC ) /build
209212
210213# # Init and update git submodule
211214install-submodule :
0 commit comments