(define regex-version (if (version>=? (chicken-version) "4.6.2") 'total-irregex 'irregex-through-regex)) (define version (call-with-input-file "VERSION" read-line)) ;; these macros are stolen from hato (define-syntax compile-module (er-macro-transformer (lambda (expr rename compare) (let* ((module (cadr expr)) (mod-str (symbol->string module)) (mod-src (string-append mod-str ".scm")) (mod-import (string-append mod-str ".import.scm")) (mod-so (string-append mod-str ".so")) (mod-import-so (string-append mod-str ".import.so")) (_begin (rename 'begin)) (_make (rename 'make)) (_compile (rename 'compile)) (_install-extension (rename 'install-extension))) `(,_begin (,_make ((,mod-so (,mod-src) (,_begin (,_compile -s -O2 -D ,regex-version -j ,module ,mod-src) (,_compile -s -O2 ,mod-import))))) (,_install-extension ',module '(,mod-so ,mod-import-so) '((version ,version)))))))) (define-syntax compile-executable (er-macro-transformer (lambda (expr rename compare) (let* ((executable (cadr expr)) (exec-str (symbol->string (caddr expr))) (exec-src (string-append (symbol->string (cadr expr)) ".scm")) (_begin (rename 'begin)) (_make (rename 'make)) (_compile (rename 'compile)) (_install-program (rename 'install-program))) `(,_begin (,_make ((,exec-str (,exec-src) (,_begin (,_compile -D ,regex-version -o ,exec-str -O2 -d2 ,exec-src))))) (,_install-program ',executable '(,exec-str) '((version ,version)))))))) (compile-module vandusen) (compile-module vandusen-db) (compile-module vandusen-doc) (compile-module vandusen-eval) (compile-module vandusen-remote) (compile-module vandusen-random-talk) (compile-module vandusen-poll) (compile-module vandusen-control) (compile-module vandusen-pager) (compile-module vandusen-chicken) (compile-module vandusen-scores) (compile-executable vandusen-cmd vandusen)