From 5c2f11724affb32aee22f7400aa1f953a6081813 Mon Sep 17 00:00:00 2001 From: kartofen Date: Sun, 8 Jun 2025 23:05:09 +0300 Subject: init --- Makefile | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 Makefile (limited to 'Makefile') diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..1e83dfc --- /dev/null +++ b/Makefile @@ -0,0 +1,47 @@ +BITS := 32 + +# TOOLCHAIN := riscv$(BITS)-linux-gnu- +# TOOLCHAIN := riscv$(BITS)-unknown-elf- +TOOLCHAIN := riscv$(BITS)-unknown-linux-gnu- + +CC := $(TOOLCHAIN)gcc + +SRC := src +OBJ := obj +BIN := bin + +FILES = $(shell find $(SRC) -type f) +SRCS = $(filter %.s, $(FILES)) +OBJS = $(SRCS:$(SRC)/%.s=$(OBJ)/%.o) + +FLAGS := -nostdlib -static -s + +# KERNEL := linux-6.1.38.img$(BITS) +KERNEL := linux-5.4.294.img$(BITS) +INITFS := initfs.img +NAME := test + +export + +all: vm +clean: + rm -rf $(BIN) + rm -rf $(OBJ) + +$(NAME): $(BIN)/$(NAME) + +$(OBJ)/%.o: $(SRC)/%.s + mkdir -p $(dir $@) + $(CC) $(FLAGS) -c $< -o $@ + +$(BIN)/$(NAME): $(OBJS) + mkdir -p $(dir $@) + $(CC) $(FLAGS) $^ -o $@ + +vm: $(BIN)/$(INITFS) $(BIN)/$(KERNEL) + ./vm.sh run +$(BIN)/$(INITFS): $(NAME) + ./vm.sh initramfs $(BIN)/$(NAME) +$(BIN)/$(KERNEL): + ./vm.sh kernel + -- cgit v1.2.3