【发布时间】:2018-11-16 02:03:32
【问题描述】:
我正在编写一个生成文件,该文件具有多个针对体系结构和构建类型的目标。当我调用 make 时,我希望能够将两个目标传递给它,例如:
make x86 debug
架构目标设置构建目标使用的变量。架构目标可能如下所示:
.PHONY: x86
x86: NAME_PREFIX = x86_64_Linux
x86: TARGET_TRIPLE = x86_64-pc-linux-elf
x86: CC = gcc
x86: CFLAGS += -fomit-frame-pointer
第一个问题:如果我运行两个目标,make 会跳过第一个目标,因为它除了设置变量什么都不做。
$ make x86 debug
make: Nothing to be done for `x86'.
第二个问题:即使它会运行第一个目标,我的理解是当 make 开始运行第二个目标时,这些值不会被保留。
目前,我正在使用设置变量并在目标主体末尾添加构建类型目标作为先决条件的目标,但最终我需要为架构和构建类型的每种组合设置一个目标。
.PHONY: x86_debug
x86_debug: NAME_PREFIX = x86_64_Linux
x86_debug: TARGET_TRIPLE = x86_64-pc-linux-elf
x86_debug: CC = gcc
x86_debug: CFLAGS += -fomit-frame-pointer
x86_debug: debug
【问题讨论】: