OpenWrt编译目标world的依赖

来源:互联网 发布:deepin linux安装教程 编辑:程序博客网 时间:2024/06/05 23:03

在顶层的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,$(curdir),target,prereq,.config))
./target/Makefile:16:$(eval $(call stampfile,$(curdir),target,compile,$(TMP_DIR)/.build))
./target/Makefile:17:$(eval $(call stampfile,$(curdir),target,install,$(TMP_DIR)/.build))
./package/Makefile:99:$(eval $(call stampfile,$(curdir),package,prereq,.config))
./package/Makefile:100:$(eval $(call stampfile,$(curdir),package,cleanup,$(TMP_DIR)/.build))
./package/Makefile:101:$(eval $(call stampfile,$(curdir),package,compile,$(TMP_DIR)/.build))
./package/Makefile:102:$(eval $(call stampfile,$(curdir),package,install,$(TMP_DIR)/.build))
./package/Makefile:103:$(eval $(call stampfile,$(curdir),package,rootfs-prepare,$(TMP_DIR)/.build))
./toolchain/Makefile:84:$(eval $(call stampfile,$(curdir),toolchain,install,$(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判断编译的条件



0 0