如果您的make(或build)目标是文件中某些内容的存在,该怎么办?

时间:2011-05-04 17:23:18

标签: build makefile

make和其他构建系统的典型构建目标是文件或目录。我正在构建a system similar BSD-ports for emacs packages

我刚刚意识到我的每个包的目标都不是真正准确的 - 并不是文件edan.el需要比其先决条件更新。它必须比先决条件更新,并且必须包含

(provide '[% pkg %])

其中pkg是刚刚下载,解压缩和字节编译的包。

有没有办法用make做到这一点?是否有其他构建系统处理此类事情?

1 个答案:

答案 0 :(得分:0)

您希望目标始终包含正确的数据。例如,您不希望foo.ofoo.c的内容无关。时间戳仅仅是代理。你必须相信这些工具确实能做正确的事。

这听起来真正的复杂因素是依赖关系是动态的。文件edan.el取决于所有当前安装和管理的软件包的列表,这些软件包可以更改。但是,您当然可以将此数据表示为文件。我希望你的文件实际上有一个活动包列表。

(您可能也希望依赖于实际的包。您应该能够编写脚本以将此数据转换为包含在主Makefile中的依赖文件。)