Предположим, что следующий make-файл
objects = $(wildcard *.in)
outputs := $(objects:.in=.txt)
%.txt: %.in
some-command $@ $<
compile: $(outputs)
Это работает как ожидалось.
Теперь я хочу добавить еще одну цель с именем (например) upgrade
, которая должна делать то же самое, что и compile
, но передавать дополнительные параметры some-command
(возможно, в зависимости от переменных среды, но это выходит за рамки этот вопрос).
Единственное найденное мной «решение» - это рекурсивный вызов того же make-файла и передача дополнительных опций через переменные env. Но это похоже на довольно уродливый хак.
Это то, что мне нужно в make (GNU хорошо, это не обязательно должно быть переносимо) или я просто ошибаюсь?