diff --git a/Makefile b/Makefile index 236bd95..19693f8 100644 --- a/Makefile +++ b/Makefile @@ -14,7 +14,8 @@ LIBFT := $(LIBFT_DIR)/lib/libft.a LIB := $(LIBFT) -TOOLCHAIN := /opt/toolchains/aarch64-linux-musl-cross +TOOLCHAIN_DIR := $(HOME)/.local/toolchains +TOOLCHAIN := $(TOOLCHAIN_DIR)/aarch64-linux-musl-cross TOOLCHAIN_BIN := $(TOOLCHAIN)/bin MUSL_LD := $(TOOLCHAIN_BIN)/aarch64-linux-musl-ld @@ -36,13 +37,13 @@ ALPINE_HEADLESS := $(ASSETS)/headless.apkovl.tar.gz ALPINE_CUSTOM_IMG := $(BUILD_DIR)/alpine-custom.img PLATFORM := arm64 - -all: $(TARGET) - QEMU_VM := qemu-system-aarch64 QEMU_IMG := qemu-img -$(TARGET): $(SRC) $(BUILD_DIR) $(LIB) $(TOOLCHAIN) +all: $(TARGET) + +$(TARGET): $(TOOLCHAIN) $(SRC) $(BUILD_DIR) $(LIB) + echo $(HOME) $(CC) $(CFLAGS) -o $(TARGET) $(SRC) $(LIB) get: $(ASSETS) $(ALPINE) $(ALPINE_TAR) $(ALPINE_HEADLESS) @@ -58,20 +59,24 @@ qemu: $(ALPINE_CUSTOM_IMG) img -nographic \ -virtfs local,path=$(BUILD_DIR),mount_tag=$(BUILD_DIR),security_model=none -img: $(ALPINE) +img: $(ALPINE) get $(QEMU_IMG) create -f raw $(ALPINE_CUSTOM_IMG) 512M mformat -i $(ALPINE_CUSTOM_IMG) -F :: mcopy -i $(ALPINE_CUSTOM_IMG) -s $(ALPINE)/* :: -bootable: $(ALPINE) +bootable: $(ALPINE) get tar czf $(MINIROOTFS) -C $(ALPINE) ./ $(ALPINE_HEADLESS): wget https://github.com/macmpi/alpine-linux-headless-bootstrap/raw/98728731299f262eab270941c522138d6c5cea73/headless.apkovl.tar.gz -O $(ALPINE_HEADLESS) -$(TOOLCHAIN): +$(TOOLCHAIN): | $(TOOLCHAIN_DIR) wget https://musl.cc/aarch64-linux-musl-cross.tgz - sudo tar xvf aarch64-linux-musl-cross.tgz -C $@ + tar xvf aarch64-linux-musl-cross.tgz -C $(TOOLCHAIN_DIR) + rm aarch64-linux-musl-cross.tgz + +$(TOOLCHAIN_DIR): + mkdir -p $@ $(ALPINE_TAR): wget https://dl-cdn.alpinelinux.org/alpine/v3.22/releases/aarch64/alpine-rpi-3.22.1-aarch64.tar.gz -O $(ALPINE_TAR) diff --git a/src/ctools/libft/Makefile b/src/ctools/libft/Makefile index 87699b7..783b468 100644 --- a/src/ctools/libft/Makefile +++ b/src/ctools/libft/Makefile @@ -49,7 +49,8 @@ LIBS := printf all: $(NAME) -TOOLCHAIN := /opt/toolchains/aarch64-linux-musl-cross +TOOLCHAIN_DIR := $(HOME)/.local/toolchains +TOOLCHAIN := $(TOOLCHAIN_DIR)/aarch64-linux-musl-cross TOOLCHAIN_BIN := $(TOOLCHAIN)/bin MUSL_LD := $(TOOLCHAIN_BIN)/aarch64-linux-musl-ld