#-----------------------------------------------------------
#	 Copyright (C) 1996-1997 Kazuhiko Ohno, Masahiko Ikawa,
#	 and Computer Architecture Laboratory, Depertment of
#	 Information Science, Kyoto University.
#-----------------------------------------------------------
# ----------------------------------------------------------
#   (C) 1994, 1995 Institute for New Generation Computer Technology
#       (Read COPYRIGHT for detailed information.)
# ----------------------------------------------------------

CPP = CPP /usr/ccs/lib/cpp
RM = /bin/rm -f

PARALLEL = 0

#KLIC = ../../compiler/klic -P$(PARALLEL) $(KLICOPT) \
#	-R -I../../include -X. -D../../compiler/klicdb -v \
#    -K../kl1cmp -L../../runtime

KLICDIR = /project/KL1/klic-3.002
KLIC = $(KLICDIR)/bin/klic -P$(PARALLEL) $(KLICOPT) \
	-R -I$(KLICDIR)/include -X. -D$(KLICDIR)/lib/klic/klicdb -v \
    -K$(KLICDIR)/lib/klic/kl1cmp -L$(KLICDIR)/runtime



EXE     = analyzer

OBJ     = analyzer.o converter.o    \
          loop.o    \
          unify_head_body.o  \
          determine_type.o type_init.o analyze_type.o   \
          dependency.o  schedule.o\
          direct_call.o gen_code.o\
          type.o type_ex.o builtin_type.o \
          mode.o    \
          print.o uty.o list.o functor.o parse_uty.o 

EOBJ    = main.o    \
          kl1cmp.o  obj.o  util.o write.o extern.o macro.o cmacro.o msg.o

CSRC    = main.c    \
          kl1cmp.c  obj.c  util.c write.c extern.c macro.c cmacro.c msg.c\
          analyzer.c converter.c    \
          loop.c    \
          unify_head_body.c  \
          determine_type.c type_init.c analyze_type.c   \
          dependency.c  schedule.c\
          direct_call.c gen_code.c\
          type.c type_ex.c builtin_type.c \
          mode.c    \
          print.c uty.c list.c functor.c parse_uty.c 

KSRC    = print.kl1 uty.kl1 list.kl1 functor.kl1

MIDKSRC = converter.kl1 \
          analyzer.kl1 \
          determine_type.kl1  mode.kl1\
          loop.kl1    \
          type_init.kl1 analyze_type.kl1 \
          type.kl1 type_ex.kl1 builtin_type.kl1      \
          unify_head_body.kl1 dependency.kl1 schedule.kl1   \
          direct_call.kl1 gen_code.kl1 parse_uty.kl1

SRC     = converter.src \
          analyzer.src \
          determine_type.src  mode.src\
          loop.src  \
          type_init.src analyze_type.src \
          type.src type_ex.src builtin_type.src      \
          unify_head_body.src dependency.src schedule.src   \
          direct_call.src gen_code.src parse_uty.src


.SUFFIXES: $(SUFFIXES) .kl1 .ext .src .c .o

src:    $(MIDKSRC)

all:	klicdb.init libklic.db  $(KSRC) $(MIDKSRC)

tool : all $(EXE)

#make_ksrc : $(MIDKSRC)
#	cp $(MIDKSRC) $(KSRC) ../


$(EXE): $(EOBJ) $(OBJ)
	$(KLIC) -o $(EXE) $(OBJ) $(EOBJ) 


#HOSTKLICDIR = /project/KL1/klic-solaris

#HOSTKLIC = $(HOSTKLICDIR)/compiler/klic -v -K$(HOSTKLICDIR)/compiler/kl1cmp \
#    -D$(HOSTKLICDIR)/compiler/klicdb \
#    -X. -I$(HOSTKLICDIR)/include -L$(HOSTKLICDIR)/runtime -g

klicdb.init:
	cp -p $(KLICDIR)/runtime/klic.db klicdb.init

libklic.db:
	cp -p $(KLICDIR)/runtime/libklic.db .


analyzer.o:analyzer.c
	$(KLIC) -c -v $?
analyzer.c:analyzer.kl1
	$(KLIC) -C -v $?
analyzer.kl1:analyzer.src
	$(CPP)  $? > $@
converter.o:converter.c
	$(KLIC) -c -v $?
converter.c:converter.kl1
	$(KLIC) -C -v $?
converter.kl1:converter.src
	$(CPP)  $? > $@
loop.o:loop.c
	$(KLIC) -c -v $?
loop.c:loop.kl1
	$(KLIC) -C -v $?
loop.kl1:loop.src
	$(CPP)  $? > $@
unify_head_body.o:unify_head_body.c
	$(KLIC) -c -v $?
unify_head_body.c:unify_head_body.kl1
	$(KLIC) -C -v $?
unify_head_body.kl1:unify_head_body.src
	$(CPP)  $? > $@
type_init.o:type_init.c
	$(KLIC) -c -v $?
type_init.c:type_init.kl1
	$(KLIC) -C -v $?
