如何动态包含makefile

How to include makefile dynamically

本文关键字:包含 makefile 动态 何动态      更新时间:2023-10-16

现在我有两个makefiles,a.mk和b.mk。

a.mk将包括B.MK但是B.MK是由某些命令动态生成的,该命令在A.Mk

中执行

这是A.MK

的伪代码
command to generate B.mk 
include B.mk
compile and link

问题是include命令是类似于c文件中的#include宏。A.MK尝试在执行命令之前加载B.MK。

有人可以给我一些建议吗?

非常感谢杰里

可以使其像这样工作:

A.MK (此时,b.mk不存在)

-include b.mk
all:
    @echo foo : $(FOO)
b.mk:
    @echo "FOO=2" > b.mk

使用make -f a.mk all,我们获得了:

foo:2

在Include指令前面的符号-允许如果不存在b.mk,则不得发出警告。

如MadScientist在评论中所述,您无需将B.mk作为任何目标的先决条件。如果make看到它缺失并找到一个相应的目标,它将自动构建它。