yunwei37 / 6.828-2018-labs

MIT 6.828 操作系统工程 2018 fall labs & notes

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

创建kernel的问题

zhangjunzheng opened this issue · comments

请教一个问题:
创建内核映象的时候通过命令:make. 使用的应该是GNUMakefile,但是打开这个文件发现第一个目标是all;但是这是一个空目标。但是命令运行还是正常的,这是什么原理?

这方面详细的原理我也不太了解...但我猜测可能是通过和 Makefrag 里面的 all 同名来完成对应的任务的(后续的同名 target 会覆盖掉前面的),这里的 all 只是一个占位符,来保证是 make 命令的时候默认执行的第一个目标?

GNUmakefile 138:139 这里有:

include boot/Makefrag
include kern/Makefrag

然后比如说在 kern/Makefrag:83 有 all: $(OBJDIR)/kern/kernel.img 这样的目标定义存在。