1 | ;;;; spock.setup - setup-script for SPOCK on CHICKEN -*- Scheme -*- |
---|
2 | |
---|
3 | |
---|
4 | (use utils jsmin make) |
---|
5 | |
---|
6 | |
---|
7 | (define (cat out . files) |
---|
8 | (print " cat " (string-intersperse files) " > " out) |
---|
9 | (with-output-to-file out |
---|
10 | (lambda () |
---|
11 | (for-each |
---|
12 | (lambda (f) (display (read-all f))) |
---|
13 | files)))) |
---|
14 | |
---|
15 | (define (jsmin from to) |
---|
16 | (with-output-to-file to |
---|
17 | (cut display (jsmin-file from)))) |
---|
18 | |
---|
19 | (define executable |
---|
20 | (cond-expand |
---|
21 | (windows "chicken-spock.exe") |
---|
22 | (else "chicken-spock"))) |
---|
23 | |
---|
24 | (make/proc (list (list "spock-compiler.so" |
---|
25 | '("spock-compiler.scm" |
---|
26 | "misc.scm" "expand.scm" "core.scm" "opt.scm" "xref.scm" |
---|
27 | "sections.scm" "spock/library.scm" |
---|
28 | "driver.scm" "codegen.scm") |
---|
29 | (lambda () |
---|
30 | (compile -sS spock-compiler.scm -O3 -d1 -J -o spock-compiler.so))) |
---|
31 | (list "spock.so" '("spock-module.scm" "spock-compiler.import.so") |
---|
32 | (lambda () |
---|
33 | (compile -sS spock-module.scm -O3 -d1 -J -o spock.so))) |
---|
34 | (list "spock.import.so" '("spock.so") |
---|
35 | (lambda () |
---|
36 | (compile -s -O3 -d0 spock.import.scm))) |
---|
37 | (list "spock-compiler.import.so" '("spock-compiler.so") |
---|
38 | (lambda () (compile -s -O3 -d0 spock-compiler.import.scm))) |
---|
39 | (list executable |
---|
40 | '("chicken-spock.scm" "top.scm" "spock.so" "spock-compiler.import.so") |
---|
41 | (lambda () |
---|
42 | (compile -S -O3 -d0 -feature standalone chicken-spock.scm -o |
---|
43 | ,executable))) |
---|
44 | (list "spock/spock-runtime.js" '("config.js" "runtime.js" "library.js") |
---|
45 | (lambda () |
---|
46 | (cat "spock/spock-runtime.js" "config.js" "runtime.js" "library.js"))) |
---|
47 | (list "spock/spock-runtime-debug.js" |
---|
48 | '("config.js" "runtime.js" "debug.js" "library-debug.js") |
---|
49 | (lambda () (cat "spock/spock-runtime-debug.js" |
---|
50 | "config.js" "runtime.js" "debug.js" |
---|
51 | "library-debug.js"))) |
---|
52 | (list "spock/spock-runtime-min.js" '("spock/spock-runtime.js") |
---|
53 | (lambda () |
---|
54 | (jsmin "spock/spock-runtime.js" "spock/spock-runtime-min.js"))) |
---|
55 | (list "spock/spock-runtime-debug-min.js" '("spock/spock-runtime-debug.js") |
---|
56 | (lambda () |
---|
57 | (jsmin "spock/spock-runtime-debug.js" "spock/spock-runtime-debug-min.js"))) |
---|
58 | (list "library.js" (list "spock/library.scm" executable) |
---|
59 | (lambda () |
---|
60 | (run (./chicken-spock -library-path spock -optimize -library -o library.js)))) |
---|
61 | (list "library-debug.js" (list "spock/library.scm" executable) |
---|
62 | (lambda () |
---|
63 | (run (./chicken-spock -library-path spock -optimize -debug -library |
---|
64 | -o library-debug.js))))) |
---|
65 | (cons executable |
---|
66 | '("spock.so" "spock.import.so" |
---|
67 | "spock-compiler.so" "spock-compiler.import.so" |
---|
68 | "spock/spock-runtime.js" "spock/spock-runtime-debug.js" |
---|
69 | "spock/spock-runtime-min.js" "spock/spock-runtime-debug-min.js"))) |
---|
70 | |
---|
71 | (install-extension |
---|
72 | 'spock |
---|
73 | '("spock.so" "spock" "spock.import.so" |
---|
74 | "spock-compiler.so" "spock-compiler.import.so") |
---|
75 | '((version 0.09))) |
---|
76 | |
---|
77 | (install-program |
---|
78 | 'chicken-spock |
---|
79 | (list executable) |
---|
80 | '((version 0.09))) |
---|