(cond-expand (fuse-force-install) ((or linux openbsd)) (else (parameterize ((current-output-port (current-error-port))) (newline) (print "fuse: This extension is only supported on Linux and OpenBSD.") (print "fuse: To force installation, provide `-feature fuse-force-install`.") (print "fuse: However, please note that this is almost guaranteed not to work.") (newline) (exit 78)))) (define compiler-flags (let ((f (with-input-from-pipe "pkg-config --libs --cflags fuse" read-line))) (if (eof-object? f) '(-lfuse -C -D_FILE_OFFSET_BITS=64) ; No pkg-config. (foldl (lambda (a s) (if (string-prefix? "-l" s) `(,s ,@a) `(-C ,s ,@a))) '() (string-split f))))) (compile -d2 -O0 ,@compiler-flags -sJ libfuse.scm) (compile -d2 -O0 ,@compiler-flags -cs -unit libfuse libfuse.scm) (compile -d2 -O0 ,@compiler-flags -sJ -uses libfuse fuse.scm libfuse.o) (compile -d2 -O0 -s libfuse.import.scm) (compile -d2 -O0 -s fuse.import.scm) (install-extension 'fuse '("fuse.so" "fuse.import.so" "libfuse.so" "libfuse.import.so" "libfuse.o") '((version "0.0.2")))