Skip to content

Commit 24d0335

Browse files
authored
Linux: build for the current architecture (e.g. x86_64 or aarch64) (#386)
1 parent 86d88e8 commit 24d0335

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

linux/Makefile

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
no_cache ?= ## Disable the docker build cache
1111
pull_images ?= ## Always pull docker images to ensure they're up to date
1212
release ?= ## 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

1416
CRYSTAL_REPO ?= https://github.com/crystal-lang/crystal ## Allow to override the official repo with fork or local
1517
CRYSTAL_VERSION ?= ## How the binaries should be branded
@@ -19,15 +21,15 @@ PACKAGE_MAINTAINER = Crystal Team <[email protected]>
1921

2022
PREVIOUS_CRYSTAL_VERSION ?= ## Version of the bootstrap compiler
2123
PREVIOUS_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

2426
SHARDS_VERSION = v0.19.1
2527
GC_VERSION = v8.2.8
2628
LIBPCRE2_VERSION = 10.44
2729
LIBEVENT_VERSION = release-2.1.12-stable
2830

2931
OUTPUT_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

3234
DOCKER_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

4345
BUILD_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

4850
BUILD_ARGS64_BUNDLED = $(BUILD_ARGS64) \
4951
--build-arg libpcre2_version=$(LIBPCRE2_VERSION) \

0 commit comments

Comments
 (0)