cl-fringe.lisp: Abstract out the startup stuff.
[fringe] / Makefile
index 82f588e..d08ed09 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -70,7 +70,7 @@ c-fringe: c-fringe.o
 ### Haskell.
 
 HC                      = ghc
-HFLAGS                  = -O2 -XFlexibleInstances
+HFLAGS                  = -O2
 CLEANFILES             += *.hi *.hc
 .SUFFIXES: .hs
 .hs.o:; $(HC) -c $(HFLAGS) -o $@ $<
@@ -94,13 +94,16 @@ icon-fringe: icon-fringe.icn
 ###--------------------------------------------------------------------------
 ### Common Lisp.
 
-CLEANFILES             += *.core
+CLEANFILES             += *.core *.fasl
+
+.SUFFIXES: .lisp .fasl
+.lisp.fasl:; sbcl --eval '(quit :unix-status (if (compile-file "$<") 0 1))'
 
 LANGS                  += cl
 SOURCES                        += cl-fringe.lisp
-cl-fringe: cl-fringe.lisp
-##     cl-launch -R -o $@ -f `pwd`/$^  -- slow to start
-       cl-launch -o $@ -f `pwd`/$^ +I -r launch -d $@.core
+cl-fringe: cl-fringe.fasl
+       cp $< $@.new && chmod +x $@.new && mv $@.new $@
+##     cl-launch -o $@ -f `pwd`/$^ +I -r launch -d $@.core
 
 ###--------------------------------------------------------------------------
 ### F#.
@@ -121,7 +124,7 @@ f\#-fringe: f\#-fringe.exe
 
 SCMC                    = csc
 SCMFLAGS                = -c -O2 
-.SUFFIXES: .scm .o
+.SUFFIXES: .scm
 .scm.o:; $(SCMC) $(SCMFLAGS) -o $@ $<
 
 LANGS                  += scheme
@@ -130,6 +133,21 @@ 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