;; -*- scheme -*- (use posix) (define madvise-test (read-all "feature-tests/madvise.c")) (define posix-fadvise-test (read-all "feature-tests/madvise.c")) (define sendfile-bsd-test (read-all "feature-tests/sendfile-bsd.c")) (define sendfile-macos-test (read-all "feature-tests/sendfile-macos.c")) (define sendfile-sun-test (read-all "feature-tests/sendfile-sun.c")) (define sendfile-linux-test (read-all "feature-tests/sendfile-linux.c")) (define mmap-test (read-all "feature-tests/mmap.c")) (define madvise? (try-compile madvise-test compile-only: #f)) (define posix-fadvise? (try-compile posix-fadvise-test compile-only: #f)) (define mmap? (try-compile mmap-test compile-only: #f)) (define sendfile? (cond-expand (linux (try-compile sendfile-linux-test compile-only: #f)) ((or netbsd openbsd freebsd) (try-compile sendfile-bsd-test compile-only: #f)) (macosx (try-compile sendfile-macos-test compile-only: #f)) (sun (try-compile sendfile-sun-test compile-only: #f)) (else #f))) ;; Compatibility with older chickens (if (version>=? "4.6" (chicken-version)) (copy-file (make-pathname "backward-compatibility" "copy-port.scm") (make-pathname (current-directory) "backward-compatibility.scm")) (with-output-to-file "backward-compatibility.scm" (cut display ""))) (let ((features '())) (when madvise? (set! features (cons '-D (cons 'madvise features)))) (when posix-fadvise? (set! features (cons '-D (cons 'posix-fadvise features)))) (when mmap? (set! features (cons '-D (cons 'mmap features)))) (when sendfile? (set! features (cons '-D (cons 'sendfile features)))) (compile -s -O2 -d0 ,@features sendfile.scm -j sendfile) (compile -s -O2 -d0 sendfile.import.scm) (compile -c -O2 -d0 ,@features sendfile.scm -unit sendfile -o sendfile-static.o) (install-extension 'sendfile '("sendfile.so" "sendfile.import.so" "sendfile-static.o") '((version "1.8.3") (static "sendfile-static.o") (documentation "sendfile.html"))))