CC = cc
CKCOM = $(ROOT)/ck/$(MEMTYPE)/common
CKHOST = $(ROOT)/ck/$(MEMTYPE)/$(MACHINE)
LIB = $(ROOT)/rolog_compiler/common
CFLAGS = -c -I. -I$(CKCOM) -I$(CKHOST) -I$(LIB)
GENOBJ = main.o cg.o cu.o seq_cg.o seq_cu.o output.o gen_globals.o stub.o \
	bit_vectors.o ca.o callpat.o det.o directive.o entry.o globals.o\
	graph.o lattice.o pgm.o pgm_globals.o printterm.o set_state.o state.o\
	static.o mem.o
OPSFILE = "\"$(ROOT)/rolog_compiler/gen/ops\""

#CPRIOFLAGS = -DPRIORITY

gen : $(GENOBJ) 
	rm -f gen
	$(CC) -o gen $(GENOBJ) 
	chmod g+rw gen

main.o : typedefs.h macros.c $(CKCOM)/cksys.h $(CKHOST)/host.h main.c
	rm -f main.o
	$(CC) $(CFLAGS) $(CPRIOFLAGS) -DOPS=$(OPSFILE) main.c
	chmod g+rw main.o

cg.o: cg.c cg.h gen.h pgm.h instruct.h typedefs.h pgm_typedefs.h \
	$(CKHOST)/host.h $(CKCOM)/cksys.h macros.c pgm_macros.c  be_macros.c \
	bit_macros.c
	rm -f cg.o
	$(CC) $(CFLAGS) $(CPRIOFLAGS) cg.c
	chmod g+rw cg.o

cu.o: cu.c cg.h gen.h pgm.h instruct.h typedefs.h pgm_typedefs.h \
	$(CKHOST)/host.h $(CKCOM)/cksys.h macros.c pgm_macros.c 
	rm -f cu.o
	$(CC) $(CFLAGS) cu.c
	chmod g+rw cu.o

seq_cg.o: seq_cg.c cg.h gen.h pgm.h instruct.h typedefs.h pgm_typedefs.h \
	$(CKHOST)/host.h $(CKCOM)/cksys.h macros.c pgm_macros.c be_macros.c \
	bit_macros.c
	rm -f seq_cg.o
	$(CC) $(CFLAGS) seq_cg.c
	chmod g+rw seq_cg.o
	
seq_cu.o: seq_cu.c cg.h gen.h pgm.h instruct.h typedefs.h pgm_typedefs.h \
	$(CKCOM)/cksys.h $(CKHOST)/host.h macros.c pgm_macros.c 
	rm -f seq_cu.o
	$(CC) $(CFLAGS) seq_cu.c
	chmod g+rw seq_cu.o

output.o: output.c cg.h gen.h pgm.h typedefs.h pgm_typedefs.h $(CKCOM)/cksys.h\
	$(CKHOST)/host.h
	rm -f output.o
	$(CC) $(CFLAGS) output.c
	chmod g+rw output.o

gen_globals.o : gen_globals.c
	rm -f gen_globals.o
	$(CC) $(CFLAGS) gen_globals.c 
	chmod g+rw gen_globals.o


stub.o:	typedefs.h macros.c $(LIB)/ropm.h stub.c $(CKCOM)/cksys.h $(CKHOST)/host.h
	rm -f stub.o
	$(CC) $(CFLAGS) $(CPRIOFLAGS) stub.c
	chmod g+rw stub.o


bit_vectors.o : typedefs.h pgm_typedefs.h bit_macros.c bit_vectors.c \
	$(CKCOM)/cksys.h $(CKHOST)/host.h
	rm -f bit_vectors.o
	$(CC) $(CFLAGS) bit_vectors.c
	chmod g+rw bit_vectors.o

ca.o: typedefs.h pgm_typedefs.h os_macros.c macros.c pgm_macros.c \
	bit_macros.c ca.c $(CKCOM)/cksys.h $(CKHOST)/host.h
	rm -f ca.o
	$(CC) $(CFLAGS) $(CPRIOFLAGS) ca.c
	chmod g+rw ca.o

