diff options
author | kartofen <mladenovnasko0@gmail.com> | 2025-06-08 23:05:09 +0300 |
---|---|---|
committer | kartofen <mladenovnasko0@gmail.com> | 2025-06-08 23:05:09 +0300 |
commit | 5c2f11724affb32aee22f7400aa1f953a6081813 (patch) | |
tree | 4ed11119f3256a4140852ba2c1f011f9ba7edbfd /Makefile |
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 47 |
1 files changed, 47 insertions, 0 deletions
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 + |