Вот мой экспериментальный Makefile.
.SECONDEXPANSION:
~/hello.txt: $(shell echo '$$(@D)/')$(shell echo '$$(@F)' | sed -e 's/hello/bye/')
echo "$^"
Как-то СЕПГ команда не работает, и сделать жалуется на циклическую зависимость
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.
Мой ожидаемое поведение было GNU Make ищет ~/bye.txt вместо этого. Что я делаю не так?
Хотя я могу просто указать «bye.txt» явно в этом маленьком примере, мне все равно хотелось бы знать, почему команда sed не применяется. Спасибо за помощь.
-1 за вводящую в заблуждение название. Принятое решение не имеет ничего общего с трубами или sed. – danorton