代码之家  ›  专栏  ›  技术社区  ›  tekumara

在Makefile[duplicate]中首次使用时,分配变量一次

  •  2
  • tekumara  · 技术社区  · 7 年前

    我怎么能只调用make shell 函数在变量展开中只使用一次,且仅在变量首次使用时才使用?我不想用 := 在声明时进行扩展(即:简单扩展),因为扩展非常昂贵,而且只有我的一些目标需要变量。

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

    .PHONY: test
    
    FILES ?= $(warning Invoking the shell)$(shell ls)
    
    test:
        echo $(FILES) one
        echo $(FILES) two
    
    1 回复  |  直到 7 年前
        1
  •  -1
  •   user657267    7 年前

    将作业移到菜谱中

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