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

# ---------------------------------------------------------- 
#   (C)1993,1994 Institute for New Generation Computer Technology 
#       (Read COPYRIGHT for detailed information.) 
#   (C)1996, 1997 Japan Information Processing Development Center
#       (Read COPYRIGHT-JIPDEC for detailed information.)
# ----------------------------------------------------------

SLEEP = sleep 1
PARALLEL = 0
LN = ln -s
KLIC = ../compiler/klic -P$(PARALLEL) \
	-v -K../compiler/kl1cmp -D../compiler/klicdb \
	-X. -I../include -L../runtime -g
KLIC_T = ../compiler/klic -P$(PARALLEL) \
	-v -K../compiler/kl1cmp -T -D../compiler/klicdb \
	-X. -I../include -L../runtime -g
KLICSYS = ../compiler/klic ../compiler/kl1cmp ../compiler/kl1cmp-t  \
    ../compiler/klicdb \
	../include/klic/* ../runtime/libklic.a

.SUFFIXES: $(.SUFFIXES) .tst .res

TESTS = \
	nrev.tst nrev-t.tst qsort.tst qsort-t.tst \
	fact.tst fact-t.tst srev.tst srev-t.tst 

TESTPROGS = \
	nrev nrev-t qsort qsort-t \
	fact fact-t srev srev-t 

TESTSRCS = \
	nrev.kl1 nrev-t.kl1 qsort.kl1 qsort-t.kl1 \
	fact.kl1 fact-t.kl1 srev.kl1 srev-t.kl1

tests:	klicdb.init libklic.db $(TESTS)

klicdb.init:
	cp -p ../runtime/klic.db klicdb.init

libklic.db:
	cp -p ../runtime/libklic.db .

.res.tst:
	cmp $*.res $*.res.cmp

nrev.res: nrev
	./nrev >nrev.res
qsort.res: qsort
	./qsort >qsort.res
fact.res: fact
	./fact > fact.res
srev.res: srev
	./srev > srev.res

nrev:	nrev.kl1 $(KLICSYS)
	$(KLIC) -o nrev nrev.kl1; $(SLEEP)
qsort: qsort.kl1 $(KLICSYS)
	$(KLIC) -o qsort qsort.kl1; $(SLEEP)
fact: fact.kl1 $(KLICSYS)
	$(KLIC) -o fact fact.kl1; $(SLEEP)
srev: srev.kl1 $(KLICSYS)
	$(KLIC) -o srev srev.kl1; $(SLEEP)

nrev-t.res: nrev-t
	./nrev-t >nrev-t.res
qsort-t.res: qsort-t
	./qsort-t >qsort-t.res
fact-t.res: fact-t
	./fact-t > fact-t.res
srev-t.res: srev-t
	./srev-t > srev-t.res

nrev-t:	nrev-t.kl1 $(KLICSYS)
	$(KLIC_T) -o nrev-t nrev-t.kl1 ; $(SLEEP)
qsort-t: qsort-t.kl1 $(KLICSYS)
	$(KLIC_T) -o qsort-t qsort-t.kl1; $(SLEEP)
fact-t: fact-t.kl1 $(KLICSYS)
	$(KLIC_T) -o fact-t fact-t.kl1; $(SLEEP)
srev-t: srev-t.kl1 $(KLICSYS)
	$(KLIC_T) -o srev-t srev-t.kl1; $(SLEEP)

nrev-t.kl1: nrev.kl1
	$(LN) nrev.kl1 nrev-t.kl1
qsort-t.kl1: qsort.kl1
	$(LN) qsort.kl1 qsort-t.kl1
fact-t.kl1: fact.kl1
	$(LN) fact.kl1 fact-t.kl1
srev-t.kl1: srev.kl1
	$(LN) srev.kl1 srev-t.kl1

clean:
	/bin/rm -f *.c *.ext *.h *.o klic.db klicdb.init libklic.db \
		work* *~ core

distclean: clean
	/bin/rm -f $(TESTPROGS) server client *.res *-t.kl1

realclean: distclean
