bless
This commit is contained in:
parent
885fe574da
commit
7e834acae9
70
Makefile
70
Makefile
@ -14,43 +14,67 @@ LIBFT := $(LIBFT_DIR)/lib/libft.a
|
|||||||
|
|
||||||
LIB := $(LIBFT)
|
LIB := $(LIBFT)
|
||||||
|
|
||||||
CFLAGS := -Wall -Wextra -Werror --target=aarch64-linux-musl
|
TOOLCHAIN := /opt/toolchains/aarch64-linux-musl-cross
|
||||||
|
TOOLCHAIN_BIN := $(TOOLCHAIN)/bin
|
||||||
|
MUSL_LD := $(TOOLCHAIN_BIN)/aarch64-linux-musl-ld
|
||||||
|
|
||||||
DOCKER_CMD := /bin/sh -c 'hello "host.docker.internal" "8000"'
|
CFLAGS := -Wall -Wextra -Werror --target=aarch64-linux-musl \
|
||||||
|
--sysroot=$(TOOLCHAIN) \
|
||||||
|
--ld-path=$(MUSL_LD)
|
||||||
|
|
||||||
|
DOCKER_CMD := /bin/sh #-c 'hello "host.docker.internal" "8000"'
|
||||||
|
|
||||||
MINIROOTFS := $(ASSETS)/minirootfs.tar.gz
|
MINIROOTFS := $(ASSETS)/minirootfs.tar.gz
|
||||||
|
|
||||||
ALPINE := alpine/
|
ALPINE := alpine
|
||||||
|
ALPINE_KERNEL := alpine/boot/vmlinuz-rpi
|
||||||
|
ALPINE_INITFRAM_FS := alpine/boot/initramfs-rpi
|
||||||
ALPINE_BIN := $(ALPINE)/bin
|
ALPINE_BIN := $(ALPINE)/bin
|
||||||
ALPINE_IMG := $(ASSETS)/alpine.img
|
ALPINE_TAR := $(ASSETS)/alpine-rpi-aarch64.gz
|
||||||
ALPINE_TAR := $(ALPINE_IMG).gz
|
|
||||||
ALPINE_HEADLESS := $(ASSETS)/headless.apkovl.tar.gz
|
ALPINE_HEADLESS := $(ASSETS)/headless.apkovl.tar.gz
|
||||||
|
|
||||||
|
ALPINE_CUSTOM_IMG := $(BUILD_DIR)/alpine-custom.img
|
||||||
|
|
||||||
all: $(SRC) $(BUILD_DIR) $(LIB) get
|
PLATFORM := arm64
|
||||||
$(CC) $(CFLAGS) -o $(TARGET) -static $(SRC) $(LIB)
|
|
||||||
|
|
||||||
get: $(ALPINE) $(ASSETS)
|
all: $(TARGET)
|
||||||
wget https://dl-cdn.alpinelinux.org/alpine/v3.22/releases/aarch64/alpine-rpi-3.22.1-aarch64.tar.gz -O $(ALPINE_TAR)
|
|
||||||
wget https://github.com/macmpi/alpine-linux-headless-bootstrap/raw/98728731299f262eab270941c522138d6c5cea73/headless.apkovl.tar.gz -O $(ALPINE_HEADLESS)
|
QEMU_VM := qemu-system-aarch64
|
||||||
|
QEMU_IMG := qemu-img
|
||||||
|
|
||||||
|
$(TARGET): $(SRC) $(BUILD_DIR) $(LIB) $(TOOLCHAIN)
|
||||||
|
$(CC) $(CFLAGS) -o $(TARGET) $(SRC) $(LIB)
|
||||||
|
|
||||||
|
get: $(ASSETS) $(ALPINE) $(ALPINE_TAR) $(ALPINE_HEADLESS)
|
||||||
rm -rf $(ALPINE)/*
|
rm -rf $(ALPINE)/*
|
||||||
tar xvf $(ALPINE_TAR) -C $(ALPINE)
|
tar xvf $(ALPINE_TAR) -C $(ALPINE)
|
||||||
|
|
||||||
docker: build copy $(TARGET)
|
qemu: $(ALPINE_CUSTOM_IMG) img
|
||||||
$(SRC) $(BUILD_DIR) $(LIB) get
|
$(QEMU_VM) -M virt -cpu cortex-a72 -smp 2 -m 1G \
|
||||||
$(CC) $(CFLAGS) -o $(TARGET) -static $(SRC) $(LIB)
|
-kernel $(ALPINE_KERNEL) \
|
||||||
cp $(TARGET) $(ALPINE_BIN)
|
-initrd $(ALPINE_INITFRAM_FS) \
|
||||||
tar czf $(MINIROOTFS) -C alpine ./
|
-append "console=ttyAMA0 root=/dev/vda rw" \
|
||||||
docker import --platform linux/arm64 $(MINIROOTFS) alpine-custom:latest
|
-drive format=raw,file=fat:rw:$(ALPINE)/ \
|
||||||
|
-nographic \
|
||||||
|
-virtfs local,path=$(BUILD_DIR),mount_tag=$(BUILD_DIR),security_model=none
|
||||||
|
|
||||||
|
img: $(ALPINE)
|
||||||
|
$(QEMU_IMG) create -f raw $(ALPINE_CUSTOM_IMG) 512M
|
||||||
|
mformat -i $(ALPINE_CUSTOM_IMG) -F ::
|
||||||
|
mcopy -i $(ALPINE_CUSTOM_IMG) -s $(ALPINE)/* ::
|
||||||
|
|
||||||
copy: build
|
bootable: $(ALPINE)
|
||||||
cp $(TARGET) $(ALPINE_BIN)
|
tar czf $(MINIROOTFS) -C $(ALPINE) ./
|
||||||
tar czf $(MINIROOTFS) -C alpine ./
|
|
||||||
docker import --platform linux/arm64 $(MINIROOTFS) alpine-custom:latest
|
|
||||||
|
|
||||||
run: all
|
$(ALPINE_HEADLESS):
|
||||||
docker run --add-host=host.docker.internal:host-gateway --platform linux/arm64 -it alpine-custom $(DOCKER_CMD)
|
wget https://github.com/macmpi/alpine-linux-headless-bootstrap/raw/98728731299f262eab270941c522138d6c5cea73/headless.apkovl.tar.gz -O $(ALPINE_HEADLESS)
|
||||||
|
|
||||||
|
$(TOOLCHAIN):
|
||||||
|
wget https://musl.cc/aarch64-linux-musl-cross.tgz
|
||||||
|
sudo tar xvf aarch64-linux-musl-cross.tgz -C $@
|
||||||
|
|
||||||
|
$(ALPINE_TAR):
|
||||||
|
wget https://dl-cdn.alpinelinux.org/alpine/v3.22/releases/aarch64/alpine-rpi-3.22.1-aarch64.tar.gz -O $(ALPINE_TAR)
|
||||||
|
|
||||||
$(LIB):
|
$(LIB):
|
||||||
make aarch64 -C $(LIBFT_DIR)
|
make aarch64 -C $(LIBFT_DIR)
|
||||||
@ -67,5 +91,3 @@ $(ASSETS):
|
|||||||
clean:
|
clean:
|
||||||
rm -rf $(BUILD_DIR) $(ALPINE) $(ASSETS)
|
rm -rf $(BUILD_DIR) $(ALPINE) $(ASSETS)
|
||||||
make fclean -C $(LIBFT_DIR)
|
make fclean -C $(LIBFT_DIR)
|
||||||
|
|
||||||
.PHONY: all build copy run clean
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
# By: vvobis <marvin@42.fr> +#+ +:+ +#+ #
|
# By: vvobis <marvin@42.fr> +#+ +:+ +#+ #
|
||||||
# +#+#+#+#+#+ +#+ #
|
# +#+#+#+#+#+ +#+ #
|
||||||
# Created: 2024/09/17 14:23:19 by vvobis #+# #+# #
|
# Created: 2024/09/17 14:23:19 by vvobis #+# #+# #
|
||||||
# Updated: 2025/09/22 12:17:40 by victor ### ########.fr #
|
# Updated: 2025/09/23 09:59:59 by victor ### ########.fr #
|
||||||
# #
|
# #
|
||||||
# **************************************************************************** #
|
# **************************************************************************** #
|
||||||
|
|
||||||
@ -14,6 +14,8 @@ NAME := libft.a
|
|||||||
|
|
||||||
CC := clang
|
CC := clang
|
||||||
|
|
||||||
|
AR := ar
|
||||||
|
|
||||||
CFLAGS := -Wall -Wextra -Werror
|
CFLAGS := -Wall -Wextra -Werror
|
||||||
|
|
||||||
SRC := ft_bzero.c ft_isalnum.c ft_isalpha.c ft_isdigit.c \
|
SRC := ft_bzero.c ft_isalnum.c ft_isalpha.c ft_isdigit.c \
|
||||||
@ -47,7 +49,12 @@ LIBS := printf
|
|||||||
|
|
||||||
all: $(NAME)
|
all: $(NAME)
|
||||||
|
|
||||||
aarch64: CFLAGS += --target=arm-linux-gnueabihf -static
|
TOOLCHAIN := /opt/toolchains/aarch64-linux-musl-cross
|
||||||
|
TOOLCHAIN_BIN := $(TOOLCHAIN)/bin
|
||||||
|
MUSL_LD := $(TOOLCHAIN_BIN)/aarch64-linux-musl-ld
|
||||||
|
|
||||||
|
aarch64: CFLAGS += --target=aarch64-linux-musl \
|
||||||
|
--sysroot=$(TOOLCHAIN)
|
||||||
aarch64 : fclean all
|
aarch64 : fclean all
|
||||||
|
|
||||||
bonus: $(OBJBON) $(OBJ)
|
bonus: $(OBJBON) $(OBJ)
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
# By: victor </var/spool/mail/victor> +#+ +:+ +#+ #
|
# By: victor </var/spool/mail/victor> +#+ +:+ +#+ #
|
||||||
# +#+#+#+#+#+ +#+ #
|
# +#+#+#+#+#+ +#+ #
|
||||||
# Created: 2024/09/14 09:21:46 by victor #+# #+# #
|
# Created: 2024/09/14 09:21:46 by victor #+# #+# #
|
||||||
# Updated: 2024/11/11 11:52:05 by marvin ### ########.fr #
|
# Updated: 2025/09/23 09:08:41 by victor ### ########.fr #
|
||||||
# #
|
# #
|
||||||
# **************************************************************************** #
|
# **************************************************************************** #
|
||||||
|
|
||||||
@ -31,6 +31,8 @@ endif
|
|||||||
|
|
||||||
all: $(NAME)
|
all: $(NAME)
|
||||||
|
|
||||||
|
aarch64: CFLAGS += --target=aarch64-linux-musl all
|
||||||
|
|
||||||
$(NAME): $(OBJ)
|
$(NAME): $(OBJ)
|
||||||
ar rsc $@ $(OBJ)
|
ar rsc $@ $(OBJ)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user