Make:依赖于目录中最新的文件



对于一个小项目,我有以下的工作流程:

  1. 编译代码生成./data./images
  2. 运行代码,这将写入许多文件到./data
  3. 从数据文件生成图像,将它们放在./images
  4. 从图像生成视频

我已经写了一个makefile,它可以运行代码,并在必要时编译它。但我不知道如何实现步骤3和4的依赖关系,目前手工制作目标。

那么,是否有一种方法来检查例如./data中的最新文件是否比./images中的最新文件更新?没有必要在每个文件的基础上执行此操作,并且数据/图像文件的总数是未知的。

目录的日期通常是最后一个文件被添加/修改的日期,因此您可以使用目录本身的时间戳作为依赖项。

images : data
     // generate images

或者,如果两个目录中的文件之间存在映射,您可以这样做:

images/%.img: data/%.dat
    // generate image...

最新更新