#----------------------------------------------------------
#                        Copyright (C) 1999
#               Hiroshi Nakashima, Kazuhiko Ohno
#              Namiyo Sugiyama, Kiyokazu Yokoishi
#        and Department of Information and Computer Sciences 
#                 Toyohashi University of Technology
#----------------------------------------------------------- 

#-----------------------------------------------------------
#	 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 ganalyzer.o converter.o  builtin.o builtin_deps.o \
          loop.o   builtin_type.o analyze_type.o analyze_type_ex.o\
          vt.o hb.o lt.o dt.o ea.o adg.o vdg.o makepb.o \
          typeset.o depset.o dependency.o  schedule.o\
          typeset_ex.o direct_call.o gen_code.o \
          native_goal.o file_op.o global_op.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 ganalyzer.c converter.c  builtin.c builtin_deps.c \
          loop.c builtin_type.c analyze_type.c  analyze_type_ex.c \
          vt.c hb.c lt.c dt.c ea.c adg.c vdg.c makepb.c \
          typeset.c typeset_ex.c depset.c \
          dependency.c  schedule.c\
          direct_call.c gen_code.c\
          native_goal.c file_op.c global_op.c \
          print.c uty.c list.c functor.c parse_uty.c 

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

MIDKSRC = converter.kl1 loop.kl1\
          analyzer.kl1 ganalyzer.kl1 builtin.kl1 builtin_deps.kl1 \
          builtin_type.kl1 analyze_type.kl1 analyze_type_ex.kl1 \
          vt.kl1 hb.kl1 lt.kl1 dt.kl1 ea.kl1 adg.kl1 vdg.kl1 makepb.kl1 \
          typeset.kl1 typeset_ex.kl1 depset.kl1 global_op.kl1 \
          dependency.kl1 schedule.kl1  native_goal.kl1 file_op.kl1\
          direct_call.kl1 gen_code.kl1 parse_uty.kl1 print.kl1

SRC     = converter.src loop.src \
          analyzer.src ganalyzer.src builtin.src builtin_deps.src \
          builtin_type.src analyze_type.src analyze_type_ex.src \
          vt.src hb.src lt.src dt.src ea.src adg.src vdg.src makepb.src \
          typeset.src typeset_ex.src depset.src global_op.src\
          dependency.src schedule.src  native_goal.src file_op.src\
          direct_call.src gen_code.src parse_uty.src print.src

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

src:    $(MIDKSRC)

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

tool : all $(OLDEXE) $(EXE) $(NEWEXE)

#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 .

.c.o:
	$(KLIC) -c -v $<
.kl1.c:
	$(KLIC) -C -v $<
.src.kl1:
	$(CPP) $<

file_op.o:file_op.c
	$(KLIC) -c -v $?
file_op.c:file_op.kl1
	$(KLIC) -C -v $?
file_op.kl1:file_op.src
	$(CPP)  $? > $@
global_op.o:global_op.c
	$(KLIC) -c -v $?
global_op.c:global_op.kl1
	$(KLIC) -C -v $?
global_op.kl1:global_op.src
	$(CPP)  $? > $@
analyzer.o:analyzer.c
	$(KLIC) -c -v $?
analyzer.c:analyzer.kl1
	$(KLIC) -C -v $?
analyzer.kl1:analyzer.src
	$(CPP)  $? > $@
ganalyzer.o:ganalyzer.c
	$(KLIC) -c -v $?
ganalyzer.c:ganalyzer.kl1
	$(KLIC) -C -v $?
ganalyzer.kl1:ganalyzer.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)  $? > $@
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)  $? > $@
builtin.o:builtin.c
	$(KLIC) -c -v $?
builtin.c:builtin.kl1
	$(KLIC) -C -v $?
builtin.kl1:builtin.src
	$(CPP)  $? > $@
builtin_deps.o:builtin_deps.c
	$(KLIC) -c -v $?
builtin_deps.c:builtin_deps.kl1
	$(KLIC) -C -v $?
builtin_deps.kl1:builtin_deps.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)  $? > $@
analyze_type_ex.o:analyze_type_ex.c
	$(KLIC) -c -v $?
analyze_type_ex.c:analyze_type_ex.kl1
	$(KLIC) -C -v $?
analyze_type_ex.kl1:analyze_type_ex.src
	$(CPP)  $? > $@
vt.o:vt.c
	$(KLIC) -c -v $?
vt.c:vt.kl1
	$(KLIC) -C -v $?
vt.kl1:vt.src
	$(CPP)  $? > $@
hb.o:hb.c
	$(KLIC) -c -v $?
hb.c:hb.kl1
	$(KLIC) -C -v $?
hb.kl1:hb.src
	$(CPP)  $? > $@
lt.o:lt.c
	$(KLIC) -c -v $?
lt.c:lt.kl1
	$(KLIC) -C -v $?
lt.kl1:lt.src
	$(CPP)  $? > $@
dt.o:dt.c
	$(KLIC) -c -v $?
dt.c:dt.kl1
	$(KLIC) -C -v $?
dt.kl1:dt.src
	$(CPP)  $? > $@
ea.o:ea.c
	$(KLIC) -c -v $?
ea.c:ea.kl1
	$(KLIC) -C -v $?
ea.kl1:ea.src
	$(CPP)  $? > $@
adg.o:adg.c
	$(KLIC) -c -v $?
adg.c:adg.kl1
	$(KLIC) -C -v $?
adg.kl1:adg.src
	$(CPP)  $? > $@
vdg.o:vdg.c
	$(KLIC) -c -v $?
vdg.c:vdg.kl1
	$(KLIC) -C -v $?
vdg.kl1:vdg.src
	$(CPP)  $? > $@
makepb.o:makepb.c
	$(KLIC) -c -v $?
makepb.c:makepb.kl1
	$(KLIC) -C -v $?
makepb.kl1:makepb.src
	$(CPP)  $? > $@
typeset.o:typeset.c
	$(KLIC) -c -v $?
typeset.c:typeset.kl1
	$(KLIC) -C -v $?
typeset.kl1:typeset.src
	$(CPP)  $? > $@
typeset_ex.o:typeset_ex.c
	$(KLIC) -c -v $?
typeset_ex.c:typeset_ex.kl1
	$(KLIC) -C -v $?
typeset_ex.kl1:typeset_ex.src
	$(CPP)  $? > $@
depset.o:depset.c
	$(KLIC) -c -v $?
depset.c:depset.kl1
	$(KLIC) -C -v $?
depset.kl1:depset.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)  $? > $@
native_goal.o:native_goal.c
	$(KLIC) -c -v $?
native_goal.c:native_goal.kl1
	$(KLIC) -C -v $?
native_goal.kl1:native_goal.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)  $? > $@
print.o:print.c
	$(KLIC) -c -v $?
print.c:print.kl1
	$(KLIC) -C -v $?
print.kl1:print.src
	$(CPP)  $? > $@
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 \
        $(OLDMIDKSRC) $(MIDKSRC) $(NEWMIDKSRC) *~ core

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

realclean: distclean

kclean:
	$(RM) $(OLDMIDKSRC) $(NEWMIDKSRC) $(MIDKSRC)
