簡體   English   中英

Makefile:始終解析目標特定的變量

[英]Makefile: target-specific variables are always resolved

考慮以下Makefile

foo: FOOVAR:=$(shell prog_to_execute_only_on_foo)
foo:
    echo "foo"

bar:
    echo "bar"

我希望能夠在不解決FOOVAR的shell命令的情況下運行make bar

可能嗎?

如果沒有,是否有解決方法? 確保運行make bar時不會執行shell命令?

您可以通過將FOOVAR定義為遞歸擴展變量而不是簡單擴展變量來實現此FOOVAR (即,使用=代替:= ):

foo: FOOVAR = $(shell prog_to_execute_only_on_foo)
foo:
    echo "foo"

這樣,在擴展prog_to_execute_only_on_foo將執行FOOVAR

但是請注意, 每次擴展prog_to_execute_only_on_foo都會執行FOOVAR ,而對於簡單擴展的變量 (即:= ),它將僅執行一次

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM