如何添加内置规则?

时间:2018-01-23 23:50:39

标签: makefile gnu-make

Make(1)具有内置规则,因此对于简单任务,您根本不需要makefile。我可以输入make prog,如果当前目录有prog.c,make会做一些有用的事情。

我有许多这样的规则(例如,如何从.pdf制作.html)适用于许多项目。如果我在目录中有一个makefile,我可以简单地从文件中包含我的规则。有没有办法告诉make总是使用这个文件?就像一个点文件,在做任何其他事情之前总会包含它。

1 个答案:

答案 0 :(得分:2)

Make&#39>规则是真正内置的,而不是从文件中读取。这有一个优点(整个make是一个可执行文件,您可以将其复制并安装在任何地方并获得相同的行为)和缺点(您无法修改默认规则而无需修改源代码并重新编译 - 如果您需要但要做到这一点很容易:查看来源中的default.c文件。

你可以指定一个额外的makefile(或makefile),它应该在使用环境变量的常规文件之前解析,所以你可以用一些额外的规则创建一个makefile,然后(在你的~/.bashrc或者其他内容中) )将the MAKEFILES environment variable设置为包含这些额外规则的文件名(不要忘记导出)。

现在每次make调用都会加载这些规则。

但您可能会发现,这并不是您所希望的,因为它可能会导致其他makefile失败或以奇怪的方式行事(例如,如果您下载开源软件包并希望在本地构建它们等等。)如果你这样做只记得你做过,所以在几个月内如果你遇到问题你会记得尝试撤消它并看看它是否有帮助: - )