diff --git a/doc/chibi.scrbl b/doc/chibi.scrbl index 9baf174e..10733eb0 100755 --- a/doc/chibi.scrbl +++ b/doc/chibi.scrbl @@ -1613,6 +1613,11 @@ can specify any option, for example: (license gpl)))) } +\itemlist[ +\item{\scheme{--foreign-depends} - specify foreign libraries the library +depends on (comma-delimited) (for example ffi,sqlite3 for -lffi -lsqlite3)} +] + Top-level snow options are represented as a flat alist. Options specific to a command are nested under \scheme{(command (name ...))}, with most options here being for \scheme{package}. Here unless diff --git a/lib/chibi/snow/commands.scm b/lib/chibi/snow/commands.scm index eae77d94..9411e18c 100644 --- a/lib/chibi/snow/commands.scm +++ b/lib/chibi/snow/commands.scm @@ -129,7 +129,8 @@ declarations ...) (let* ((dir (library-path-base file name)) (lib-file (path-relative file dir)) - (lib-dir (path-directory lib-file))) + (lib-dir (path-directory lib-file)) + (foreign-depends (conf-get-list cfg 'foreign-depends))) (define (resolve file) (let ((dest-path (if (equal? lib-dir ".") file @@ -158,7 +159,8 @@ (warn "couldn't find ffi stub or c source" base) '())))) (let lp ((ls declarations) - (info `(,@(cond + (info `((foreign-depends ,@foreign-depends) + ,@(cond ((conf-get cfg '(command package author)) => (lambda (x) (list (list 'author x)))) (else '())) diff --git a/tools/snow-chibi.scm b/tools/snow-chibi.scm index ddd14021..f0e09ff8 100755 --- a/tools/snow-chibi.scm +++ b/tools/snow-chibi.scm @@ -90,6 +90,7 @@ (chibi-path filename "path to chibi-scheme executable") (cc string "path to c compiler") (cflags string "flags for c compiler") + (foreign-depends (list string) "foreign libraries library depends on") (use-curl? boolean ("use-curl") "use curl for file uploads") (sexp? boolean ("sexp") "output information in sexp format") ))