Add Jmk2 build system, port lisp to it
diff --git a/src/lisp/Jmk2 b/src/lisp/Jmk2
index 17f1910..b82e084 100644
--- a/src/lisp/Jmk2
+++ b/src/lisp/Jmk2
@@ -1,6 +1,6 @@
# -*- mode:tcl -*-
-source "../../share/jmk/jmk.tcl"
+# source "../../share/jmk/jmk.tcl"
init lisp
@@ -9,7 +9,10 @@
option NO_READLINE 0
-type executable
+srcs main.c lisp.c compiler.c lib/std.c plat/linux.c istream.c gc.c \
+ call_list.s error.c
+
+set lisp_libpath "$::root/lib/lisp"
if {$options(NO_READLINE) == 0} {
cflags -lreadline
@@ -20,14 +23,18 @@
set lua vendor/luajit/src/host/minilua
rule $lua ${lua}.c {
- log CC $source
- cc $source -o $target -lm
+ log CC $::src
+ cc "$::src -o $::target -lm"
}
rule compiler.c "compiler.dasc $lua" {
- log DYNASM $first_source
- shell $::lua vendor/luajit/dynasm/dynasm.lua -o $target $first_source
+ log DYNASM $::first_src
+ shell "$::lua vendor/luajit/dynasm/dynasm.lua -o $::target $::first_src"
}
-sources main.c lisp.c compiler.c lib/std.c plat/linux.c istream.c gc.c \
- call_list.s error.c
+rule repl lisp {
+ log LISP repl
+ shell "LISP_LIBRARY_PATH=$::lisp_libpath ./lisp $::root/lib/lisp/repl/repl.lisp"
+}
+
+type executable