仅在定义时将变量传递给子make

时间:2017-01-25 15:29:45

标签: makefile gnu-make

我可以使用make -C VAR=$(VAR) target将变量传递给子make(因此该变量仅适用于export,因为该变量仅对单个目标有意义)。但是,似乎如果VAR变量未在父级中定义,则子级获取空字符串(它具有VAR ?= ...,并且VAR的值为空)。我怎么能避免这个?

Define make variable at rule execution time上的变体看起来应该适用于我的特定用例,但它需要父Makefile知道孩子的默认值,我想避免这种情况。

1 个答案:

答案 0 :(得分:3)

在调用子品牌时,您应该始终使用$(MAKE),而不是明确地make。此外,您在示例中的-C之后错过了一个目录。

如下:

$(MAKE) $(if $(VAR),VAR=$(VAR))