BigOS/kernel/Makefrag
2022-12-20 21:25:09 +08:00

75 lines
1.9 KiB
Plaintext

OBJDIRS += kern
KERN_ENTRY_ADDR := 0xC0030400
KERN_SRCFILES :=kernel/kernel.asm \
kernel/hd.c \
kernel/fat32.c \
kernel/tty.c \
kernel/fs.c \
kernel/global.c \
kernel/clock.c \
kernel/elf.c \
kernel/spinlock.c \
kernel/keyboard.c \
kernel/assist.c \
kernel/fork.c \
kernel/file.c \
kernel/console.c \
kernel/syscallc.c \
kernel/vfs.c \
kernel/proc.c \
kernel/pagetbl.c \
kernel/pthread.c \
kernel/memman.c \
kernel/main.c \
kernel/exec.c \
kernel/ktest.c \
kernel/base.c \
kernel/start.c \
kernel/i8259.c \
kernel/testfunc.c \
kernel/protect.c \
kernel/serialport.c \
lib/klib.c \
lib/kliba.asm \
KERN_OBJFILES := $(patsubst %.c, $(OBJDIR)/%.o, $(KERN_SRCFILES))
KERN_OBJFILES := $(patsubst %.asm, $(OBJDIR)/%.o, $(KERN_OBJFILES))
$(OBJDIR)/kernel/ktest.o: kernel/ktest.c $(OBJDIR)/.vars.CFLAGS
@echo + cc $<
@mkdir -p $(@D)
@$(CC) $(CFLAGS) -c -o $@ $< \
-D INSTALL_FILENAME='"$(INSTALL_FILENAME)"' \
-D $(INSTALL_TYPE) \
$(OBJDIR)/kernel/fs.o: kernel/fs.c $(OBJDIR)/.vars.CFLAGS
@echo + cc $<
@mkdir -p $(@D)
@$(CC) $(CFLAGS) -c -o $@ $< \
-D INSTALL_FILENAME='"$(INSTALL_FILENAME)"' \
-D INSTALL_NR_SECTORS=$(INSTALL_NR_SECTORS) \
-D INSTALL_START_SECTOR=$(INSTALL_START_SECTOR) \
-D $(INSTALL_TYPE) \
$(OBJDIR)/kernel/spinlock.o: kernel/spinlock.c $(OBJDIR)/.vars.CFLAGS
@echo + cc $<
@mkdir -p $(@D)
@$(CC) $(CFLAGS) -masm=intel -c -o $@ $<
$(OBJDIR)/kernel/%.o: kernel/%.c $(OBJDIR)/.vars.CFLAGS
@echo + cc $<
@mkdir -p $(@D)
@$(CC) $(CFLAGS) -c -o $@ $<
$(OBJDIR)/kernel/%.o: kernel/%.asm
@echo + as obj $<
@mkdir -p $(@D)
@$(AS) -I ./include -f elf -o $@ $<
$(OBJDIR)/kernel/kernel.bin: $(KERN_OBJFILES) $(LIB_A) $(OBJDIR)/.vars.LDFLAGS
@echo + ld $@
@$(LD) $(LDFLAGS) -s -Ttext $(KERN_ENTRY_ADDR) -o $@ $(KERN_OBJFILES) $(LIB_A) $(GCC_LIB)
@$(LD) $(LDFLAGS) -Ttext $(KERN_ENTRY_ADDR) -o $(OBJDIR)/kernel/kernel.dbg $(KERN_OBJFILES) $(LIB_A) $(GCC_LIB)