1 Star 0 Fork 0

kingo233/nanOS

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
Makefile 1.34 KB
一键复制 编辑 原始数据 按行查看 历史
kingo233 提交于 2021-03-01 16:46 . 完成了bootloader
#delete target files if there is an error or make is interrupted
.DELETE_ON_ERROR:
target = bin/nanOS.img
objdir = obj
bindir = bin
bootblock = $(bindir)/bootblock
bootblockobj = $(objdir)/bootblock.o
CFLAGS := -march=i686 -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -fno-stack-protector -Os
signtool = bin/sign
includefiles = libs
CFLAGS += -I$(includefiles)
# 上面的意思依次为指定编译的目标架构,禁用内置函数,允许使用引用绝对地址的代码,打开编译器警
# 告信息,生成32位可执行文件,生成stab格式的调试信息,不使用C中的默认库,启用栈溢出保护机制
all:
bash init.sh
$(target): $(bootblock)
dd if=/dev/zero of=$@ count=10000
dd if=$(bootblock) of=$@ conv=notrunc
$(bootblock):$(bootblockobj) $(signtool)
objcopy -S -O binary $(bootblockobj) $(objdir)/bootblock.out
./bin/sign $(objdir)/bootblock.out $(bootblock)
$(bootblockobj):boot/*
gcc $(CFLAGS) -Iboot -c boot/bootasm.S -o $(objdir)/bootasm.o
gcc $(CFLAGS) -Iboot -c boot/bootmain.c -o $(objdir)/bootmain.o
ld -m elf_i386 -nostdlib -N -e start -Ttext 0x7C00 obj/bootasm.o obj/bootmain.o -o obj/bootblock.o
$(signtool): tools/sign.c
gcc -o bin/sign $^
.PHONY: clean debug
clean:
rm -rf obj bin
debug: all
qemu-system-i386 -S -s -parallel stdio -hda $(target) -serial null &
gdb -q -tui -x tools/gdbinit
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/kingo233/nanOS.git
git@gitee.com:kingo233/nanOS.git
kingo233
nanOS
nanOS
main

搜索帮助