X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/sod/blobdiff_plain/b0e21f8370fb60321f178572e2b90dfc4e2eb5b6..e05aabbb81cddec46b3d9da802f632c3b20c67d1:/src/frontend.lisp diff --git a/src/frontend.lisp b/src/frontend.lisp index 1d09382..41f38cd 100644 --- a/src/frontend.lisp +++ b/src/frontend.lisp @@ -98,6 +98,7 @@ (defun main () (backtracep nil) (builtinsp nil) (stdoutp nil) + (track-deps-p nil) (args nil)) ;; Option definitions. @@ -145,6 +146,9 @@ (define-program :print nil)))) (error (error) (option-parse-error "~A" error)))))) + (#\M "track-dependencies" + "Write make(1) fragments recording dependencies." + (set track-deps-p)) (#\p "stdout" ("Write output files to standard output.") (set stdoutp)) @@ -190,7 +194,11 @@ (define-program :direction :output :if-exists :supersede :if-does-not-exist :create) - (output-module module reason stream)))) + (output-module module reason stream)) + + (when track-deps-p + (write-dependency-file module reason + output-path)))) ;; Error recovery. (continue ()