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

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

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

Postby 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: 5184
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 39 times
Contact:

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

Postby 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 и как его использовать для других вещей

Postby EGez » Mon 23 Jun, 2014 23:58

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

Code: Select all

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

Спасибо, работает как часики...


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

Who is online

Users browsing this forum: No registered users and 1 guest