apenwarr-redo/docs/redo-targets.md
Avery Pennarun f6fe00db5c Directory reorg: move code into redo/, generate binaries in bin/.
It's time to start preparing for a version of redo that doesn't work
unless we build it first (because it will rely on C modules, and
eventually be rewritten in C altogether).

To get rolling, remove the old-style symlinks to the main programs, and
rename those programs from redo-*.py to redo/cmd_*.py.  We'll also move
all library functions into the redo/ dir, which is a more python-style
naming convention.

Previously, install.do was generating wrappers for installing in
/usr/bin, which extend sys.path and then import+run the right file.
This made "installed" redo work quite differently from running redo
inside its source tree.  Instead, let's always generate the wrappers in
bin/, and not make anything executable except those wrappers.

Since we're generating wrappers anyway, let's actually auto-detect the
right version of python for the running system; distros can't seem to
agree on what to call their python2 binaries (sigh). We'll fill in the
right #! shebang lines.  Since we're doing that, we can stop using
/usr/bin/env, which will a) make things slightly faster, and b) let us
use "python -S", which tells python not to load a bunch of extra crap
we're not using, thus improving startup times.

Annoyingly, we now have to build redo using minimal/do, then run the
tests using bin/redo.  To make this less annoying, we add a toplevel
./do script that knows the right steps, and a Makefile (whee!) for
people who are used to typing 'make' and 'make test' and 'make clean'.
2018-12-04 02:53:40 -05:00

1.7 KiB

NAME

redo-targets - print the list of all known redo targets

SYNOPSIS

redo-targets

DESCRIPTION

redo-targets prints a list of all redo target files that still exist.

Files that no longer exist might not be targets anymore; you'll have to redo them for them to end up back in this list. (For example, if you built a file and then removed the file and its .do file, you wouldn't want it to show up in this list.)

If a .do script does not produce an output file (eg. all.do, clean.do), it also does not show up in this list.

The output of redo-targets might be useful in a semi-automated clean.do target; you could delete all the known targets, thus forcing them to be rebuilt next time.

Each filename is on a separate line. The filenames are not guaranteed to be in any particular order.

All filenames are printed relative the current directory. The list is not filtered in any way; it contains all the target filenames from the entire project. Remember that the redo database may span more than just your project, so you might need to filter the list before using it. (A useful heuristic might be to remove any line starting with '../' since it often refers to a target you don't care about.)

If you want a list of only out-of-date targets, use redo-ood(1). If you want a list of sources (dependencies that aren't targets), use redo-sources(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-ood(1), redo-sources(1)