diff --git a/Makefile b/Makefile index 628d03e..089023a 100644 --- a/Makefile +++ b/Makefile @@ -49,9 +49,15 @@ test-r7rs: mkdir -p ${R7RSTMP} mkdir -p ${R7RSTMP}/libs mkdir -p ${R7RSTMP}/libs/foo - echo "(import (scheme base) (foo bar)) (baz)" > ${R7RSTMP}/main.scm + mkdir -p ${R7RSTMP}/libs/hello + echo "(import (scheme base) (foo bar)) (baz) (hello-word) (over-9000)" > ${R7RSTMP}/main.scm echo "(define baz (lambda () (display \"Test successfull\") (newline)))" > ${R7RSTMP}/libs/foo/bar.scm - echo "(define-library (foo bar) (import (scheme base) (scheme write)) (export baz) (include \"bar.scm\"))" > ${R7RSTMP}/libs/foo/bar.sld + echo "(define-library (foo bar) (import (scheme base) (scheme write) (hello world)) (export baz) (include \"bar.scm\"))" > ${R7RSTMP}/libs/foo/bar.sld + echo "(define hello-world (lambda () (+ 1 1)))" > ${R7RSTMP}/libs/hello/world.scm + echo "(define-library (hello world) (import (scheme base) (scheme write)) (export hello-world) (include \"world.scm\"))" > ${R7RSTMP}/libs/hello/world.sld + mkdir -p ${R7RSTMP}/libs/srfi + echo "(define over-9000 (lambda () (+ 1 1)))" > ${R7RSTMP}/libs/srfi/9001.scm + echo "(define-library (srfi 9001) (import (scheme base) (scheme write)) (export over-9000) (include \"9001.scm\"))" > ${R7RSTMP}/libs/srfi/9001.sld cd ${R7RSTMP} && COMPILE_R7RS=${SCHEME} compile-r7rs -I ./libs -o main main.scm -cd ${R7RSTMP} && timeout 60 ./main > compile-r7rs-test-result.txt 2>&1 @grep "Test successfull" ${R7RSTMP}/compile-r7rs-test-result.txt || (echo "Test failed, output: " && cat ${R7RSTMP}/compile-r7rs-test-result.txt && exit 1) diff --git a/libs/data.sld b/libs/data.sld index ab781cd..93e78df 100644 --- a/libs/data.sld +++ b/libs/data.sld @@ -105,6 +105,15 @@ ,input-file))))) (cyclone (type . compiler) + #;(library-command . ,(lambda (library-file prepend-directories append-directories r6rs?) + (apply string-append + `("cyclone" + " " + ,(util-getenv "COMPILE_R7RS_CYCLONE") + " " + ,@(map (lambda (item) (string-append "-I " item " ")) prepend-directories) + ,@(map (lambda (item) (string-append "-A " item " ")) append-directories) + ,library-file)))) (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) (apply string-append `("cyclone" @@ -138,6 +147,10 @@ (type . compiler) (library-command . ,(lambda (library-file prepend-directories append-directories r6rs?) (apply string-append `("gsc -obj " + ,@(map (lambda (item) + (string-append item "/ ")) + (append prepend-directories + append-directories)) ,(search-library-file (append append-directories prepend-directories) library-file)))))