0
请建议的makefile食谱线执行顺序,同时调用函数
all:
@echo "Line 1"
$(info Line 2)
执行使
Line 2
Line 1
印什么规则定义。下一个问题是如何克服这种行为,除了分裂成两个目标?
请建议的makefile食谱线执行顺序,同时调用函数
all:
@echo "Line 1"
$(info Line 2)
执行使
Line 2
Line 1
印什么规则定义。下一个问题是如何克服这种行为,除了分裂成两个目标?
在调用任何配方行之前,GNU make将始终扩展整个配方(所有行)中的所有变量和函数。由于$(info ...)
是make函数,因此它首先被扩展,并且扩展打印出您首先看到的“Line 2”。在扩展之后,配方只包含一行传递给shell执行并显示“第2行”的行。
你应该只使用shell命令,如果你关心的事物的秩序:
all:
@echo "Line 1"
@echo "Line 2"