Beraldo 864 Denunciar post Postado Outubro 9, 2008 Suponhamos que eu tenha o seguinte Makefile: all: gcc programa.c make doc make clean doc: doxygen Doxyfile clean: rm *.o Vejam que chamei o make dentro da regra all. Isso funciona, mas parece meio "gambiárrico". Minha intenção é executar aquelas duas regras após a execução bem sucedida de all. Com essa condição, as regras doc e clean não podem ser consideradas dependências de all, mas, sim, consequências. Portante, não posso fazer: all:clean doc Há uma forma mais bonita de fazer isso ou posso manter aquele make dentro do all? Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Outubro 9, 2008 CC = gcc EXEC = teste_exec clean: doc rm -f *.o doc: $(EXEC) doxygen Doxyfile $(EXEC): teste.c $(CC) $< -o $@ Tenta isso Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Outubro 9, 2008 Mas nesse caso, eu teria de executar make clean para realizar todas as operações desejadas, não é? Eu achei o significado de $< e $@, mas onde os valores dessas macros devem sr especificados? Na linha de comando? Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Outubro 9, 2008 não precisa dar make clean. Só make já faz o serviço. $< é a dependência e $@ o "nome" da regra. Isso já está no makefile. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Outubro 11, 2008 Fiz doc depender de clean e all depender de doc. No fim, ficou assim (usando o mesmo exemplo genérico): all:doc gcc programa.c doc:clean doxygen Doxyfile clean: rm *.o Obrigado! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites