PKGFLAGS =
GHCFLAGS = -Wall -O2
GHC = ghc $(GHCFLAGS) $(PKGFLAGS)
CNT = 3
ropts = +RTS -s -RTS
prog = ./REtest
prog2 = ./Lines
prog3 = ./RElines
prog3a = ./SElines
prog4 = ./Words
prog5 = ./REwords
prog5a = ./SEwords
prog0 = ./Copy
progs = $(prog) $(prog0) $(prog2) $(prog3) $(prog3a) $(prog4) $(prog5) $(prog5a)
all : $(progs)
$(prog) : $(prog).hs
$(GHC) --make -o $@ $<
local :
$(GHC) --make -o $(prog) -fglasgow-exts $(prog).hs
$(prog2) : $(prog)
ln -f $(prog) $(prog2)
$(prog3) : $(prog)
ln -f $(prog) $(prog3)
$(prog3a) : $(prog)
ln -f $(prog) $(prog3a)
$(prog4) : $(prog)
ln -f $(prog) $(prog4)
$(prog5) : $(prog)
ln -f $(prog) $(prog5)
$(prog5a) : $(prog)
ln -f $(prog) $(prog5a)
$(prog0) : $(prog)
ln -f $(prog) $(prog0)
# generate and read documents containing text
# with 2^i characters
tests = 25
test : $(prog)
$(MAKE) genfiles tests="$(tests)"
$(MAKE) copy tests="$(tests)"
$(MAKE) lines tests="$(tests)"
$(MAKE) relines tests="$(tests)"
$(MAKE) selines tests="$(tests)"
$(MAKE) words tests="$(tests)"
$(MAKE) rewords tests="$(tests)"
$(MAKE) sewords tests="$(tests)"
perftest : $(prog)
$(MAKE) test tests="2 3 10 11 12 13 14 15 16 17 18 19 20"
genfiles :
@for i in $(tests) ; \
do \
echo time $(prog) $(ropts) $$i ; \
time $(prog) $(ropts) $$i ; \
ls -l lines-*$$i.txt ; \
echo ; \
done
copy :
@for i in $(tests) ; \
do \
echo time $(prog0) $(ropts) $$i ; \
time $(prog0) $(ropts) $$i ; \
ls -l lines-*$$i.txt.copy ; \
echo ; \
done
lines :
@for i in $(tests) ; \
do \
echo time $(prog2) $(ropts) $$i ; \
time $(prog2) $(ropts) $$i ; \
ls -l lines-*$$i.txt.lines ; \
echo ; \
done
relines :
@for i in $(tests) ; \
do \
echo time $(prog3) $(ropts) $$i ; \
time $(prog3) $(ropts) $$i ; \
ls -l lines-*$$i.txt.relines ; \
echo ; \
done
selines :
@for i in $(tests) ; \
do \
echo time $(prog3a) $(ropts) $$i ; \
time $(prog3a) $(ropts) $$i ; \
ls -l lines-*$$i.txt.selines ; \
echo ; \
done
words :
@for i in $(tests) ; \
do \
echo time $(prog4) $(ropts) $$i ; \
time $(prog4) $(ropts) $$i ; \
ls -l lines-*$$i.txt.words ; \
echo ; \
done
rewords :
@for i in $(tests) ; \
do \
echo time $(prog5) $$i ; \
time $(prog5) $(ropts) $$i ; \
ls -l lines-*$$i.txt.rewords ; \
echo ; \
done
sewords :
@for i in $(tests) ; \
do \
echo time $(prog5a) $$i ; \
time $(prog5a) $(ropts) $$i ; \
ls -l lines-*$$i.txt.sewords ; \
echo ; \
done
distclean : clean
clean :
rm -f $(progs) *.o *.hi *.txt *.txt.*
.PHONY : clean distclean test perftest all local words rewords sewords lines relines selines copy genfiles