You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
# simple makefile for this kernel project
|
|
|
|
# This is BAD. it should be reworked before anyone else uses this.
|
|
|
|
|
|
|
|
# kernel lib dir
|
|
|
|
KLIBDIR=kinclude
|
|
|
|
# object file dir
|
|
|
|
ODIR=obj
|
|
|
|
# target dir
|
|
|
|
TARGET=out
|
|
|
|
|
|
|
|
GCC_PREF=riscv32-unknown-elf-
|
|
|
|
|
|
|
|
CC=$(GCC_PREF)gcc
|
|
|
|
OBJDUMP=$(GCC_PREF)objdump
|
|
|
|
CFLAGS=-I$(KLIBDIR) -march=rv32im -O3
|
|
|
|
KERNEL_CFLAGS=-nostdlib -T linker.ld
|
|
|
|
|
|
|
|
# dependencies that need to be built:
|
|
|
|
_DEPS = ecall.c csr.c mutex.c sched.c
|
|
|
|
|
|
|
|
# dependencies as object files:
|
|
|
|
_OBJ = ecall.o mutex.o sched.o boot.o csr.o
|
|
|
|
|
|
|
|
|
|
|
|
DEPS = $(patsubst %,$(KLIBDIR)/%,$(_DEPS))
|
|
|
|
OBJ = $(patsubst %,$(ODIR)/%,$(_OBJ))
|
|
|
|
|
|
|
|
|
|
|
|
$(ODIR)/boot.o:
|
|
|
|
$(CC) -c -o $@ $(KLIBDIR)/boot.S $(CFLAGS)
|
|
|
|
|
|
|
|
$(ODIR)/%.o:
|
|
|
|
$(CC) -c -o $@ $(KLIBDIR)/$*.c $(CFLAGS)
|
|
|
|
|
|
|
|
kernel: $(OBJ)
|
|
|
|
mkdir -p $(TARGET)
|
|
|
|
$(CC) -o $(TARGET)/$@ $^ kernel.c $(CFLAGS) $(KERNEL_CFLAGS)
|
|
|
|
|
|
|
|
kernel-dump: kernel
|
|
|
|
$(OBJDUMP) -SFlDf $(TARGET)/kernel > $(TARGET)/kernel-objects
|
|
|
|
|
|
|
|
.PHONY: clean
|
|
|
|
|
|
|
|
clean:
|
|
|
|
rm -rf $(ODIR) *~ $(KLIBDIR)/*~ $(TARGET)
|