OpenWrt编译目标world的依赖

在顶层的Makefile第2个分支中,目标world的依赖

prepare: .config $(tools/stamp-install) $(toolchain/stamp-install)
world: prepare $(target/stamp-compile) $(package/stamp-cleanup) $(package/stamp-compile) $(package/stamp-install) $(package/stamp-rootfs-prepare) $(target/stamp-install) FORCE
$(_SINGLE)$(SUBMAKE) -r package/index


这些*stamp-*变量的定义由include/subdir.mk中定义的宏define stampfile而展开


buildroot下使用grep查找call stampfile的地方

./tools/Makefile:136:$(eval $(call stampfile,$(curdir),tools,install,CONfig_CCACHE CONfig_powerpc CONfig_GCC_VERSION_4_5 CONfig_GCC_USE_GRAPHITE CONfig_TARGET_orion_generic))
./target/Makefile:15:$(eval $(call stampfile,target,prereq,.config))
./target/Makefile:16:$(eval $(call stampfile,compile,$(TMP_DIR)/.build))
./target/Makefile:17:$(eval $(call stampfile,$(TMP_DIR)/.build))
./package/Makefile:99:$(eval $(call stampfile,package,.config))
./package/Makefile:100:$(eval $(call stampfile,cleanup,$(TMP_DIR)/.build))
./package/Makefile:101:$(eval $(call stampfile,$(TMP_DIR)/.build))
./package/Makefile:102:$(eval $(call stampfile,$(TMP_DIR)/.build))
./package/Makefile:103:$(eval $(call stampfile,rootfs-prepare,$(TMP_DIR)/.build))
./toolchain/Makefile:84:$(eval $(call stampfile,toolchain,$(TOOLCHAIN_DIR)/stamp/.gcc-initial_installed,$(TOOLCHAIN_DIR)))


例如tools/Makefile中的call stampfile展开的变量

tools/stamp-install := /home/test/openwrt/a2/attitude_adjustment_12.09/staging_dir/target-mips_r2_uClibc-0.9.33.2/stamp/.tools_install_nnnnn
当这个文件的时间戳比tools目录下的某个文件旧时

则会编译tools/install目标



完成编译后,则会在/home/test/openwrt/a2/attitude_adjustment_12.09/staging_dir/target-mips_r2_uClibc-0.9.33.2/stamp/目录下创建许多隐藏的时间戳文件

作为宏stampfile判断编译的条件

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...