blob: 1e83dfcbf8c3a7c4aa71ba5113d70379550ef34b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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
|