;; -*- Hen -*- (define (dynld-name fn) (make-pathname #f fn ##sys#load-dynamic-extension)) (define (blas-try-compile header ldflags) (and (try-compile (string-append "#include " header "\n" "int main() { cblas_ddot(0, NULL, 0, NULL, 0); return 0; }\n") ldflags: ldflags) ldflags )) (define-syntax blas-test (syntax-rules () ((_ (flags ...)) (condition-case (blas-try-compile flags ...) (t () #f))))) (define ld-options (or (blas-test ("" "-lblas -lm")) (blas-test ("" "-lcblas -lm")) (blas-test ("" "-lgsl -lgslcblas -lm")) (blas-test ("" "-lcblas -lm")) (blas-test ("" "-lcblas -lm")) (blas-test ("" "-framework Accelerate")) (error "unable to figure out location of BLAS library"))) (compile -O3 -d0 -s blas.scm -j blas -L "\"" ,ld-options "\"" ) (compile -O2 -d0 -s blas.import.scm) (install-extension 'blas `(,(dynld-name "blas") ,(dynld-name "blas.import") ) '((version 4.1) ))