我是非常新的make。我有一个生成三个乳胶文件的perl脚本。我想创建一个makefile来执行perl脚本,然后在新生成的tex文件上运行lualatex。到目前为止,我有以下几点:规则运行gnumake新生成的文件上的命令
make:
perl diff.pl
pdf:
make
$(eval LIST := $(shell ls *.tex))
lualatex $(LIST).tex
make clean
clean:
rm -rf *.log *.aux
输出:
lualatex FLAT_FLAT_AVDD.tex FLAT_FLAT_VDD.tex FLAT_FLAT_VSS.tex.tex
而且我只得到一个PDF FLAT_FLAT_AVDD.pdf。 如何在所有文件上运行lualatex? 我只能声明三个变量,然后运行make。但是,我怎样才能自动化呢? make中有循环概念吗?通过对文件名进行“硬编码”来达到这个目的更好的方法是什么?
谢谢。编辑: 我试图纳入foreach
。
make:
perl diff.pl
list:
$(eval LIST := $(shell ls *.tex))
pdf:
make list
$(foreach tex,$(LIST),$(lualatex $(tex)))
make clean
clean:
rm -rf *.log *.aux
,然后我跑,make pdf
我在终端下面的输出。
dedehog01:tislam1:243 > make pdf
make list
make[1]: Entering directory `/home/tislam1/Documents/THESIS/Script_v0.1/BOX_approach/Modified_Layout_mesh/IR_Report_mesh/flat_flat/make'
make[1]: `list' is up to date.
make[1]: Leaving directory `/home/tislam1/Documents/THESIS/Script_v0.1/BOX_approach/Modified_Layout_mesh/IR_Report_mesh/flat_flat/make'
make clean
make[1]: Entering directory `/home/tislam1/Documents/THESIS/Script_v0.1/BOX_approach/Modified_Layout_mesh/IR_Report_mesh/flat_flat/make'
rm -rf *.log *.aux
make[1]: Leaving directory `/home/tislam1/Documents/THESIS/Script_v0.1/BOX_approach/Modified_Layout_mesh/IR_Report_mesh/flat_flat/make'
您绘制的草图将多次运行_perl_。它只需要运行一次来创建三个'.tex'文件。 – bobbogo