【发布时间】:2018-12-22 22:30:03
【问题描述】:
除了 make 用来定位 include 指令加载的文件的标准目录之外,还有什么方法可以在 makefile 本身内指定其他包含路径?我知道 -I 命令行 GNU make 选项,但我想知道是否有任何 make 变量可以指定相同的选项。
【问题讨论】:
标签: makefile include include-path
除了 make 用来定位 include 指令加载的文件的标准目录之外,还有什么方法可以在 makefile 本身内指定其他包含路径?我知道 -I 命令行 GNU make 选项,但我想知道是否有任何 make 变量可以指定相同的选项。
【问题讨论】:
标签: makefile include include-path
我建议使用 .INCLUDE_DIRS 变量,但正如下面评论中指出的那样,该变量是只读的。
我能想到的唯一另一种方法是让顶级文件调用真正的makefile,并让顶级文件更新MAKEFLAGS:
# Top level -- Call it GNUmakefile?
INCLUDE_DIRS := first second third
MAKEFLAGS += $(foreach dir,$(INCLUDE_DIRS),--include-dir=$(dir))
.DEFAULT all:;$(MAKE) -f Makefile $(MAKECMDGOALS)
然后用.INCLUDE_DIRS中的三个目录调用真正的Makefile。
【讨论】:
INCLUDE_DIRS 变量只包含一个硬编码的包含目录列表,以告知您 GNU Make 将使用什么。