makefile의 셸 작업 [닫기]

makefile의 셸 작업 [닫기]

내 makefile에 다음 줄이 있습니다.

var  := $(sort $(foreach m,$(libs),$($(m)-objs)))

변경했습니다. 이제 셸에서 정렬을 사용합니다.

var  := $(shell echo $(foreach m,$(libs),$($(m)-objs)) | tr ' ' '\n' | sort | tr '\n' ' ' )

그런데 수정하고 나서 보니$(변수)비었다. 내가 뭘 잘못했나요?

편집: 정렬 프로세스에 더 많은 유연성을 갖고 싶기 때문에 gnu-make의 내장 정렬 대신 bash 정렬을 사용하려고 합니다. foreach의 출력이 이상하다는 것이 밝혀졌습니다. 다음 makefile을 사용하여 문제를 재현했습니다.

a-obj := hhh lll
b-obj := zzz aaa
x := a b
xx := $(shell echo $(foreach m,$(x),$($(m)-obj)) | tr ' ' '\n' | sort)
yy := $(sort $(foreach m,$(x),$($(m)-obj)))

all:
    @echo $(xx)
    @echo $(yy)

그러면 예상되는 출력이 제공됩니다.

$ make
aaa hhh lll zzz
aaa hhh lll zzz

방해해서 미안해.

관련 정보