변수에 쉼표로 구분된 줄 할당

변수에 쉼표로 구분된 줄 할당

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

관련 정보