проблемы с makefile (gnuplot) - PullRequest
       0

проблемы с makefile (gnuplot)

1 голос
/ 13 февраля 2012

Я пытаюсь создать некоторые графики, используя GNUplot с make-файлом.Я хотел бы, чтобы каждый файл * .plt в каталоге был запущен через GNUplot, однако я не вижу, чтобы он работал.Вот мой сборочный файл:

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 (меня немного смущает%).Теперь присваиваем переменную SOURCES, собирая любые файлы .plt, используя подстановочный знак (почему он не работает при использовании .plt вместо * .plt?).Присвоив SOURCE, затем установите переменную TARGETS, теперь у all: есть файлы, указанные для сборки.и теперь выполняется соответствующее правило.

1 Ответ

5 голосов
/ 13 февраля 2012

all : %.tex не будет работать, потому что в имени цели нет процентов, другими словами, это не правило скороговорки.

Используйте wildcard функцию для получениясписок всех .plt файлов и добавьте зависимость all для этих файлов с расширением, замененным на .tex:

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

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