0

これが私の実験的な Makefile です。

.SECONDEXPANSION:

~/hello.txt:  $(shell echo '$$(@D)/')$(shell echo '$$(@F)' | sed -e 's/hello/bye/')
    echo "$^"

どういうわけか sed コマンドが機能せず、Make が循環依存について不平を言う

gmake: Circular /users/sim/hello.txt <- /users/me/hello.txt dependency dropped.
gmake: *** No rule to make target `echo', needed by `/users/me/hello.txt'.  Stop.

私の予想される動作は、代わりに ~/bye.txt を探す GNU Make でした。私は何を間違っていますか?

この小さな例では「bye.txt」を明示的に指定することしかできませんが、sed コマンドが適用されない理由を知りたいです。ご協力ありがとうございました。

4

1 に答える 1