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