webForumDet fria alternativet

make bråkar - beroenden

0 svar · 203 visningar · startad av spango

spangoMedlem sedan juni 20008 205 inlägg
#1

Hej, jag sitter och skriver ett dokument i LaTeX och har skrivit en makefile för att underlätta kompilering. För att kompilera .tex-filer till .dvi har jag följande regel i makefilen:

%.dvi: %.tex
ifeq ($(TWICE),yes)
	$(LATEX) "$(DOCUMENTCLASS) \input{$<}"
	rm $(LATEXCLS).dvi
	$(LATEX) "$(DOCUMENTCLASS) \input{$<}"
	mv $(LATEXCLS).dvi $@
else
	$(LATEX) "$(DOCUMENTCLASS) \input{$<}"
	mv $(LATEXCLS).dvi $@
endif

Så långt funkar det bra. Säger jag "make complex_anticipation.dvi" kompilerar den complex_anticipation.tex till complex_anticipation.dvi, säger jag "make TWICE=yes complex_anticipation.dvi" kompilerar den två gånger (vilket man vill göra ibland för att undvika keck med innehållsförteckningar, korsreferenser et.c.).

Men – om jag har en fil som inkluderar andra filer vill jag naturligtvis att den ska inse att .dvi-filen som skapas vid kompilering är förbi bäst-före-datum. Alltså har jag lagt in följande lilla rad där jag definierar dokumentets beroenden:

complex_anticipation.tex: macros.tex hyphenations.tex bibliography.tex

... eftersom complex_anticipation.tex inkluderar de tre filerna. Och det är här problemet börjar – om jag kompilerar till .dvi, ändrar i exempelvis macros.tex men inte i complex_anticipation.tex, menar make att "complex_anticipation.dvi is up to date", vilket den ju inte är. Så här ser en typisk kommandoradssession ut:

[gustaf-c@l324 real_deal]$ [b]make complex_anticipation.dvi[/b]
[i]... latex kompilerar min .tex-fil...[/i]
[gustaf-c@l324 real_deal]$ [b]touch macros.tex[/b]
[gustaf-c@l324 real_deal]$ [b]make complex_anticipation.dvi[/b]
make: `complex_anticipation.dvi' is up to date.

Nu är jag inte så jättehej på make, så därför frågar jag: Varför funkar det inte? Används inte beroenden på det här viset?

129 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)