1CXX ?= g++ 2LD = $(CXX) 3CXXFILES = parser.cc lexer.cc expr.cc canvas.cc aamath.cc 4OBJS = $(CXXFILES:.cc=.o) 5TARGET = aamath 6CFLAGS += -Wall -DUSE_READLINE 7LIBS = -lreadline -ltermcap 8 9$(TARGET): $(OBJS) 10 $(LD) $(LDFLAGS) $(OBJS) -o $@ $(LIBS) 11 12yacc: parser.y 13 yacc -d parser.y 14 15parser.cc: yacc 16 mv y.tab.c parser.cc 17 18parser.h: yacc 19 mv y.tab.h parser.h 20 21lexer.cc: lexer.l parser.h 22 lex lexer.l && mv lex.yy.c lexer.cc 23 24.cc.o: 25 $(CXX) $(CFLAGS) -c $< 26 27clean: 28 rm -f *.o lexer.cc parser.h parser.cc $(TARGET) 29 30all: $(TARGET) 31