operação de shell dentro do makefile [closed]

2

Eu tenho a seguinte linha no meu makefile:

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

que eu mudei: agora usa a ordenação do shell:

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

Mas acontece que depois que minha modificação $ (var) está vazia. O que fiz de errado?

EDITAR: Eu estava tentando substituir o gnu-make builtin sort pelo bash sort, porque queria ter mais flexibilidade sobre o processo de classificação. Descobriu-se que a saída do foreach é estranha. Eu reproduzi o problema com o seguinte 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)

que fornece o resultado esperado:

$ make
aaa hhh lll zzz
aaa hhh lll zzz

Sinto muito por incomodar você.

    
por user2551229 23.07.2015 / 11:58

0 respostas

Tags