如何从不同的 makefile 调用目标?
How to call a target from a different makefile?
我无法从不同的 makefile 执行目标。这是我正在做的
${MAKE} target -f makefile-location
最终发生的事情是它试图执行整个 makefile 而不是导致它失败的特定目标。我只需要它运行那个特定的目标。
更新:
现在我认为它只是在目标之前执行宏。它在包含行失败,但我不确定它是否应该在我调用特定目标时执行。
### MAKEFILE BEGINS###
.SILENT
PROJCONFIG := ${PROJ_CFG}
PATH := directory
include ${PATH}/config.cfg
您是否认为 Make 从给定目标开始通过 Makefile 工作?如果是这样,您将对正在发生的事情有一个错误的模型。
Make 的工作方式是 (1) 它解析 整个 Makefile,包括 include
指示的任何内容,然后 (2) 确定它是哪个目标满足(在命令行上给出,或者将遇到的第一个目标作为默认值),然后 (3) 确定它必须执行什么操作才能满足该目标。
Makefile 中目标的顺序是任意的,遇到的第一个目标是唯一的例外,如果在命令行中没有给出目标,则将其用作默认值。
也就是说,Makefile 中没有自上而下的逻辑,如果您将其视为“普通”编程语言,您可能会想到这一点。
因此,在回答您的(隐含的)问题时,如果它在 include
上失败,那么无论它试图满足什么目标,它都会这样做。如果它在那里失败,那么 .cfg
文件中的 (Makefile) 语法有问题。
我无法从不同的 makefile 执行目标。这是我正在做的
${MAKE} target -f makefile-location
最终发生的事情是它试图执行整个 makefile 而不是导致它失败的特定目标。我只需要它运行那个特定的目标。
更新:
现在我认为它只是在目标之前执行宏。它在包含行失败,但我不确定它是否应该在我调用特定目标时执行。
### MAKEFILE BEGINS###
.SILENT
PROJCONFIG := ${PROJ_CFG}
PATH := directory
include ${PATH}/config.cfg
您是否认为 Make 从给定目标开始通过 Makefile 工作?如果是这样,您将对正在发生的事情有一个错误的模型。
Make 的工作方式是 (1) 它解析 整个 Makefile,包括 include
指示的任何内容,然后 (2) 确定它是哪个目标满足(在命令行上给出,或者将遇到的第一个目标作为默认值),然后 (3) 确定它必须执行什么操作才能满足该目标。
Makefile 中目标的顺序是任意的,遇到的第一个目标是唯一的例外,如果在命令行中没有给出目标,则将其用作默认值。
也就是说,Makefile 中没有自上而下的逻辑,如果您将其视为“普通”编程语言,您可能会想到这一点。
因此,在回答您的(隐含的)问题时,如果它在 include
上失败,那么无论它试图满足什么目标,它都会这样做。如果它在那里失败,那么 .cfg
文件中的 (Makefile) 语法有问题。