@

@を先頭に置くと、コマンドが出力されない。

変数

= は再帰的な展開、:=は単純な展開(GNU make: 6. 変数の使用法

シェルの結果を変数に代入するには

VALUE = $(shell command)

ruleの中でMakefileの変数に代入する

evalを使う

rule:
	$(eval F := $(shell seq 10 | peco))
	echo $(F)
	echo $(F)

参照

$のエスケープ

シェルの中で$を使う場合は$を$$と書いて、エスケープする。例えば

out=$(date); echo $out

をMakefleの中で書く時は

sample:
	out=$$(date); echo $$out

とする

GNU Make 第3版

著者:Robert Mecklenburg

出版社:オライリージャパン