### Icon.
ICONT = icont
-IFLAGS = -u -fa
+IFLAGS = -u -s -fa
LANGS += icon
SOURCES += icon-fringe.icn
icon-fringe: icon-fringe.icn
- $(call v_echo,ICONT)$(ICONT) -o $@ $^
+ $(call v_echo,ICONT)$(ICONT) $(IFLAGS) -o $@ $^
###--------------------------------------------------------------------------
### Common Lisp.
.SUFFIXES: .lisp .fasl
.lisp.fasl:
- $(call v_echo,CL)sbcl --eval \
- '(quit :unix-status (if (compile-file "$<") 0 1))'
+ $(call v_echo,CL)sbcl --noinform --eval \
+ '(quit :unix-status (if (compile-file "$<" :verbose nil :print nil) 0 1))'
LANGS += cl
SOURCES += cl-fringe.lisp
###--------------------------------------------------------------------------
### F#.
-FSC = fsc
+FSC = fsharpc
+FSCFLAGS =
CLEANFILES += *.exe
.SUFFIXES: .fs .exe
-.fs.exe:; $(call v_echo,FSC)$(FSC) -o $@ $<
+.fs.exe:; $(call v_echo,FSC)$(FSC) --nologo $(FSCFLAGS) -o $@ $<
LANGS += f\#
SOURCES += f\#-fringe.fs
### Scheme.
SCMC = csc
-SCMFLAGS = -c -O2
+SCMFLAGS = -c -O2
.SUFFIXES: .scm
.scm.o:; $(call v_echo,SCMC)$(SCMC) $(SCMFLAGS) -o $@ $<
###--------------------------------------------------------------------------
### Go.
-GOOBJ = 8
-GOC = $(GOOBJ)g
-GOLINK = $(GOOBJ)l
-CLEANFILES += *.$(GOOBJ)
-.SUFFIXES: .$(GOOBJ) .go
-.go.$(GOOBJ):; $(call v_echo,GOC)$(GOC) $(GOFLAGS) $<
-
+GOBUILD = go build
LANGS += go
SOURCES += go-fringe.go
-go-fringe: go-fringe.$(GOOBJ)
- $(call v_echo,GOLD)$(GOLINK) -o $@ $^
+go-fringe: go-fringe.go
+ $(call v_echo,GO)$(GOBUILD) -o $@ $^
###--------------------------------------------------------------------------
### Smalltalk.
} >$@.new
$(V_HIDE)chmod +x $@.new && mv $@.new $@
+###--------------------------------------------------------------------------
+### Forth.
+
+LANGS += forth
+TARGETS += forth-fringe
+SOURCES += forth-fringe.fth
+forth-fringe: forth-fringe.fth
+ $(call v_echo,FORTHI)gforthmi $@ $<
+
+###--------------------------------------------------------------------------
+### Erlang.
+
+ERLC = erlc
+CLEANFILES += *.beam erl_crash.dump
+.SUFFIXES: .erl .beam
+.erl.beam:; $(call v_echo,ERLC)$(ERLC) $(ERLCFLAGS) $<
+
+LANGS += erlang
+TARGETS += erlang-fringe.beam
+SOURCES += erlang-fringe.erl
+erlang-fringe:
+ $(call v_echo,GENSH){ echo '#! /bin/sh'; \
+ echo 'exec erl -pa . -noshell -run erlang-fringe main -extra "$$@"'; \
+ } >$@.new
+ $(V_HIDE)chmod +x $@.new && mv $@.new $@
+
+###--------------------------------------------------------------------------
+### Algol 68.
+
+ALGOL68 = /usr/local/bin/a68g
+
+LANGS += algol68
+TARGETS += algol68-fringe
+SOURCES += algol68-fringe.a68
+
+algol68-fringe: algol68-fringe.a68
+ $(call v_echo,GENSH){ echo '#! $(ALGOL68) --script'; \
+ cat $<; \
+ } >$@.new
+ $(V_HIDE)chmod +x $@.new && mv $@.new $@
+
+###--------------------------------------------------------------------------
+### Dylan.
+
+D2C = d2c
+CLEANFILES += dylan-*.c *.mak
+
+LANGS += dylan
+TARGETS += dylan-fringe
+SOURCES += dylan-fringe.dylan dylan-fringe-exports.dylan
+SOURCES += dylan-fringe.lid
+
+dylan-fringe: dylan-fringe.lid dylan-fringe.dylan dylan-fringe-exports.dylan
+ $(call v_echo,D2C)d2c -g $<
+
###----- That's all, folks --------------------------------------------------
all:: $(TARGETS)