1
我正在嘗試使用GNUplot和makefile生成一些圖。我想要通過GNUplot運行目錄中的每個* .plt文件,但是我看不到它能夠正常工作。 這裏是我的makefile至今:如果我單獨指定.PLT文件生成文件問題(gnuplot)
all: %.tex
%.tex: %.plt
<tab> gnuplot < $<
配方工作正常,但我希望它拿起我的新地塊,因爲我生產它們。
編輯: 我想我找到了現在的工作:
# plots all files in the folder with .plt extensions
SOURCES = $(wildcard *.plt)
TARGETS = $(SOURCES:.plt=.tex)
all: $(TARGETS)
%.tex: %.plt
gnuplot < $<
有人可以證實我的推理(如下)是否正確? 以前我沒有爲all
指定任何文件(我有點困惑%)。現在通過使用通配符拾取任何.plt文件來分配變量SOURCES
(爲什麼在使用.plt而不是* .plt時不起作用?)。已分配SOURCE
,然後設置TARGETS
變量,現在all:
具有指定要構建的文件。並且匹配規則現在運行。
是的,你的推理鏈條是正確的。 – 2012-02-12 22:12:04
使用.plt而不是* .plt不起作用,因爲'wildcard'函數需要一個shell glob表達式。 From [here](http://www.gnu.org/software/make/manual/make.html#Wildcards):make中的通配符是'*','?'和'[...]',與Bourne shell相同。 – 2012-02-12 22:15:01