# $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)/RegexXMLSchema CNT = 3 ropts = +RTS -s -RTS prog = ./REtest prog2 = ./Lines prog3 = ./RElines prog4 = ./Words prog5 = ./REwords prog0 = ./Copy progs = $(prog) $(prog0) $(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) $(prog0) : $(prog) ln -f $(prog) $(prog0) # 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 = 18 test : $(prog) $(MAKE) genfiles tests="$(tests)" $(MAKE) copy tests="$(tests)" $(MAKE) lines tests="$(tests)" $(MAKE) relines tests="$(tests)" $(MAKE) words tests="$(tests)" $(MAKE) rewords 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 tree-*$$i.xml ; \ echo ; \ done copy : @for i in $(tests) ; \ do \ echo time $(prog0) $(ropts) $$i ; \ time $(prog0) $(ropts) $$i ; \ ls -l tree-*$$i.xml.copy ; \ echo ; \ done lines : @for i in $(tests) ; \ do \ echo time $(prog2) $(ropts) $$i ; \ time $(prog2) $(ropts) $$i ; \ ls -l tree-*$$i.xml.lines ; \ echo ; \ done relines : @for i in $(tests) ; \ do \ echo time $(prog3) $(ropts) $$i ; \ time $(prog3) $(ropts) $$i ; \ ls -l tree-*$$i.xml.relines ; \ echo ; \ done words : @for i in $(tests) ; \ do \ echo time $(prog4) $(ropts) $$i ; \ time $(prog4) $(ropts) $$i ; \ ls -l tree-*$$i.xml.words ; \ echo ; \ done rewords : @for i in $(tests) ; \ do \ echo time $(prog5) $$i ; \ time $(prog5) $(ropts) $$i ; \ ls -l tree-*$$i.xml.rewords ; \ echo ; \ done dist : [ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR) cp Makefile REtest.hs $(DIST_DIR) clean : rm -f $(progs) *.o *.hi *.xml *.xml.*