変数にカンマ区切りの行を割り当てる

変数にカンマ区切りの行を割り当てる

(可能ですか/方法)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

おすすめ記事