makefile问题(gnuplot)

时间:2012-02-12 21:02:56

标签: makefile gnuplot

我正在尝试使用带有makefile的GNUplot生成一些图形。我希望目录中的每个* .plt文件都能通过GNUplot运行,但是我看不到让它工作。 到目前为止,这是我的makefile:

all: %.tex
%.tex: %.plt
<tab> gnuplot < $<

如果我单独指定一个.plt文件,配方工作正常,但是我希望它在我生产它们的时候拿起我的新图。

编辑: 我想我现在已经开始工作了:

# 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:已指定要构建的文件。现在运行匹配规则。

1 个答案:

答案 0 :(得分:5)

all : %.tex将无效,因为目标名称中没有百分比,换句话说,它不是模式规则。

使用wildcard function获取所有.plt个文件的列表,并添加all对这些文件的依赖,并将扩展名替换为.tex

PLT_FILES := $(wildcard *.plt)
TARGETS   := $(PLT_FILES:%.plt=%.tex)

all: $(TARGET)
%.tex: %.plt
    gnuplot < $<