これが私の実験的な 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 コマンドが適用されない理由を知りたいです。ご協力ありがとうございました。