(가능합니까/방법) 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