aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorkartofen <mladenovnasko0@gmail.com>2025-06-08 23:05:09 +0300
committerkartofen <mladenovnasko0@gmail.com>2025-06-08 23:05:09 +0300
commit5c2f11724affb32aee22f7400aa1f953a6081813 (patch)
tree4ed11119f3256a4140852ba2c1f011f9ba7edbfd /Makefile
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile47
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
+