diff options
| author | Michael Forney <mforney@mforney.org> | 2016-10-29 13:28:03 -0700 |
|---|---|---|
| committer | Michael Forney <mforney@mforney.org> | 2016-10-30 13:44:58 -0700 |
| commit | 92751409f7e9c403cbfeb503cc494279c712c9ab (patch) | |
| tree | 3ed7108ac6f7115218bbaa3b8d444f3be81ccf7c /rules.ninja | |
| parent | dd45ede13ab186614e6db9d0c65c9b16858167f6 (diff) | |
Provide mechanism to track library dependencies
Now, ar/lib rules can list static libraries or other .d files. These (as well as
the target library) are written to a file called $lib.d. link/exe rules can list
these .d files, causing them to be flattened into an RSP file and appear on the
command line as @$rsp.
The rule to generate the dependency list files depends on the libraries they
contain, so they also act as a stamp file for the dependencies. This gives us
dependency management for free.
Diffstat (limited to 'rules.ninja')
| -rw-r--r-- | rules.ninja | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/rules.ninja b/rules.ninja index 45821074..6ab2b0da 100644 --- a/rules.ninja +++ b/rules.ninja @@ -17,6 +17,11 @@ rule link rule ar command = rm -f $out && $ar crs $out $in +rule lines + command = ln -f $rspfile $out + rspfile = $out.tmp + rspfile_content = $in_newline + rule nasm command = nasm $nasmflags -o $out $in |
