.SUFFIXES: .o .c .cpp .hp .me CC = gcc C++ = g++ LD = g++ CPPFLAGS = -DYYDEBUG CFLAGS = -c LEX = flex LFLAGS = -v --noyywrap --yylineno YACC = bison YFLAGS = -v OBJ = main.o scanner.yy.o parser.tab.o littab.o symtab.o uword.o error.o LIB = uasm: $(OBJ) $(LD) -o uasm $(OBJ) $(LIB) clean: 'rm' -f *.o parser.tab.* scanner.yy.* main.o: main.cpp littab.h symtab.h uword.h littab.o: littab.c littab.h error.h symtab.o: symtab.c symtab.h littab.h error.h uword.o: uword.c uword.h error.h error.o: error.c error.h scanner.yy.o: scanner.yy.c parser.tab.h littab.h uword.h parser.tab.o: parser.tab.cpp symtab.h uword.h error.h %.tab.c: %.y $(YACC) $(YFLAGS) --output-file=$@ --defines=$*.tab.h $< %.tab.h: %.y $(YACC) $(YFLAGS) --output-file=$*.tab.cpp --defines=$@ $< %.tab.cpp: %.ypp $(YACC) $(YFLAGS) --output-file=$@ --defines=$*.tab.h $< %.tab.h: %.ypp $(YACC) $(YFLAGS) --output-file=$*.tab.cpp --defines=$@ $< %.yy.c: %.l $(LEX) $(LFLAGS) --header-file=$*.yy.h --outfile=$@ $< %.yy.h: %.l $(LEX) $(LFLAGS) --header-file=$*.yy.h --outfile=$@ $< %.yy.cpp: %.lpp $(LEX) $(LFLAGS) --header-file=$*.yy.hpp --outfile=$@ $< %.yy.hpp: %.lpp $(LEX) $(LFLAGS) --c++ --header-file=$*.yy.hpp --outfile=$@ $< .c.o: $(CC) $(CPPFLAGS) $(CFLAGS) $*.c .cpp.o: $(C++) $(CPPFLAGS) $(CFLAGS) $*.cpp .me.hp: nroff -me $*.me | sed -f hpr.sed > $@