Одним из возможных решений было бы определить ваши источники и создать список объектов с именами, включая часть каталога из этого.
Пример:
SRC = foo.txt bar.txt
OBJS = $(SRC:%.txt=out_dir/%.txt)
all: $(OBJS)
out_dir/%.txt: %.txt
sed -e 's/foo/bar/g' < $< > $@
Это изменится с foo
на bar
в foo.txt
и bar.txt
и поместите результат в файлы в out_dir
с теми же базовыми именами, что и у исходных файлов.
Основное отличие состоит в том, что цель не зависит от самого себя (круговая зависимость), поэтому цель out_dir/foo.txt
зависит от foo.txt
, а out_dir/bar.txt
зависит от bar.txt
.