[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico]
[Índice de assunto]
RE: Makefile
O Marcel e o André já responderam a pergunta do Ivan. A seguir eu só
estou ilustrando as respostas deles com uns exemplos.
-----------------------------------------------------------------------
Digamos que o meu Makefile não tem o tal FORCE.
Para criar um arquivo hamiltoniano.dvi a partir do documento
CWEB-LaTeX hamiltoniano.w fiz
meu_prompt>make hamiltoniano.dvi
This is CWEAVE (Version 3.4)
*1*2*3*4*5*8*10*12*25*27
Writing the output file...*1*2*3*4*5*8*10*12*25*27
[...]
latex hamiltoniano.tex
This is TeX, Version 3.14159 (C version 6.1)
[...]
Output written on hamiltoniano.dvi (18 pages, 55436 bytes).
Transcript written on hamiltoniano.log.
Com temos que rodar o latex duas vezes para criar ou atualizar
o sumário fiz novamente
meu_prompt>make hamiltoniano.dvi
make: `hamiltoniano.dvi' is up to date.
Hummm. De fato, o make tem razão. Veja as datas dos arquivos
meu_prompt>ll
-rw-r--r-- 1 coelho coelho 55436 Feb 26 20:18 hamiltoniano.dvi
-rw-r--r-- 1 coelho coelho 34013 Feb 26 20:12 hamiltoniano.tex
-rw-r--r-- 1 coelho coelho 1983 Feb 26 20:18 hamiltoniano.toc
-rw-r----- 1 coelho users 27872 Feb 26 20:11 hamiltoniano.w
Note que a data da última alteração do arquivo hamiltoniano.dvi é
mais recente que as datas da última alteração dos repectivos arquivos
.tex do qual ele depende (e o .tex é mais recente do .w do qual ele
depende) desta forma, o make acertadamente não reconstruiu o
`target' hamiltoniano.dvi.
Para _não_ criar ou atualizar o target, o make certificou-se que todos
os arquivos dos quais este target depende __existem__ e estão
atualizados (up to date) e de que a data do target é a mais recente de
todas. (Notem que a palavra atualizar acima foi empregada de uma certa
forma recursiva.)
Assim, para forçar que um target seja sempre reconstruído basta
escrever no Makefile as regra
hamiltoniano.dvi: hamiltoniano.tex FORCE
<comando>
FORCE:
onde FORCE é nome de um arquivo que _não existe_. Assim, sempre que
fizermos
meu_prompt>make hamiltoniano.dvi
esse o target hamiltoniano.dvi será criado ou reconstruído.
Sem usar esse tal nome-de-um-arquivo-que-não-exite ainda é possível
usar o make para reconstruir o hamiltoniano.dvi. Para isto basta, por
exemplo, fazer
meu_prompt>touch hamiltoniano.w
Após fazer isto veja o que acontece com as datas do arquivos.
meu_prompt>ll
-rw-r--r-- 1 coelho coelho 55436 Feb 26 20:18 hamiltoniano.dvi
-rw-r--r-- 1 coelho coelho 34013 Feb 26 20:12 hamiltoniano.tex
-rw-r--r-- 1 coelho coelho 1983 Feb 26 20:18 hamiltoniano.toc
-rw-r----- 1 coelho coelho 27872 Feb 26 20:41 hamiltoniano.w
Após isto, se fizermos
meu_prompt>make hamiltoniano.dvi
o target hamiltoniano.dvi é reconstruído.
Kbô os exemplos.
té +,
coelho