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

邪魔してすみません。

関連情報