Links
- github: apenwarr/redo
- README
- Script params –
$1, $2, $3
$1
is the name of the target file.$2
is the basename of the target, minus the extension, if any.$3
is the name of a temporary file that will be renamed to the target filename atomically if your .do file returns a zero (success) exit code.
stdout
goes to$3
. So add aexec >&2
to the top of the.do
script to get rid of that "feature".default.o.do
means "run this script to generate a.o
file unless there's a more specificwhatever.o.do
script that applies."- Dependencies are tracked in a persistent
.redo
database. If a file doesn't need to be rebuilt, redo can calculate that just using its persistent.redo
database, without re-running the script. - You can declare a dependency while building the
target as seen in the sample
default.o.do
script. redo-ifchange
- "build each of my arguments. If any of them or their dependencies ever change, then I need to run the current script over again."
- To only rebuild targets that have changed, run
redo-ifchange target
.redo target
always rebuilds the target. - If a target didn't change, how do I prevent dependents from being rebuilt?
- Pipe content to
redo-stamp
.
- Pipe content to
- Can a single .do script generate multiple outputs?
- How do I set environment variables that affect the entire build?
- What if my .c file depends on a generated .h file?
- Dependency problems that only show up during parallel builds
- Reference
- The .redo directory problem
- Redo will likely always have some busted form of
finding the
.redo
directory (likely on my NFS~/
). Ref: -f option to support .do-files in different directory