Makefile и как его использовать для других вещей

Здесь обсуждаются темы, косвенно связанные с Far.
Post Reply
EGez
Posts: 137
Joined: Thu 04 Oct, 2012 13:53
Location: Hamburg, DE
Has thanked: 2 times
Been thanked: 1 time

Makefile и как его использовать для других вещей

Post by EGez » Mon 23 Jun, 2014 23:27

Здравствуйте,

Работаю над неким документом в LaTeX, для этого пытаюсь решить следующую проблему с помощью msys make, не выходит:
  1. Есть некоторые файлы SVG, которые время от времени изменяются, их необходимо конвертировать в PDF: inkscape file.svg --export-pdf file.pdf
  2. Генерированные таким образом PDF файлы используются при достаточно частой компиляции документа в LaTeX.
  3. В TeXstudio можно указать команду, которая запускается перед компиляцией документа.
  4. Естественно, цель состоит в том, чтобы перед компиляцией документа из TeXstudio конвертировались только те, которые были изменены.
Я так полагаю make тут как нельзя кстати.

На данный момент мой Makefile выглядит вот так:

Code: Select all

SOURCES=class_diagram.svg component_diagramm.svg sequence_diagram_guide.svg sequence_diagram_record.svg
OBJECTS=$(SOURCES:.svg=.pdf)

all: $(OBJECTS)

$(OBJECTS): $(SOURCES)
	"C:\Program Files\inkscape\inkscape.exe" "$<" --export-pdf "$@"
Проблема в том, что при компиляции документа, если был изменен хоть один единственный SVG файл, то конвертируются все, а не тот самый единственный. Если же никакой из них не затронут, make совершенно легально рапортует "Nothing to be done for `all'."

Что не так? Никак не допру :(

Спасибо

User avatar
zg
zero-gravity
Posts: 5307
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 47 times
Contact:

Re: Makefile и как его использовать для других вещей

Post by zg » Mon 23 Jun, 2014 23:32

EGez wrote:Проблема в том, что при компиляции документа, если был изменен хоть один единственный SVG файл, то конвертируются все, а не тот самый единственный.
имено это в makefile и просится. надо:

Code: Select all

%.pdf: %.svg
	"C:\Program Files\inkscape\inkscape.exe" "$<" --export-pdf "$@"

EGez
Posts: 137
Joined: Thu 04 Oct, 2012 13:53
Location: Hamburg, DE
Has thanked: 2 times
Been thanked: 1 time

Re: Makefile и как его использовать для других вещей

Post by EGez » Mon 23 Jun, 2014 23:58

zg wrote:имено это в makefile и просится. надо:

Code: Select all

%.pdf: %.svg
	"C:\Program Files\inkscape\inkscape.exe" "$<" --export-pdf "$@"
Спасибо, работает как часики...

Post Reply

Return to “Операционные системы, командные оболочки и прочее”