X-Git-Url: https://git.distorted.org.uk/~mdw/fringe/blobdiff_plain/a72b6978928e45212ef174643d4408f3f7cbfe51..23416a991adb0a708812ab87e9554f7e7fcc3374:/Makefile diff --git a/Makefile b/Makefile index 86e5616..d08ed09 100644 --- a/Makefile +++ b/Makefile @@ -13,6 +13,7 @@ .SUFFIXES: .o LANGS = +SOURCES = TARGETS = $(patsubst %,%-fringe,$(LANGS)) CLEANFILES = $(TARGETS) @@ -46,6 +47,12 @@ test:: all fi ###-------------------------------------------------------------------------- +### Reporting. + +report:: + wc -l $(SOURCES) | sort -n + +###-------------------------------------------------------------------------- ### C. CC = gcc @@ -55,6 +62,7 @@ CLEANFILES += *.o .c.o:; $(CC) -c $(CFLAGS) -o $@ $< LANGS += c +SOURCES += c-fringe.c c-fringe: c-fringe.o $(CC) -o $@ $^ @@ -62,12 +70,13 @@ c-fringe: c-fringe.o ### Haskell. HC = ghc -HFLAGS = -O2 -XFlexibleInstances +HFLAGS = -O2 CLEANFILES += *.hi *.hc .SUFFIXES: .hs .hs.o:; $(HC) -c $(HFLAGS) -o $@ $< LANGS += haskell +SOURCES += haskell-fringe.hs haskell-fringe: haskell-fringe.o $(HC) -o $@ $^ @@ -78,18 +87,23 @@ ICONT = icont IFLAGS = -u -fa LANGS += icon +SOURCES += icon-fringe.icn icon-fringe: icon-fringe.icn $(ICONT) -o $@ $^ ###-------------------------------------------------------------------------- ### Common Lisp. -CLEANFILES += *.core +CLEANFILES += *.core *.fasl + +.SUFFIXES: .lisp .fasl +.lisp.fasl:; sbcl --eval '(quit :unix-status (if (compile-file "$<") 0 1))' LANGS += cl -cl-fringe: cl-fringe.lisp -## cl-launch -R -o $@ -f `pwd`/$^ -- slow to start - cl-launch -o $@ -f `pwd`/$^ +I -r launch -d $@.core +SOURCES += cl-fringe.lisp +cl-fringe: cl-fringe.fasl + cp $< $@.new && chmod +x $@.new && mv $@.new $@ +## cl-launch -o $@ -f `pwd`/$^ +I -r launch -d $@.core ###-------------------------------------------------------------------------- ### F#. @@ -100,6 +114,7 @@ CLEANFILES += *.exe .fs.exe:; fsc -o $@ $< LANGS += f\# +SOURCES += f\#-fringe.fs f\#-fringe: f\#-fringe.exe chmod +x $< cp $< $@ @@ -109,18 +124,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 $@