Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Beraldo

Execução de regras de Makefiles

Recommended Posts

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.