all: c # create_parser
	echo all up to date

create_parser: TOOLS/create_parser.c
	cc -o create_parser TOOLS/create_parser.c

c: takeon c.c create_parser lexer.c parser.c grammar.c ast.h show_ast.c genstack.c fold.c loops.c switch.c types.c nametable.c blockscope.c insert_offsets.c insert_casts.c ast.c procfn.c booleans.c identity.c drawtree.c fix_structs.c
	./maketables grammar
	mv grammar.h c.h
	cc -DDEBUG_DRAW_TREES=1 -g -o c c.c

takeon: TOOLS/takeon.c
	cc -o takeon TOOLS/takeon.c

clean:
	rm *~

release:
	tar -cvf ../mini-c.tar .
	rm -f ../mini-c.tar.gz
	gzip ../mini-c.tar
	scp ../mini-c.tar.gz gtoal@gtoal.com:gtoal.com/compilers101/intro/gtoal/mini-c/
