apenwarr-redo/Documentation/redo-always.md
Avery Pennarun 94b34ea031 Generate redo version codes in Documentation/*.1 automatically.
We have to go through some pretty scary gyrations to extract this
information from git, but it can be done.  This works with both tarballs
generated by 'git archive', or with your local git repo.

(Requested by 'David' on the mailing list.)
2011-01-17 23:01:40 -08:00

53 lines
1.5 KiB
Markdown

% redo-always(1) Redo %VERSION%
% Avery Pennarun <apenwarr@gmail.com>
% %DATE%
# NAME
redo-always - mark the current target as always needing to be rebuilt
# SYNOPSIS
redo-always
# DESCRIPTION
Normally redo-always is run from a .do file that has been
executed by `redo`(1). See `redo`(1) for more details.
redo-always takes no parameters. It simply adds an
'impossible' dependency to the current target, which
ensures that the target will always be rebuilt if anyone
runs `redo-ifchange targetname`.
Because of the way redo works, `redo-ifchange targetname`
will only rebuild `targetname` once per session. So if
multiple targets depend on *targetname* and *targetname*
has called redo-always, only the first target will cause it
to be rebuilt. If the build cycle completes and a new one
begins, it will be rebuilt exactly one more time.
Normally, any target that depends (directly or indirectly)
on a sub-target that has called redo-always will also
always need to rebuild, since one of its dependencies will
always be out of date. To avoid this problem, redo-always is
usually used along with `redo-stamp`(1).
# REDO
Part of the `redo`(1) suite.
# CREDITS
The original concept for `redo` was created by D. J.
Bernstein and documented on his web site
(http://cr.yp.to/redo.html). This independent implementation
was created by Avery Pennarun and you can find its source
code at http://github.com/apenwarr/redo.
# SEE ALSO
`redo`(1), `redo-ifcreate`(1), `redo-ifchange`(1), `redo-stamp`(1)