# $Id: Makefile,v 1.9 2006/11/11 15:36:03 hxml Exp $ HXT_HOME = ../../.. PKGFLAGS = GHCFLAGS = -Wall -O2 GHC = ghc $(GHCFLAGS) $(PKGFLAGS) DIST = $(HXT_HOME)/dist/examples/arrows DIST_DIR = $(DIST)/performance CNT = 3 ropts = +RTS -s -RTS prog = ./GenDoc prog2 = ./ReadDoc prog3 = ./PruneRight prog4 = ./PruneLeft prog5 = ./MemTest progs = $(prog) $(prog2) $(prog3) $(prog4) $(prog5) all : $(progs) $(prog) : $(prog).hs $(GHC) --make -o $@ $< local : $(GHC) --make -o $(prog) -fglasgow-exts -ignore-package hxt -i../../../src $(prog).hs $(prog2) : $(prog) ln -f $(prog) $(prog2) $(prog3) : $(prog) ln -f $(prog) $(prog3) $(prog4) : $(prog) ln -f $(prog) $(prog4) $(prog5) : $(prog) ln -f $(prog) $(prog5) # generate and read documents containing a binary tree # with 2^i leaf nodes containing the numbers 1 to 2^i # for i up to at least 22 (8M XML elements) output works fine # for i up to 19 (1M XML elements) input works without swapping # with i=20 swapping starts, but the program it still terminates # the size of the XML file for i=20 is about 36Mb # these tests have run on a box with 1Gb memory tests = 2 3 10 11 12 test : $(prog) $(MAKE) genfiles tests="$(tests)" $(MAKE) readfiles tests="$(tests)" $(MAKE) pruneright tests="$(tests)" $(MAKE) pruneleft 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) $$i ; \ ls -l tree-*$$i.xml ; \ echo ; \ done readfiles : @for i in $(tests) ; \ do \ echo time $(prog2) $(ropts) $$i ; \ time $(prog2) $$i ; \ echo ; \ done pruneright : @for i in $(tests) ; \ do \ echo time $(prog3) $(ropts) $$i ; \ time $(prog3) $$i ; \ echo ; \ done pruneleft : @for i in $(tests) ; \ do \ echo time $(prog4) $(ropts) $$i ; \ time $(prog4) $$i ; \ echo ; \ done memtest : @for i in $(tests) ; \ do \ echo time $(prog5) $$i ; \ time $(prog5) $(ropts) $$i ; \ echo ; \ done dist : [ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR) cp Makefile GenDoc.hs $(DIST_DIR) clean : rm -f $(progs) *.o *.hi *.xml