;;;; spock.setup - setup-script for SPOCK on CHICKEN -*- Scheme -*- (use utils jsmin make) (define (cat out . files) (print " cat " (string-intersperse files) " > " out) (with-output-to-file out (lambda () (for-each (lambda (f) (display (read-all f))) files)))) (define (jsmin from to) (with-output-to-file to (cut display (jsmin-file from)))) (define executable (cond-expand (windows "chicken-spock.exe") (else "chicken-spock"))) (make/proc (list (list "spock-compiler.so" '("spock-compiler.scm" "misc.scm" "expand.scm" "core.scm" "opt.scm" "xref.scm" "sections.scm" "spock/library.scm" "bind.scm" "driver.scm" "codegen.scm") (lambda () (compile -sS spock-compiler.scm -O3 -d1 -J -o spock-compiler.so))) (list "spock.so" '("spock-module.scm" "spock-compiler.import.so") (lambda () (compile -sS spock-module.scm -O3 -d1 -J -o spock.so))) (list "spock.import.so" '("spock.so") (lambda () (compile -s -O3 -d0 spock.import.scm))) (list "spock-compiler.import.so" '("spock-compiler.so") (lambda () (compile -s -O3 -d0 spock-compiler.import.scm))) (list executable '("chicken-spock.scm" "top.scm" "spock.so" "spock-compiler.import.so") (lambda () (compile -S -O3 -d0 -feature standalone chicken-spock.scm -o ,executable))) (list "spock/spock-runtime.js" '("config.js" "runtime.js" "library.js") (lambda () (cat "spock/spock-runtime.js" "config.js" "runtime.js" "library.js"))) (list "spock/spock-runtime-debug.js" '("config.js" "runtime.js" "debug.js" "library-debug.js") (lambda () (cat "spock/spock-runtime-debug.js" "config.js" "runtime.js" "debug.js" "library-debug.js"))) (list "spock/spock-runtime-min.js" '("spock/spock-runtime.js") (lambda () (jsmin "spock/spock-runtime.js" "spock/spock-runtime-min.js"))) (list "spock/spock-runtime-debug-min.js" '("spock/spock-runtime-debug.js") (lambda () (jsmin "spock/spock-runtime-debug.js" "spock/spock-runtime-debug-min.js"))) (list "library.js" (list "spock/library.scm" executable) (lambda () (run (./chicken-spock -library-path spock -optimize -library -o library.js)))) (list "library-debug.js" (list "spock/library.scm" executable) (lambda () (run (./chicken-spock -library-path spock -optimize -debug -library -o library-debug.js))))) (cons executable '("spock.so" "spock.import.so" "spock-compiler.so" "spock-compiler.import.so" "spock/spock-runtime.js" "spock/spock-runtime-debug.js" "spock/spock-runtime-min.js" "spock/spock-runtime-debug-min.js"))) (install-extension 'spock '("spock.so" "spock" "spock.import.so" "spock-compiler.so" "spock-compiler.import.so") '((version 0.092))) (install-program 'chicken-spock (list executable) '((version 0.092)))