1##2# Special Targets3##45.SUFFIXES: .o .c .y .l .a .sh67##8# Macros9##1011AR = ar12ARFLAGS = -rv13YACC = yacc14YFLAGS =15LEX = lex16LFLAGS =17LDFLAGS =18CC = cc # TODO: use cc17 here19CFLAGS = -O12021##22# Single Suffix Rules23##2425.c:26 $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $<2728.sh:29 cp $< $@30 chmod a+x $@3132##33# Double Suffix Rules34##3536.c.o:37 $(CC) $(CFLAGS) -c $<3839.y.o:40 $(YACC) $(YFLAGS) $<41 $(CC) $(CFLAGS) -c y.tab.c42 rm -f y.tab.c43 mv y.tab.o $@4445.l.o:46 $(LEX) $(LFLAGS) $<47 $(CC) $(CFLAGS) -c lex.yy.c48 rm -f lex.yy.c49 mv lex.yy.o $@5051.y.c:52 $(YACC) $(YFLAGS) $<53 mv y.tab.c $@5455.l.c:56 $(LEX) $(LFLAGS) $<57 mv lex.yy.c $@