对于一个小项目,我有以下的工作流程:
- 编译代码生成
./data
和./images
- 运行代码,这将写入许多文件到
./data
- 从数据文件生成图像,将它们放在
./images
中 - 从图像生成视频
我已经写了一个makefile,它可以运行代码,并在必要时编译它。但我不知道如何实现步骤3和4的依赖关系,目前手工制作目标。
那么,是否有一种方法来检查例如./data
中的最新文件是否比./images
中的最新文件更新?没有必要在每个文件的基础上执行此操作,并且数据/图像文件的总数是未知的。
目录的日期通常是最后一个文件被添加/修改的日期,因此您可以使用目录本身的时间戳作为依赖项。
images : data
// generate images
或者,如果两个目录中的文件之间存在映射,您可以这样做:
images/%.img: data/%.dat
// generate image...