graph.o : typedefs.h pgm_typedefs.h lattice.h state.h gpmacros.c os_macros.c\
	macros.c pgm_macros.c protos/callpat.p protos/lattice.p protos/state.p\
	graph.c $(CKCOM)/cksys.h $(CKHOST)/host.h
	rm -f graph.o
	$(CC) $(CFLAGS) graph.c
	chmod g+rw graph.o

set_state.o : typedefs.h pgm_typedefs.h lattice.h state.h gpmacros.c \
	os_macros.c macros.c pgm_macros.c protos/callpat.p protos/lattice.p \
	protos/state.p set_state.c $(CKCOM)/cksys.h $(CKHOST)/host.h
	rm -f set_state.o
	$(CC) $(CFLAGS) set_state.c
	chmod g+rw set_state.o

pgm_globals.o: typedefs.h pgm_typedefs.h pgm_globals.c $(CKCOM)/cksys.h \
	$(CKHOST)/host.h
	rm -f pgm_globals.o
	$(CC) $(CFLAGS) pgm_globals.c
	chmod g+rw pgm_globals.o

pgm.o : typedefs.h pgm_typedefs.h os_macros.c macros.c pgm_macros.c \
	bit_macros.c pgm.c $(CKCOM)/cksys.h $(CKHOST)/host.h
	rm -f pgm.o
	$(CC) $(CFLAGS) $(CPRIOFLAGS) -DOPS=$(OPSFILE) pgm.c
	chmod g+rw pgm.o

globals.o : typedefs.h globals.c $(CKCOM)/cksys.h $(CKHOST)/host.h
	rm -f globals.o
	$(CC) $(CFLAGS) globals.c
	chmod g+rw globals.o


entry.o : typedefs.h pgm_typedefs.h entry.h macros.c pgm_macros.c entry.c \
	gpmacros.c $(CKCOM)/cksys.h $(CKHOST)/host.h
	rm -f entry.o
	$(CC) $(CFLAGS) entry.c
	chmod g+rw entry.o

printterm.o : typedefs.h os_macros.c macros.c be_macros.c printterm.c \
	$(CKCOM)/cksys.h $(CKHOST)/host.h
	rm -f printterm.o
	$(CC) $(CFLAGS)  printterm.c
	chmod g+rw printterm.o

callpat.o : typedefs.h pgm_typedefs.h lattice.h macros.c pgm_macros.c \
	gpmacros.c callpat.c $(CKCOM)/cksys.h $(CKHOST)/host.h
	rm -f callpat.o
	$(CC) $(CFLAGS) callpat.c
	chmod g+rw callpat.o

directive.o : typedefs.h pgm_typedefs.h directive.h macros.c pgm_macros.c \
	gpmacros.c directive.c $(CKCOM)/cksys.h $(CKHOST)/host.h
	rm -f directive.o
	$(CC) $(CFLAGS) directive.c
	chmod g+rw directive.o

lattice.o : typedefs.h pgm_typedefs.h lattice.h lattice.c $(CKCOM)/cksys.h \
	$(CKHOST)/host.h
	rm -f lattice.o
	$(CC) $(CFLAGS) lattice.c
	chmod g+rw lattice.o

state.o : typedefs.h lattice.h state.h pgm_macros.c gpmacros.c macros.c \
	protos/lattice.p state.c $(CKCOM)/cksys.h $(CKHOST)/host.h
	rm -f state.o
	$(CC) $(CFLAGS) state.c
	chmod g+rw state.o

static.o : typedefs.h pgm_typedefs.h macros.c static.c $(CKCOM)/cksys.h \
	$(CKHOST)/host.h
	rm -f static.o
	$(CC) $(CFLAGS) static.c
	chmod g+rw static.o

det.o : typedefs.h pgm_typedefs.h lattice.h macros.c det.c $(CKCOM)/cksys.h \
	$(CKHOST)/host.h
	rm -f det.o
	$(CC) $(CFLAGS) det.c
	chmod g+rw det.o

mem.o : typedefs.h os_macros.c macros.c mem.c $(CKCOM)/cksys.h $(CKHOST)/host.h
	rm -f mem.o
	$(CC) $(CFLAGS)  mem.c
	chmod g+rw mem.o

 