type_init.kl1:type_init.src
	$(CPP)  $? > $@
determine_type.o:determine_type.c
	$(KLIC) -c -v $?
determine_type.c:determine_type.kl1
	$(KLIC) -C -v $?
determine_type.kl1:determine_type.src
	$(CPP)  $? > $@
analyze_type.o:analyze_type.c
	$(KLIC) -c -v $?
analyze_type.c:analyze_type.kl1
	$(KLIC) -C -v $?
analyze_type.kl1:analyze_type.src
	$(CPP)  $? > $@
dependency.o:dependency.c
	$(KLIC) -c -v $?
dependency.c:dependency.kl1
	$(KLIC) -C -v $?
dependency.kl1:dependency.src
	$(CPP)  $? > $@
schedule.o:schedule.c
	$(KLIC) -c -v $?
schedule.c:schedule.kl1
	$(KLIC) -C -v $?
schedule.kl1:schedule.src
	$(CPP)  $? > $@
direct_call.o:direct_call.c
	$(KLIC) -c -v $?
direct_call.c:direct_call.kl1
	$(KLIC) -C -v $?
direct_call.kl1:direct_call.src
	$(CPP)  $? > $@
gen_code.o:gen_code.c
	$(KLIC) -c -v $?
gen_code.c:gen_code.kl1
	$(KLIC) -C -v $?
gen_code.kl1:gen_code.src
	$(CPP)  $? > $@
type.o:type.c
	$(KLIC) -c -v $?
type.c:type.kl1
	$(KLIC) -C -v $?
type.kl1:type.src
	$(CPP)  $? > $@
type_ex.o:type_ex.c
	$(KLIC) -c -v $?
type_ex.c:type_ex.kl1
	$(KLIC) -C -v $?
type_ex.kl1:type_ex.src
	$(CPP)  $? > $@
builtin_type.o:builtin_type.c
	$(KLIC) -c -v $?
builtin_type.c:builtin_type.kl1
	$(KLIC) -C -v $?
builtin_type.kl1:builtin_type.src
	$(CPP)  $? > $@
mode.o:mode.c
	$(KLIC) -c -v $?
mode.c:mode.kl1
	$(KLIC) -C -v $?
mode.kl1:mode.src
	$(CPP)  $? > $@
print.o:print.c
	$(KLIC) -c -v $?
print.c:print.kl1
	$(KLIC) -C -v $?
uty.o:uty.c
	$(KLIC) -c -v $?
uty.c:uty.kl1
	$(KLIC) -C -v $?
list.o:list.c
	$(KLIC) -c -v $?
list.c:list.kl1
	$(KLIC) -C -v $?
functor.o:functor.c
	$(KLIC) -c -v $?
functor.c:functor.kl1
	$(KLIC) -C -v $?
parse_uty.o:parse_uty.c
	$(KLIC) -c -v $?
parse_uty.c:parse_uty.kl1
	$(KLIC) -C -v $?
parse_uty.kl1:parse_uty.src
	$(CPP)  $? > $@



main.o:main.c
	$(KLIC) -c -v $?
main.c:main.kl1
	$(KLIC) -C -v $?
kl1cmp.o:kl1cmp.c
	$(KLIC) -c -v $?
kl1cmp.c:kl1cmp.kl1
	$(KLIC) -C -v $?
write.o:write.c
	$(KLIC) -c -v $?
write.c:write.kl1
	$(KLIC) -C -v $?
util.o:util.c
	$(KLIC) -c -v $?
util.c:util.kl1
	$(KLIC) -C -v $?
obj.o:obj.c
	$(KLIC) -c -v $?
obj.c:obj.kl1
	$(KLIC) -C -v $?
extern.o:extern.c
	$(KLIC) -c -v $?
extern.c:extern.kl1
	$(KLIC) -C -v $?
macro.o:macro.c
	$(KLIC) -c -v $?
macro.c:macro.kl1
	$(KLIC) -C -v $?
cmacro.o:cmacro.c
	$(KLIC) -c -v $?
cmacro.c:cmacro.kl1
	$(KLIC) -C -v $?
msg.o:msg.c
	$(KLIC) -c -v $?
msg.c:msg.kl1
	$(KLIC) -C -v $?
	






#$(EXE): $(CSRC)
#	$(KLIC) -o $(EXE) $(CSRC)

#.src.c:.src
#	$(CPP) $< > $*.kl1
#	$(KLIC) -C -v $*.kl1
#	$(RM) $*.kl1
#.src.ext:.src
#	$(CPP) $< > $*.kl1
#	$(KLIC) -C -v $*.kl1
#.kl1.c:
#	$(KLIC) -C -v $<
#.kl1.ext:
#	$(KLIC) -C -v $<
#.c.o:.c
#	$(KLIC) -c -v $*.c


clean:
	$(RM) *.c *.ext atom.h funct.h *.o klic.db klicdb.init libklic.db \
        $(MIDKSRC) *~ core

distclean: clean
	$(RM) $(EXE) *.out

realclean: distclean

kclean:
	$(RM) $(MIDKSRC)









