首页 > 解决方案 > GNU Make:定义一个永远不会导入的局部变量?

问题描述

假设我有一个gnu-make自动化节点(这不是一个实际的东西;它是我用来做的东西)。

makefile
runFoo/
  runFoo.mk
thisBar/
  thisBar.mk

在里面makefile,我有:

# makefile
include runFoo/runFoo.mk
include thisBar/thisBar.mk

现在,我想做的是拥有一组我一直使用的变量名。例如,node或者nodeName将是为我定义的自动化邻域中的所有“节点”定义的一个很好的变量:

# runFoo/runFoo.mk
nodeName=runFoo
$(nodeName): 
   ~/.local/bin/runFoo.sh # for example

# thisBar/thisBar.mk
nodeName=thisBar
$(nodeName):
  @touch $@/$@

这个问题相当于:

有没有办法定义一个变量,以便它在包含的文件中本地使用,但不与其他文件中的任何重新定义冲突?

即,在主生成文件中,

echo:
  @echo $(nodeName)

什么都不打印:

~$ make echo 


我正在查看文档中的 MAKELEVEL,这几乎是我的目标......

基本上,这个想法是this为一个 C++ OOP 的 makefile 定义一个变量/名称。

标签: makefile

解决方案


推荐阅读