include Sources GENSOURCES=garnet.tab.c lex.yy.c ALLSOURCES=$(CSOURCES) $(GENSOURCES) CCC=g++ -Wno-deprecated DEPENDCCC=g++ -MM all: Makefile.bak make garnet Makefile.bak: Makefile (make depend) clean: rm -f $(ALLSOURCES:.c=.o) rm -f $(GENSOURCES) garnet: $(ALLSOURCES:.c=.o) $(CCC) -o $@ $^ -lfl lex.yy.c: garnet.l flex $< garnet.tab.c: garnet.y bison -dv $< sed -i garnet.tab.c -e "s/ __attribute__ ((__unused__))$$/# ifndef __cplusplus\n __attribute__ ((__unused__));\n# endif/" .c.o: $(CCC) -c $< depend: $(ALLSOURCES) awk '/^# dependencies/ { exit 0; } {print $0; } END{print "# dependencies";}' < Makefile > Makefile.new ${DEPENDCCC} $^ >> Makefile.new mv Makefile Makefile.bak mv Makefile.new Makefile touch Makefile.bak # dependencies AST.o: AST.c AST.h garnet.tab.o: garnet.tab.c AST.h lex.yy.o: lex.yy.c AST.h garnet.tab.h