Я уже видел Как вручную вызывать другую цель из целевого объекта?, но мой вопрос немного отличается; рассмотрим этот пример (обратите внимание, что stackoverflow.com меняет вкладки на пробелы на дисплее, но вкладки сохраняются в источнике, если вы пытаетесь отредактировать):
TEXENGINE=pdflatex
pdflatex:
echo the engine is $(TEXENGINE)
lualatex:
TEXENGINE=lualatex
echo Here I want to call the pdflatex rule, to check $(TEXENGINE) there!
Здесь, если я запускаю цель по умолчанию (pdflatex
), я получаю ожидаемый результат:
$ make pdflatex
echo the engine is pdflatex
the engine is pdflatex
Но, с целью lualatex
, я хочу:
- измените переменную
make
TEXENGINE
наlualatex
, а затем - вызывает тот же код, что и в
pdflatex
(который использует его).
Как я мог это сделать?
Очевидно, что в моем правиле lualatex
мне даже не удается изменить переменную TEXENGINE
, потому что я получаю это при попытке:
$ make lualatex
TEXENGINE=lualatex
echo Here I want to call the pdflatex rule, to check pdflatex there!
Here I want to call the pdflatex rule, to check pdflatex there!
... поэтому я действительно хотел бы узнать, возможно ли что-то подобное в Make файлах.