(use hahn setup-helper-mod) (define version "0.2") (define modules '(libxml2)) (define emit-types? (version>=? (chicken-version) "4.12.0")) (define (module-file module extension) (string-append (symbol->string module) extension)) (define libxml2-flags-list '("-I/usr/local/include/libxml2/ -X hahn -lxml2")) (define (compile-module module #!optional (extra-flags-list '())) (newline) (printf "Compiling Module: ~A~N~%" module) (print "For BSD based OSs please ensure CSC_OPTIONS=\"-C -I/usr/local/include/ " "-L /usr/local/lib\"") (newline) (compile -J -v -s -O3 -d1 ,@extra-flags-list ,@(if emit-types? `(-emit-type-file ,(module-file module ".types")) '()) ,(module-file module ".scm")) (compile -v -s -O3 -d0 ,(module-file module ".import.scm") ,@extra-flags-list) (newline)) (newline) (compile-module 'libxml2 libxml2-flags-list) (newline) (define products (append-map (lambda (module) (cons* (module-file module ".so") (module-file module ".import.so") (if emit-types? (list (module-file module ".types")) '()))) modules)) (install-extension 'libxml2 products `((version ,version)))