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

1.5 KiB

% 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)