1010no_cache ?= # # Disable the docker build cache
1111pull_images ?= # # Always pull docker images to ensure they're up to date
1212release ?= # # Create an optimized build for the final release
13+ arch ?= $(shell uname -m) # # Target arch to build (x86_64, aarch64)
14+ # ^-- no space before comment otherwise it's appended to $arch!
1315
1416CRYSTAL_REPO ?= https://github.com/crystal-lang/crystal # # Allow to override the official repo with fork or local
1517CRYSTAL_VERSION ?= # # How the binaries should be branded
1921
2022PREVIOUS_CRYSTAL_VERSION ?= # # Version of the bootstrap compiler
2123PREVIOUS_CRYSTAL_PACKAGE_ITERATION ?= 1# # Package iteration of the bootstrap compiler
22- PREVIOUS_CRYSTAL_RELEASE_LINUX64_TARGZ ?= https://github.com/crystal-lang/crystal/releases/download/$(PREVIOUS_CRYSTAL_VERSION ) /crystal-$(PREVIOUS_CRYSTAL_VERSION ) -$(PREVIOUS_CRYSTAL_PACKAGE_ITERATION ) -linux-x86_64 .tar.gz # # url to crystal-{version}-{package}-linux-x86_64 .tar.gz
24+ PREVIOUS_CRYSTAL_RELEASE_LINUX64_TARGZ ?= https://github.com/crystal-lang/crystal/releases/download/$(PREVIOUS_CRYSTAL_VERSION ) /crystal-$(PREVIOUS_CRYSTAL_VERSION ) -$(PREVIOUS_CRYSTAL_PACKAGE_ITERATION ) -linux-$( arch ) .tar.gz # # url to crystal-{version}-{package}-linux-{arch} .tar.gz
2325
2426SHARDS_VERSION = v0.19.1
2527GC_VERSION = v8.2.8
2628LIBPCRE2_VERSION = 10.44
2729LIBEVENT_VERSION = release-2.1.12-stable
2830
2931OUTPUT_DIR = build
30- OUTPUT_BASENAME64 = $(OUTPUT_DIR ) /crystal-$(CRYSTAL_VERSION ) -$(PACKAGE_ITERATION ) -linux-x86_64
32+ OUTPUT_BASENAME64 = $(OUTPUT_DIR ) /crystal-$(CRYSTAL_VERSION ) -$(PACKAGE_ITERATION ) -linux-$( arch )
3133
3234DOCKER_BUILD_ARGS = $(if $(no_cache ) ,--no-cache )$(if $(pull_images ) ,--pull ) --progress=plain
3335
@@ -42,8 +44,8 @@ BUILD_ARGS_COMMON = $(DOCKER_BUILD_ARGS) \
4244
4345BUILD_ARGS64 = $(BUILD_ARGS_COMMON ) \
4446 --build-arg previous_crystal_release=$(PREVIOUS_CRYSTAL_RELEASE_LINUX64_TARGZ ) \
45- --build-arg musl_target=x86_64 -linux-musl \
46- --build-arg gnu_target=x86_64 -unknown-linux-gnu
47+ --build-arg musl_target=$( arch ) -linux-musl \
48+ --build-arg gnu_target=$( arch ) -unknown-linux-gnu
4749
4850BUILD_ARGS64_BUNDLED = $(BUILD_ARGS64 ) \
4951 --build-arg libpcre2_version=$(LIBPCRE2_VERSION ) \
0 commit comments