Uses ubuntu:22.04 arm64 image running under QEMU emulation to produce aarch64 binaries that match the target device exactly (same glibc, same distro). Replaces the broken Buildroot cross-compilation approach. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
26 lines
620 B
Makefile
26 lines
620 B
Makefile
.PHONY: shell build clean
|
|
|
|
IMAGE_NAME = arm64-dev
|
|
PROJECT_DIR := $(shell cd .. && pwd)
|
|
|
|
CONTAINER_NAME = $(shell docker ps -f "ancestor=$(IMAGE_NAME)" --format "{{.Names}}")
|
|
|
|
.build: Dockerfile
|
|
docker build --platform linux/arm64 -t $(IMAGE_NAME) .
|
|
touch .build
|
|
|
|
ifeq ($(CONTAINER_NAME),)
|
|
shell: .build
|
|
docker run --platform linux/arm64 -it --rm -v "$(PROJECT_DIR)":/workspace $(IMAGE_NAME) /bin/bash
|
|
else
|
|
shell:
|
|
docker exec -it $(CONTAINER_NAME) /bin/bash
|
|
endif
|
|
|
|
build: .build
|
|
docker run --platform linux/arm64 --rm -v "$(PROJECT_DIR)":/workspace $(IMAGE_NAME) make
|
|
|
|
clean:
|
|
docker rmi $(IMAGE_NAME)
|
|
rm -f .build
|