;; -*- mode: Scheme; -*- (require-extension srfi-1 srfi-13 data-structures extras posix) (define-values (cflags libs) (letrec ((pkgs '("glib-2.0" "gobject-2.0" "gtk+-3.0" "webkitgtk-3.0")) (read-flags (lambda (prefix port) (read-token char-whitespace? port) (let ((item (read-token (complement char-whitespace?) port))) (if (string-null? item) '() (cons* prefix item (read-flags prefix port))))))) (values (call-with-input-pipe (string-join (cons "pkg-config --cflags" pkgs)) (cut read-flags "-C" <>)) (call-with-input-pipe (string-join (cons "pkg-config --libs" pkgs)) (cut read-flags "-L" <>))))) (compile -s -O2 -d1 "webkit.scm" ,@cflags ,@libs -j webkit -j webkit-js -j webkit-gtk) (cond-expand (enable-static (compile -c -O2 -d1 "webkit.scm" ,@cflags -unit webkit)) (else )) (compile -s -O2 -d0 "webkit.import.scm") (compile -s -O2 -d0 "webkit-js.import.scm") (compile -s -O2 -d0 "webkit-gtk.import.scm") (install-extension 'webkit `("webkit.so" ,@(cond-expand (enable-static '("webkit.o")) (else '())) "webkit.import.so" "webkit-js.import.so" "webkit-js-foreign.scm" "webkit-gtk.import.so" "webkit-gtk-foreign.scm") `((version "1.0.0") ,@(cond-expand (enable-static `((static "webkit.o") (static-options ,(string-join libs)))) (else '()))))