all: C1 S2 S3 S4 S1



C1=gcc -O2

S1=../gsi/gsi -:m10000 -e "(define (pp x) (pretty-print x (current-output-port)))(define-macro (time x) (quasiquote (let* ((t1 (cpu-time)) (t2 ,x) (t3 (cpu-time))) (pp (list 'time= (\#\#- t3 t1))) t2)))"

S2=../gsc/gsc -:=.. -dynamic -prelude "(define (pp x) (pretty-print x (current-output-port)))(define-macro (time x) (quasiquote (let* ((t1 (cpu-time)) (t2 ,x) (t3 (cpu-time))) (pp (list 'time= (\#\#- t3 t1))) t2)))"
S2RUN=../gsi/gsi -:m10000

S3=../gsc/gsc -:=.. -dynamic -prelude "(define (pp x) (pretty-print x (current-output-port)))(define-macro (time x) (quasiquote (let* ((t1 (cpu-time)) (t2 ,x) (t3 (cpu-time))) (pp (list 'time= (\#\#- t3 t1))) t2)))(declare (not run-time-bindings))"
S3RUN=../gsi/gsi -:m10000

S4=../gsc/gsc -:=.. -dynamic -prelude "(define (pp x) (pretty-print x (current-output-port)))(define-macro (time x) (quasiquote (let* ((t1 (cpu-time)) (t2 ,x) (t3 (cpu-time))) (pp (list 'time= (\#\#- t3 t1))) t2)))(declare (standard-bindings) (block) (fixnum) (not safe))"
S4RUN=../gsi/gsi -:m10000



C1:
	@echo "("$@
	@make doC1
	@echo ")"

doC1: sumloopC1 ackC1 array1C1 stringC1 catC1 wcC1 tailC1 sum1C1
	@rm -f sumloop ack array1 string cat wc tail sum1
	@rm -f foo foo1 foo2

S1:
	@echo "("$@
	@make doS1
	@echo ")"

doS1: sumloopS1 ackS1 array1S1 stringS1 catS1 wcS1 tailS1 sum1S1
	@rm -f sumloopscm.o* ackscm.o* array1scm.o* stringscm.o* catscm.o* wcscm.o* tailscm.o* sum1scm.o*
	@rm -f sumloopscm.c ackscm.c array1scm.c stringscm.c catscm.c wcscm.c tailscm.c sum1scm.c
	@rm -f foo foo1 foo2

S2:
	@echo "("$@
	@make doS2
	@echo ")"

doS2: sumloopS2 ackS2 array1S2 stringS2 catS2 wcS2 tailS2 sum1S2
	@rm -f sumloopscm.o* ackscm.o* array1scm.o* stringscm.o* catscm.o* wcscm.o* tailscm.o* sum1scm.o*
	@rm -f sumloopscm.c ackscm.c array1scm.c stringscm.c catscm.c wcscm.c tailscm.c sum1scm.c
	@rm -f foo foo1 foo2

S3:
	@echo "("$@
	@make doS3
	@echo ")"

doS3: sumloopS3 ackS3 array1S3 stringS3 catS3 wcS3 tailS3 sum1S3
	@rm -f sumloopscm.o* ackscm.o* array1scm.o* stringscm.o* catscm.o* wcscm.o* tailscm.o* sum1scm.o*
	@rm -f sumloopscm.c ackscm.c array1scm.c stringscm.c catscm.c wcscm.c tailscm.c sum1scm.c
	@rm -f foo foo1 foo2

S4:
	@echo "("$@
	@make doS4
	@echo ")"

doS4: sumloopS4 ackS4 array1S4 stringS4 catS4 wcS4 tailS4 sum1S4
	@rm -f sumloopscm.o* ackscm.o* array1scm.o* stringscm.o* catscm.o* wcscm.o* tailscm.o* sum1scm.o*
	@rm -f sumloopscm.c ackscm.c array1scm.c stringscm.c catscm.c wcscm.c tailscm.c sum1scm.c
	@rm -f foo foo1 foo2



sumloopC1:
	@$(C1) sumloop.c -o sumloop
	@(time -p ./sumloop 10000000 > foo1) > foo2 2>&1
	@echo "("$@ "(time=" `sed -n /user\ /s///p foo2` ")" `cat foo1`")"

ackC1:
	@$(C1) ack.c -o ack
	@(time -p ./ack 3 8 > foo1) > foo2 2>&1
	@echo "("$@ "(time=" `sed -n /user\ /s///p foo2` ")" `cat foo1`")"

array1C1:
	@$(C1) array1.c -o array1
	@(time -p ./array1 > foo1) > foo2 2>&1
	@echo "("$@ "(time=" `sed -n /user\ /s///p foo2` ")" `cat foo1`")"

