2020301918-os/boot/Makefrag
2022-10-02 12:54:35 +08:00

32 lines
856 B
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#
# makefile的boot部分
# 将会导入到根目录的makefile文件
#
OBJDIRS += boot
LOADER_OBJS := $(OBJDIR)/boot/loader.o $(OBJDIR)/boot/loadkernel.o
LOADER_LINKER := boot/linker.ld
# 根据源文件pattern判断编译的方式
$(OBJDIR)/boot/%.o: boot/%.c
@echo + cc $<
@mkdir -p $(@D)
@$(CC) $(CFLAGS) -fno-pie -c -o $@ $<
$(OBJDIR)/boot/%.o: boot/%.asm
@echo + as obj $<
@mkdir -p $(@D)
@$(AS) -f elf -o $@ $<
# 对于boot它是特殊的需要特殊编译
$(OBJDIR)/boot/boot.bin: boot/boot.asm
@echo + as bin $<
@mkdir -p $(@D)
@$(AS) -o $@ $<
# loader通过一个特定的脚本进行链接反正可以先不管将核心放到内核代码上来
$(OBJDIR)/boot/loader.bin: $(LOADER_OBJS) $(LOADER_LINKER)
@echo + ld $@
@mkdir -p $(@D)
@$(LD) $(LDFLAGS) -s -T $(LOADER_LINKER) --oformat binary -o $@ $(LOADER_OBJS)