makefile - 递归运行make后更新时间戳
问题描述
我的项目依赖于子文件夹中的其他项目。我想递归地调用 make 以一次性构建所有内容。
我的第一次尝试是这样的:
.PHONY: all make_recursion
all: program
program: submake1/lib submake2/lib
submake1/lib: make_recursion
submake2/lib: make_recursion
make_recursion:
make -C submake1
make -C submake2
这不能按预期工作。如果这些项目中的文件发生更改,则每次运行 make 都会执行两个子制作。对于 submake2,如果更新了 submake2/lib,我的程序也会重新构建。如果只更新了 submake1/lib,我必须再次运行 make 来更新程序。
原因是 make 在 make_recursion 之前获取 submake1/lib 的时间戳,但之后不会更新它。我该如何改进呢?
解决方案
推荐阅读
- c# - 如果我操纵它,SfDataPager 将停止显示源集合。(源集合异步填充)
- javascript - 如何样式化/减小 Material UI 警报栏的宽度?
- swift - 音频播放但视频在慢速互联网上冻结 AVPlayer
- sql - 通过嵌套组合查询
- r - 在 R 中制作一个黑暗的主题情节
- javascript - 使用 onClick 事件时函数仅执行一次 [javascript]
- java - Netbeans 8.0.2 安装本机库错误
- excel - 取消保护工作表,保护一些单元格并保留其他单元格
- java - 我是否应该在 Spring 中手动重置 Autowired Bean 的状态数据(因为它是单例)?
- python - Theano 梯度扫描操作失败