Neste documento apresenta-se um exemplo e algumas regras que permitirão fazer essa para metrizaçã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).
Por exemplo, no caso dos parêntesis faríamos:
make SUF=par
Ou no caso das ListasSimples:
make SUF=ls