- 论坛徽章:
- 20
|
之前正好做过一个简单的模拟(仅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)
复制代码 |
|