# Settings
#
- IMPLS = bash c clojure coffee cs forth fsharp go haskell java js lua make mal \
- ocaml matlab miniMAL nim perl php ps python r racket ruby rust \
- scala vb
-IMPLS = bash c clojure coffee cpp cs forth go haskell java julia js \
- lua make mal ocaml matlab miniMAL nim perl php ps python \
- r racket ruby rust scala swift vb
++IMPLS = bash c clojure coffee cpp cs forth fsharp go haskell java \
++ julia js lua make mal ocaml matlab miniMAL nim perl php ps \
++ python r racket ruby rust scala swift vb
step0 = step0_repl
step1 = step1_read_print
c_STEP_TO_PROG = c/$($(1))
clojure_STEP_TO_PROG = clojure/src/$($(1)).clj
coffee_STEP_TO_PROG = coffee/$($(1)).coffee
+ cpp_STEP_TO_PROG = cpp/$($(1))
cs_STEP_TO_PROG = cs/$($(1)).exe
forth_STEP_TO_PROG = forth/$($(1)).fs
+fsharp_STEP_TO_PROG = fsharp/$($(1)).exe
go_STEP_TO_PROG = go/$($(1))
java_STEP_TO_PROG = java/src/main/java/mal/$($(1)).java
haskell_STEP_TO_PROG = haskell/$($(1))
c_RUNSTEP = ../$(2) $(3)
clojure_RUNSTEP = lein with-profile +$(1) trampoline run $(3)
coffee_RUNSTEP = coffee ../$(2) $(3)
+ cpp_RUNSTEP = ../$(2) $(3)
cs_RUNSTEP = mono ../$(2) --raw $(3)
forth_RUNSTEP = gforth ../$(2) $(3)
+fsharp_RUNSTEP = mono ../$(2) --raw $(3)
go_RUNSTEP = ../$(2) $(3)
haskell_RUNSTEP = ../$(2) $(3)
- java_RUNSTEP = mvn -quiet exec:java -Dexec.mainClass="mal.$($(1))" -Dexec.args="--raw$(if $(3), $(3),)"
+ java_RUNSTEP = mvn -quiet exec:java -Dexec.mainClass="mal.$($(1))" $(if $(3), -Dexec.args="$(3)",)
+ julia_RUNSTEP = ../$(2) $(3)
js_RUNSTEP = node ../$(2) $(3)
- lua_RUNSTEP = ../$(2) --raw $(3)
+ lua_RUNSTEP = ../$(2) $(3)
make_RUNSTEP = make -f ../$(2) $(3)
mal_RUNSTEP = $(call $(MAL_IMPL)_RUNSTEP,$(1),$(call $(MAL_IMPL)_STEP_TO_PROG,stepA),../$(2),") #"
ocaml_RUNSTEP = ../$(2) $(3)