- Questo topic ha 8 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 13 anni fa da .
-
Topic
-
Salve a tutti. Ho un problema nella creazione di un makefile. Vorrei appunto un make file per compilare in un colpo solo tutte le immagini fatte con tikz salvate in un apposita cartella. Il problema è che sono riuscito a scrivere un file che me li compila solo una per volta (cioé ogni volta devo ridare il comando all’esterno) e non capisco perché, ma non controlla neanche se sono già compilati, quindi ricompila anche i file che non ho modificato. Ho risolto parzialmente sfruttando un ciclo for in cui mettevo poi il comando make, ma in tal modo specificare io quanti file deve compilare, mentre vorrei che leggesse da solo i nomi dei file dalla cartella (cosa che sono riuscito a fare) e che poi li compilasse solo se non c’è il corrispondente pdf o se il file è stato modificato. Di seguito vi posto il makefile da me creato. Grazie in anticipo per la vostra attenzione.`
MAIN = zzz
MAIN_TEX = $(MAIN).tex
CAP_TEX = $(wildcard Capitoli/*.tex)
MAIN_PDF = $(MAIN).PDF
IMG_DIR = tikz
IMG_PDF = $(wildcard $(IMG_DIR)/*.pdf)
IMG_TIKZ = $(patsubst tikz/%.tikz, %.tikz , $(IMG_DIR)/*.tikz)
IMG_TEX = $(patsubst tikz/%.tikz, %.tex , $(IMG_TIKZ))
FILE_CLEAN = *.aux *.log *.bbl *.blg *.dvi *.gz *.out *.toc *.auxlock.PHONY: pdf clean
pdf: $(MAIN_PDF)
$(MAIN_PDF): $(MAIN_TEX) $(CAP_TEX)
pdflatex -interaction=nonstopmode $(MAIN_TEX); pdflatex -interaction=nonstopmode $(MAIN_TEX); pdflatex -interaction=nonstopmode -synctex=1 $(MAIN_TEX)%.pdf: $(IMG_DIR)/%.tikz $(IMG_DIR)/Pacchetti.tex
cd $(IMG_DIR); pdflatex $(shell basename $<); rm -f $(FILE_CLEAN) clean: rm -f $(FILE_CLEAN) `
- Devi essere connesso per rispondere a questo topic.