diff options
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 + |