X-Git-Url: https://git.distorted.org.uk/~mdw/fringe/blobdiff_plain/2bd37ef118cb1e41cb0e9e2332a9eb69ac2f2df4..d888ccd559a84c180936e9adadae1f655f15356e:/Makefile diff --git a/Makefile b/Makefile index aac2437..b79bf6a 100644 --- a/Makefile +++ b/Makefile @@ -13,6 +13,7 @@ .SUFFIXES: .o LANGS = +SOURCES = TARGETS = $(patsubst %,%-fringe,$(LANGS)) CLEANFILES = $(TARGETS) @@ -24,26 +25,34 @@ clean::; rm -f $(CLEANFILES) CLEANFILES += test.* test:: all - @win=0 lose=0; \ - for lang in $(LANGS); do \ - echo >&3 "*** $$lang"; \ - printf "Test $$lang..."; \ - if ./test ./$${lang}-fringe 2>&3; then \ - win=$$(expr $$win + 1); \ - printf " ok\n"; \ - else \ - lose=$$(expr $$lose + 1); \ - printf " FAILED\n"; \ - fi; \ - done 3>test.log; \ - if [ $$lose -eq 0 ]; then \ - echo "All $$win test(s) OK"; \ - else \ - echo "FAILED $$lose test(s)!"; \ - exit 1; \ + @win=0 lose=0; \ + for lang in $(LANGS); do \ + echo >&3 "*** $$lang"; \ + printf "Test $$lang..."; \ + time=`command time -o/dev/stdout -f "%U user; %S system; %E" \ + ./test ./$${lang}-fringe 2>&3`; \ + if [ $$? -eq 0 ]; then \ + win=$$(expr $$win + 1); \ + printf " ok ($$time)\n"; \ + else \ + lose=$$(expr $$lose + 1); \ + printf " FAILED\n"; \ + fi; \ + done 3>test.log; \ + if [ $$lose -eq 0 ]; then \ + echo "All $$win test(s) OK"; \ + else \ + echo "FAILED $$lose test(s)!"; \ + exit 1; \ fi ###-------------------------------------------------------------------------- +### Reporting. + +report:: + wc -l $(SOURCES) | sort -n + +###-------------------------------------------------------------------------- ### C. CC = gcc @@ -53,6 +62,7 @@ CLEANFILES += *.o .c.o:; $(CC) -c $(CFLAGS) -o $@ $< LANGS += c +SOURCES += c-fringe.c c-fringe: c-fringe.o $(CC) -o $@ $^ @@ -66,6 +76,7 @@ CLEANFILES += *.hi *.hc .hs.o:; $(HC) -c $(HFLAGS) -o $@ $< LANGS += haskell +SOURCES += haskell-fringe.hs haskell-fringe: haskell-fringe.o $(HC) -o $@ $^ @@ -76,15 +87,20 @@ ICONT = icont IFLAGS = -u -fa LANGS += icon +SOURCES += icon-fringe.icn icon-fringe: icon-fringe.icn $(ICONT) -o $@ $^ ###-------------------------------------------------------------------------- ### Common Lisp. +CLEANFILES += *.core + LANGS += cl +SOURCES += cl-fringe.lisp cl-fringe: cl-fringe.lisp - cl-launch -R -o $@ -f `pwd`/$^ +## cl-launch -R -o $@ -f `pwd`/$^ -- slow to start + cl-launch -o $@ -f `pwd`/$^ +I -r launch -d $@.core ###-------------------------------------------------------------------------- ### F#. @@ -95,6 +111,7 @@ CLEANFILES += *.exe .fs.exe:; fsc -o $@ $< LANGS += f\# +SOURCES += f\#-fringe.fs f\#-fringe: f\#-fringe.exe chmod +x $< cp $< $@ @@ -104,18 +121,35 @@ f\#-fringe: f\#-fringe.exe SCMC = csc SCMFLAGS = -c -O2 -.SUFFIXES: .scm .o +.SUFFIXES: .scm .scm.o:; $(SCMC) $(SCMFLAGS) -o $@ $< LANGS += scheme +SOURCES += scheme-fringe.scm scheme-fringe: scheme-fringe.o $(SCMC) -o $@ $^ ###-------------------------------------------------------------------------- +### Go. + +GOOBJ = 8 +GOC = $(GOOBJ)g +GOLINK = $(GOOBJ)l +CLEANFILES += *.$(GOOBJ) +.SUFFIXES: .$(GOOBJ) .go +.go.$(GOOBJ):; $(GOC) $(GOFLAGS) $< + +LANGS += go +SOURCES += go-fringe.go +go-fringe: go-fringe.$(GOOBJ) + $(GOLINK) -o $@ $^ + +###-------------------------------------------------------------------------- ### Smalltalk. LANGS += smalltalk TARGETS += smalltalk-fringe.im +SOURCES += smalltalk-fringe.st smalltalk-fringe.im: smalltalk-fringe.st echo "ObjectMemory snapshot: '$@.new'" | gst $^ - mv $@.new $@