# Uebersetzerbau, SS 2006
# Paul Staroch, 0425426
# Gesamtbeispiel
#
# Makefile

CFLAGS=-ansi -pedantic

all: gesamt

gesamt: scanner.o parser.o symbol_table.o tree.o code.o code_gen.o
	gcc -o gesamt scanner.o parser.o symbol_table.o tree.o code.o code_gen.o -ll

oxout.y oxout.l:
	ox parser.y scanner.lex

parser.c: oxout.y
	yacc -d oxout.y -o parser.c

scanner.c: oxout.l parser.c
	flex -o scanner.c oxout.l

scanner.o: scanner.c
	gcc $(CFLAGS) -c scanner.c

parser.o: parser.c
	gcc $(CFLAGS) -c parser.c

symbol_table.o: symbol_table.c
	gcc $(CFLAGS) -c symbol_table.c

tree.o: tree.c
	gcc $(CFLAGS) -c tree.c

code.c: code.bfe code.awk
	gawk -f code.awk < code.bfe | iburg > code.c

code.o: code.c
	gcc $(CFLAGS) -c code.c

code_gen.o: code_gen.c
	gcc $(CFLAGS) -c code_gen.c
	
clean:
	rm -rf oxout.y oxout.l parser.c scanner.c scanner.o parser.o symbol_table.o gesamt parser.h code.c tree.o code.o code_gen.o

test:
	/usr/ftp/pub/ublu/test/gesamt/test

debug:
	ox parser.y scanner.lex
	yacc -d oxout.y -o parser.c
	flex -o scanner.c oxout.l
	gcc -g $(CFLAGS) -D DEBUG -c scanner.c
	gcc -g $(CFLAGS) -D DEBUG -c parser.c
	gcc -g $(CFLAGS) -D DEBUG -c symbol_table.c
	gcc -g $(CFLAGS) -D DEBUG -c tree.c
	gawk -f code.awk < code.bfe | iburg > code.c
	gcc -g $(CFLAGS) -D DEBUG -c code.c
	gcc -g $(CFLAGS) -D DEBUG -c code_gen.c
	gcc -o gesamt scanner.o parser.o symbol_table.o tree.o code.o code_gen.o -ll
										
