【问题标题】:Assign variable once when first used in Makefile [duplicate]首次在 Makefile 中使用时分配一次变量 [重复]
【发布时间】:2018-11-18 15:21:24
【问题描述】:

如何在变量扩展中仅调用一次 make shell 函数,并且仅在第一次使用该变量时调用?我不想在声明时使用:= 进行扩展(即:简单扩展),因为扩展很昂贵,并且只有我的一些目标需要该变量。

我尝试使用条件变量赋值,但它每次都调用shell,例如,以下调用shell ls两次:

.PHONY: test

FILES ?= $(warning Invoking the shell)$(shell ls)

test:
    echo $(FILES) one
    echo $(FILES) two

【问题讨论】:

标签: makefile gnu-make


【解决方案1】:

在配方中移动作业

test:
    FILES=$$(ls) ;\
    echo $$FILES one ;\
    echo $$FILES two

【讨论】:

    猜你喜欢
    • 2021-11-29
    相关资源
    最近更新 更多