GNU Makefile第一个目标没有被调用

时间:2018-04-03 22:34:13

标签: makefile gnu-make target

我正在关注GNU Makefile treating each recipe line as sub-shell command without continuation character

中的解决方案
target_compile: PROJECT_SIM_OPTS += -LDFLAGS -L${CURRENT_DIR},-lm -load

target_compile: copy_shared_object actual_compile_with_sim_opts
    @echo PROJECT_SIM_OPTS=${PROJECT_SIM_OPTS} ...

当我创建Makefile时,我能够看到第二个target_compile触发,但不是第一个target_compile除了变量之外没有依赖关系和配方。我尝试在行override之前添加PROJECT_SIM_OPTS,在行尾添加;,但仍无效。

没有报告错误消息,这使得检测更加困难。简而言之,我必须将这段代码嵌入到另一个Makefile中,如果第一个目标可行,我将看到一个用-LDFLAGS -L${CURRENT_DIR},-lm -load生成的文件。由于生成此文件时没有这些标志,我有信心说第一个目标没有触发。

两个target_compile如何协同工作?

1 个答案:

答案 0 :(得分:1)

原来是一个订购问题。在我的情况下

target_compile: copy_shared_object actual_compile_with_sim_opts
    @echo PROJECT_SIM_OPTS=${PROJECT_SIM_OPTS} ...

actual_compile_with_sim_optscopy_shared_object

之前运行

一旦我把这样的依赖, actual_compile_with_sim_opts: copy_shared_object

我能够让两个目标都使用正确的标志

感谢@Beta的所有帮助。