Introdução

No contexto da cadeira de PLI irá haver necessidade de criar várias makefiles. Muitas delas irão ser semelhantes pelo que uma makefile bem parametrizada serviria todos esses casos.

Neste documento apresenta-se um exemplo e algumas regras que permitirão fazer essa para metrização.


A Makefile

Segue-se um exemplo de uma makefile usada na aula teórico-prática de 7 de Março.

SUF=dummy

$(SUF): lex.yy.o y.tab.o listas.o
	cc -o $(SUF) lex.yy.o y.tab.o listas.o -lfl

lex.yy.o: lex.yy.c y.tab.h
	cc -c lex.yy.c

lex.yy.c: $(SUF).l
	flex $(SUF).l

y.tab.o: y.tab.c
	cc -c y.tab.c

y.tab.c y.tab.h : $(SUF).y listas.h
	yacc -d $(SUF).y

listas.o: listas.c listas.h
	cc -c listas.c

clean: 
	rm *.o

Como se pode ver a makefile começa com a inicialização de uma variável - SUF. Essa inicialização garante-nos uma mensagem de erro de cada vez que a makefile fôr mal invocada (a não ser que alguém tenha chamado dummy ao seu programa).


Invocação

Sempre que a makefile fôr invocada a variável SUF deverá ser inicializada na linha de comando com o valor apropriado.

Por exemplo, no caso dos parêntesis faríamos:

   make SUF=par

Ou no caso das ListasSimples:

   make SUF=ls


Bom trabalho ... jcr


- generated by PPP in
Wed Mar 7 17:44:07 WET 2001