# Makefile

CPP	= g++
CPPFLAGS= -Wall
YACC	= bison
LEX	= flex

OBJECTS	= parser.tab.o scanner.o alloc.o main.o control.o parse.o testparser.o

PROGRAM	= main

all:	${PROGRAM}

${PROGRAM}:	${OBJECTS}
	${CPP} ${CPPFLAGS} -o $@ $^

%.o: %.cpp
	${CPP} ${CPPFLAGS} -c -o $@ $*.cpp

clean:
	@rm -f ${PROGRAM} ${OBJECTS} *.tab.* core *~ scanner.cpp parser.output

depend:
	makedepend *.cpp *.l *.y

%.tab.cpp: %.y
	${YACC} -v -d $*.y
	mv $*.tab.c $*.tab.cpp

%.cpp: %.l
	${LEX} -o$@ $*.l

# DO NOT DELETE

alloc.o: alloc.hpp node.hpp strpool.hpp
control.o: control.hpp node.hpp alloc.hpp strpool.hpp parse.hpp error.hpp
control.o: type.hpp
main.o: testparser.hpp parse.hpp error.hpp node.hpp control.hpp alloc.hpp
main.o: strpool.hpp type.hpp
parse.o: parse.hpp error.hpp node.hpp control.hpp alloc.hpp strpool.hpp
parse.o: type.hpp
testparser.o: testparser.hpp parse.hpp error.hpp node.hpp control.hpp
testparser.o: alloc.hpp strpool.hpp type.hpp
scanner.o: /usr/include/stdlib.h /usr/include/iso/stdlib_iso.h
scanner.o: /usr/include/sys/feature_tests.h /usr/include/sys/ccompile.h
scanner.o: /usr/include/sys/isa_defs.h /usr/include/iso/stdlib_c99.h
scanner.o: error.hpp node.hpp scan_parse.hpp type.hpp control.hpp alloc.hpp
scanner.o: strpool.hpp parse.hpp
parser.o: /usr/include/stdio.h /usr/include/sys/feature_tests.h
parser.o: /usr/include/sys/ccompile.h /usr/include/sys/isa_defs.h
parser.o: /usr/include/iso/stdio_iso.h /usr/include/sys/va_list.h
parser.o: /usr/include/stdio_tag.h /usr/include/stdio_impl.h
parser.o: /usr/include/iso/stdio_c99.h parse.hpp error.hpp node.hpp
parser.o: control.hpp alloc.hpp strpool.hpp type.hpp scan_parse.hpp
