host-csingle := $(foreach m,$(__hostprogs),$(if $($(m)-objs),,$(m)))
<=__hostprogs := $(sort $(hostprogs-y) $(hostprogs-m))
<=hostprogs-y := fixdep docproc hash
所以 host-csingle 的值为 fixdep docproc hash
if_changed_dep = $(if $(strip $(any-prereq) $(arg-check) ), \
@set -e; \ #@set -e, 如果去掉 @ 则可以看到整个执行轨迹
$(echo-cmd) $(cmd_$(1)); \ #展开之后 cmd_host-csingle = $(HOSTCC) $(host_flags) -o $@
scripts/basic/fixdep $(depfile) $@ '$(make-cmd)' > $(dot-target).tmp;\
rm -f $(depfile); \
mv -f $(dot-target).tmp $(dot-target).cmd)
include/config/%conf:
$(Q)$(MAKE) -f $(scrtree)/Makefile silentoldconfig #生成auto.conf
Kbuild 编译 Linux 内核系列(六)
https://linuxstory.org/kbuild-%E7%BC%96%E8%AF%91-linux-%E5%86%85%E6%A0%B8%E7%B3%BB%E5%88%97%EF%BC%88%E5%85%AD%EF%BC%89/
内核中单个.o文件的编译过程
https://blog.csdn.net/RichardYSteven/article/details/56666514
内核编译中的小目标
https://blog.csdn.net/RichardYSteven/article/details/56482735
内核映像的形成——递归编译各对象
https://blog.csdn.net/yunsongice/article/details/6106036?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf
Linux内核编译过程
http://blog.chinaunix.net/uid-20429754-id-4734963.html
vmlinux_32.lds.S
https://blog.csdn.net/a04081122/article/details/24402173