(可能ですか/方法)makeファイルの変数にカンマ区切りの行を割り当てますか?
var1=name,name2,
name3,name4.....
スペースで区切られた場合は、このように \ を使用します。
var = name1 name2 \
name3 name4
答え1
[簡単な割り当てのためにスペースで区切られた単語のリストと同様に、複数行にカンマで区切られた長い単語のリストを作成したいと思います。var = a,b,c
]
標準ではこれは可能ではないと思いますmake
。 GNU make(Linuxではデフォルト)を使用すると、次の機能を使用できますsubst()
。
$ cat Makefile
list = first,second,\
third,fourth,\
fifth,sixth
e :=
c := ,
list := $(subst $c $e,$c,$(list))
list:; echo $(list)
$ make
echo first,second,third,fourth,fifth,sixth
first,second,third,fourth,fifth,sixth
GNU makeを使用する場合のより良いアプローチは、リストをスペースで区切って定義し、それをコンマで区切って変換することです。
$ cat Makefile
words = first second \
third fourth \
fifth sixth
e :=
c := ,
clist = $(subst $e $e,$c,$(strip $1))
words:; echo $(call clist,$(words))
$ make
echo first,second,third,fourth,fifth,sixth
first,second,third,fourth,fifth,sixth