stringC1:
	@$(C1) string.c -o string
	@(time -p ./string 100000 > foo1) > foo2 2>&1
	@echo "("$@ "(time=" `sed -n /user\ /s///p foo2` ")" `cat foo1`")"

catC1:
	@$(C1) cat.c -o cat
	@(time -p ./cat < bib > foo) > foo2 2>&1
	@echo "("$@ "(time=" `sed -n /user\ /s///p foo2` "))"
	@rm -f foo

wcC1:
	@$(C1) wc.c -o wc
	@(time -p ./wc < bib > foo1) > foo2 2>&1
	@echo "("$@ "(time=" `sed -n /user\ /s///p foo2` ")" `cat foo1`")"

tailC1:
	@$(C1) tail.c -o tail
	@(time -p ./tail bib > foo) > foo2 2>&1
	@echo "("$@ "(time=" `sed -n /user\ /s///p foo2` "))"
	@rm -f foo

sum1C1:
	@$(C1) sum1.c -o sum1
	@(time -p ./sum1 < rn100 > foo1) > foo2 2>&1
	@echo "("$@ "(time=" `sed -n /user\ /s///p foo2` ")" `cat foo1`")"



sumloopS1:
	@echo "("$@ `$(S1) sumloopscm.scm`")"

ackS1:
	@echo "("$@ `$(S1) ackscm.scm`")"

array1S1:
	@echo "("$@ `$(S1) array1scm.scm`")"

stringS1:
	@echo "("$@ `$(S1) stringscm.scm`")"

catS1:
	@echo "("$@ `$(S1) catscm.scm`")"
	@rm -f foo

wcS1:
	@echo "("$@ `$(S1) wcscm.scm`")"

tailS1:
	@echo "("$@ `$(S1) tailscm.scm`")"
	@rm -f foo

sum1S1:
	@echo "("$@ `$(S1) sum1scm.scm`")"



sumloopS2:
	@$(S2) sumloopscm.scm
	@echo "("$@ `$(S2RUN) sumloopscm`")"

ackS2:
	@$(S2) ackscm.scm
	@echo "("$@ `$(S2RUN) ackscm`")"

array1S2:
	@$(S2) array1scm.scm
	@echo "("$@ `$(S2RUN) array1scm`")"

stringS2:
	@$(S2) stringscm.scm
	@echo "("$@ `$(S2RUN) stringscm`")"

catS2:
	@$(S2) catscm.scm
	@echo "("$@ `$(S2RUN) catscm`")"
	@rm -f foo

wcS2:
	@$(S2) wcscm.scm
	@echo "("$@ `$(S2RUN) wcscm`")"

tailS2:
	@$(S2) tailscm.scm
	@echo "("$@ `$(S2RUN) tailscm`")"
	@rm -f foo

sum1S2:
	@$(S2) sum1scm.scm
	@echo "("$@ `$(S2RUN) sum1scm`")"



sumloopS3:
	@$(S3) sumloopscm.scm
	@echo "("$@ `$(S3RUN) sumloopscm`")"

ackS3:
	@$(S3) ackscm.scm
	@echo "("$@ `$(S3RUN) ackscm`")"

array1S3:
	@$(S3) array1scm.scm
	@echo "("$@ `$(S3RUN) array1scm`")"

stringS3:
	@$(S3) stringscm.scm
	@echo "("$@ `$(S3RUN) stringscm`")"

catS3:
	@$(S3) catscm.scm
	@echo "("$@ `$(S3RUN) catscm`")"
	@rm -f foo

wcS3:
	@$(S3) wcscm.scm
	@echo "("$@ `$(S3RUN) wcscm`")"

tailS3:
	@$(S3) tailscm.scm
	@echo "("$@ `$(S3RUN) tailscm`")"
	@rm -f foo

sum1S3:
	@$(S3) sum1scm.scm
	@echo "("$@ `$(S3RUN) sum1scm`")"



sumloopS4:
	@$(S4) sumloopscm.scm
	@echo "("$@ `$(S4RUN) sumloopscm`")"

ackS4:
	@$(S4) ackscm.scm
	@echo "("$@ `$(S4RUN) ackscm`")"

array1S4:
	@$(S4) array1scm.scm
	@echo "("$@ `$(S4RUN) array1scm`")"

stringS4:
	@$(S4) stringscm.scm
	@echo "("$@ `$(S4RUN) stringscm`")"

catS4:
	@$(S4) catscm.scm
	@echo "("$@ `$(S4RUN) catscm`")"
	@rm -f foo

wcS4:
	@$(S4) wcscm.scm
	@echo "("$@ `$(S4RUN) wcscm`")"

tailS4:
	@$(S4) tailscm.scm
	@echo "("$@ `$(S4RUN) tailscm`")"
	@rm -f foo

sum1S4:
	@$(S4) sum1scm.scm
	@echo "("$@ `$(S4RUN) sum1scm`")"
