CC = cc
CKLIB = $(ROOT)/ck/shared/$(MACHINE)
CKCOM = $(ROOT)/ck/shared/common
GENLIB = $(ROOT)/rolog_compiler/gen
CFLAGS = -c -O -ce -I. -I$(CKLIB) -I$(CKCOM) -I$(GENLIB)
OPSFILE = "\"$ROOT)/rolog/common/ops\""
MAC = $(ROOT)/ck/shared/$(MACHINE)/host.h
LIB = $(ROOT)/compiler/common

OBJFILE	= $(CKLIB)/ckobj.o $(CKLIB)/$(MEMFILE) $(CKLIB)/$(QSFILE) \
	cmp_be.o cmp_ropm.o globals.o names_utl.o \
	cmp_join.o cmp_unify.o cmp_pack.o garbage.o  cmp_qm.o\
	printterm.o  mem.o interp.o load.o cmp_seq.o \
	$(GENLIB)/gen_globals.o pgen.o

sim :	$(OBJFILE)
	rm -f sim
	$(CC) -O -o sim $(OBJFILE)
	chmod gu=rwx,o=rx sim



interp.o :  $(LIB)/typedefs.h $(LIB)/gen.h $(LIB)/os_macros.c $(LIB)/macros.c \
	$(LIB)/ropm_macros.c $(LIB)/be_macros.c $(LIB)/interp.c $(LIB)/ropm.h \
	$(LIB)/seq_macros.c $(GENLIB)/instruct.h $(LIB)/registers.c $(MAC)
	rm -f interp.o
	$(CC) $(CFLAGS) $(CPRIOFLAGS) $(CPRIOTYPEFLAG) $(LIB)/interp.c
	chmod g+rw interp.o


globals.o : $(LIB)/typedefs.h $(LIB)/gen.h $(LIB)/globals.c
	rm -f globals.o
	$(CC) $(CFLAGS) $(LIB)/globals.c
	chmod g+rw globals.o


cmp_qm.o: $(LIB)/typedefs.h $(LIB)/os_macros.c $(LIB)/macros.c \
	$(LIB)/msgmacros.c $(LIB)/seq_macros.c $(LIB)/gen.h $(LIB)/cmp_qm.c \
	$(MAC)
	rm -f cmp_qm.o
	$(CC) $(CFLAGS) $(CPRIOFLAGS) $(CPRIOTYPEFLAG) -DOPS=$(OPSFILE) $(LIB)/cmp_qm.c
	chmod g+rw cmp_qm.o

cmp_be.o: $(LIB)/typedefs.h $(LIB)/os_macros.c $(LIB)/macros.c \
	$(LIB)/be_macros.c $(LIB)/cmp_be.c $(MAC)
	rm -f cmp_be.o
	$(CC) $(CFLAGS) $(LIB)/cmp_be.c
	chmod g+rw cmp_be.o

cmp_ropm.o : $(LIB)/typedefs.h $(LIB)/ropm.h $(LIB)/gen.h $(LIB)/os_macros.c \
	$(LIB)/macros.c $(LIB)/ropm_macros.c $(MAC) $(LIB)/cmp_ropm.c
	rm -f cmp_ropm.o
	$(CC) $(CFLAGS) $(CPRIOFLAGS) $(CPRIOTYPEFLAG) $(LIB)/cmp_ropm.c
	chmod g+rw cmp_ropm.o


garbage.o : $(LIB)/typedefs.h $(LIB)/ropm.h $(LIB)/macros.c $(LIB)/os_macros.c\
	$(LIB)/garbage.c $(MAC)
	rm -f garbage.o
	$(CC) $(CFLAGS) $(CPRIOFLAGS) $(CPRIOTYPEFLAG) $(LIB)/garbage.c
	chmod g+rw garbage.o


names_utl.o: $(LIB)/typedefs.h $(LIB)/gen.h $(LIB)/os_macros.c $(LIB)/macros.c\
	$(LIB)/names_utl.c $(MAC)
	rm -f names_utl.o
	$(CC) $(CFLAGS) $(LIB)/names_utl.c
	chmod g+rw names_utl.o


cmp_join.o : $(LIB)/typedefs.h  $(LIB)/os_macros.c $(LIB)/macros.c \
	$(LIB)/cmp_join.c $(MAC)
	rm -f cmp_join.o
	$(CC) $(CFLAGS)  $(LIB)/cmp_join.c
	chmod g+rw cmp_join.o

cmp_pack.o : $(LIB)/typedefs.h $(LIB)/os_macros.c $(LIB)/macros.c \
	$(LIB)/be_macros.c $(LIB)/msgmacros.c $(LIB)/cmp_pack.c $(MAC)
	rm -f cmp_pack.o
	$(CC) $(CFLAGS)  $(LIB)/cmp_pack.c
	chmod g+rw cmp_pack.o

cmp_unify.o : $(LIB)/typedefs.h $(LIB)/os_macros.c $(LIB)/macros.c \
	$(LIB)/be_macros.c $(LIB)/seq_macros.c $(LIB)/cmp_unify.c $(MAC)
	rm -f cmp_unify.o
	$(CC) $(CFLAGS)  $(LIB)/cmp_unify.c
	chmod g+rw cmp_unify.o

cmp_seq.o : $(LIB)/typedefs.h $(LIB)/os_macros.c $(LIB)/macros.c \
	$(LIB)/be_macros.c $(LIB)/seq_macros.c $(LIB)/cmp_seq.c $(MAC)
	rm -f cmp_seq.o
	$(CC) $(CFLAGS)  $(LIB)/cmp_seq.c
	chmod g+rw cmp_seq.o


printterm.o : $(LIB)/typedefs.h $(LIB)/os_macros.c $(LIB)/macros.c \
	$(LIB)/be_macros.c $(LIB)/seq_macros.c 	$(LIB)/printterm.c $(MAC)
	rm -f printterm.o
	$(CC) $(CFLAGS)  $(LIB)/printterm.c
	chmod g+rw printterm.o


mem.o : $(LIB)/typedefs.h $(LIB)/os_macros.c $(LIB)/macros.c $(LIB)/mem.c \
	$(MAC)
	rm -f mem.o
	$(CC) $(CFLAGS)  $(LIB)/mem.c
	chmod g+rw mem.o


load.o : $(LIB)/gen.h $(LIB)/load.c
	rm -f load.o
	$(CC) $(CFLAGS)  $(LIB)/load.c
	chmod g+rw load.o


pgen.o : $(LIB)/typedefs.h $(LIB)/os_macros.c $(LIB)/macros.c \
	$(LIB)/priority_macros.c $(LIB)/pgen.c $(MAC)
	rm -f pgen.o
	$(CC) $(CFLAGS) $(CPRIOFLAGS) $(CPRIOTYPEFLAG) $(LIB)/pgen.c
	chmod g+rw pgen.o
