CC = g++
CFLAGS = -g
OBJECTS = lex.o y.tab.o main.o code.o
all: asm51
asm51.tar:	
	tar cf asm51.tar lex.c main.c lex.h libs.c code.c y.tab.c 51.y y.tab.h Makefile 
main.o: main.c lex.h
libs.o: libs.c 
code.o: code.c lex.h
lex.o: lex.c y.tab.c lex.h
y.tab.o: y.tab.c lex.h
y.tab.c: 51.y
	bison -d -v 51.y
	mv 51.tab.c y.tab.c
	mv 51.tab.h y.tab.h
	mv 51.output y.output

asm51:	$(OBJECTS)
	$(CC) $(CFLAGS) $(OBJECTS) -o asm51
		
SOBJECTS = sim.o

sim.o: sim.c 
	 
sim:	$(SOBJECTS)
	$(CC) $(CFLAGS) $(SOBJECTS) -o sim

cvt.o: cvt.c 
	 
cvt:	cvt.o
	$(CC) $(CFLAGS) cvt.o -o cvt

COBJECTS = clex.o comp.tab.o cmain.o exp.o states.o const.o cout.o tree.o data.o 

CDEFS = $(DEFS) -D COMPILER -D DEBUG

comp.tab.o: comp.tab.c lex.h
comp.tab.c: comp.y
	bison -d -v comp.y

cmain.o: cmain.c 
clex.o: clex.c comp.tab.c lex.h
tree.o: tree.c lex.h
data.o: data.c lex.h
cout.o: cout.c lex.h
exp.o: exp.c lex.h
states.o: states.c lex.h
const.o: const.c lex.h
x51:	$(COBJECTS)
	$(CC) $(CFLAGS) $(COBJECTS) -o x51
#.51: .x
#	x51 $(DepDir){Default}.x  
#	asm51 -i $(TargDir){Default}.s 
