Buddy_Zhang1 发表于 2016-07-16 14:39

Kbuild ----纯属讨论

有没有人写过 Kbuild 逻辑规则和实现的,最近在写,求交流

Buddy_Zhang1 发表于 2016-07-16 14:41

目前主要在写 /scripts/kconfig 目录下的 C 文件逻辑。

有写过的一起来讨论

nswcfd 发表于 2016-07-18 12:54

之前正好做过一个简单的模拟(仅Makefile部分),仅供参考。# @ ksrc/Makefile
ifeq ($(V),1)
        quiet =
        Q =
else
        quiet = quiet_
        Q = @
endif

# @ ksrc/script/Kbuild.include
echo-cmd = $(if $($(quiet)cmd_$(1)), echo '$($(quiet)cmd_$(1))';)

cmd = @$(echo-cmd) $(cmd_$(1))

if_changed_rule = @set -e; $(rule_$(1))

# @ ksrc/script/Makefile.kbuild
quiet_cmd_cc_o_c = CC $@
cmd_cc_o_c = printf "%s\n" 'gcc -c -o $@ $<'

define rule_cc_o_c
        $(call echo-cmd,not_exist) $(cmd_not_exist)        \
        $(call echo-cmd,cc_o_c) $(cmd_cc_o_c);                \
        echo aaa;                                        \
#        echo bbb;                                        \
        echo ccc;
endef

%.o : %.c
        $(call if_changed_rule,cc_o_c)

nswcfd 发表于 2016-07-18 12:55

上面在模拟make V=1和make V=0的时候,显式方式的不同

nswcfd 发表于 2016-07-18 12:58

2楼的问题太泛化了,可以分解为一些具体的问题,比如那个程序起到什么作用之类的。

Buddy_Zhang1 发表于 2016-07-18 15:30

回复 5# nswcfd

等我把那部分源码 debug 完之后 Release 一下文档说明一下。

那部分源码主要功能就是当我们在源码中使用 make menuconfig 之后,对内核进行配置,生成 .config 过程。


   

nswcfd 发表于 2016-07-18 19:55

是指scripts/kbuild/conf.c?

那应该是的,make XXXconfig就是对这个程序的一个包装。
页: [1]
查看完整版本: Kbuild ----纯属讨论