我是非常新的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