Make apenwarr/redo installable on windows and work with uv tool install
Find a file
Avery Pennarun 1966a0fac7 If using --log or -j > 1, disable stdin.
Parallelism and redo-log cause lots of confusion for any rules that try
to ask the user for questions, so disable it altogether.

Arguably, we should just disable stdin all the time, but maybe it's
still occasionally useful (even though you have to pass --no-log to get
it back).
2018-12-02 22:57:04 -05:00
contrib/bash_completion.d MacOS: "-e filename/." returns true even for non-directories. 2011-03-05 19:03:30 -08:00
Documentation If using --log or -j > 1, disable stdin. 2018-12-02 22:57:04 -05:00
minimal minimal/do: didn't work correctly with multi-level auto dir creation. 2018-11-02 04:27:28 -04:00
t More fixes for converting missing targets -> sources. 2018-12-02 19:39:29 -05:00
version Raw logs contain @@REDO lines instead of formatted data. 2018-11-17 10:27:44 -05:00
.gitignore Generate a basic documentation website with the mkdocs toolkit. 2018-11-16 00:50:18 -05:00
_all.do Change definitions of $1,$2,$3 to match djb's redo. 2011-12-31 02:49:39 -05:00
all.do Automatically select a good shell instead of relying on /bin/sh. 2010-12-21 04:44:39 -08:00
atoi.py Move atoi() into atoi.py and add a new debug2() debug level. 2010-11-16 04:13:17 -08:00
builder.py If using --log or -j > 1, disable stdin. 2018-12-02 22:57:04 -05:00
clean.do {ood,sources,targets}: fix relative paths; turn missing targets into sources. 2018-11-23 19:18:43 -05:00
deps.py More fixes for converting missing targets -> sources. 2018-12-02 19:39:29 -05:00
helpers.py New redo-sources and redo-targets commands. 2010-12-19 03:50:38 -08:00
install.do Replaced all instances of 'python' with 'python2' 2018-11-14 10:52:09 -08:00
jwack.py redo-log: prioritize the "foreground" process. 2018-11-17 11:13:20 -05:00
LICENSE Change license to Apache 2.0. 2018-11-26 17:04:31 -05:00
logs.py redo-log: add automated tests, and fix some path bugs revealed by them. 2018-11-19 18:58:36 -05:00
Makefile Makefile: don't try to 'redo Makefile'. 2010-12-11 23:41:40 -08:00
mkdocs.yml Docs: format inline <code> blocks better. 2018-11-29 14:59:38 -05:00
options.py options.py: typo in comment 2018-11-13 07:00:11 -05:00
paths.py Raw logs contain @@REDO lines instead of formatted data. 2018-11-17 10:27:44 -05:00
README.md Refactor the huge README.md into the more structured mkdocs. 2018-11-16 05:22:09 -05:00
redo Extremely basic first crack at implementing djb's redo. 2010-11-12 05:25:03 -08:00
redo-always Add a redo-always command: it adds an "always dirty" dependency to your target. 2010-12-11 07:02:45 -08:00
redo-always.py Raw logs contain @@REDO lines instead of formatted data. 2018-11-17 10:27:44 -05:00
redo-ifchange Move 'redo --ifchange' into 'redo-ifchange' to match djb's style. 2010-11-13 00:47:49 -08:00
redo-ifchange.py If using --log or -j > 1, disable stdin. 2018-12-02 22:57:04 -05:00
redo-ifcreate Add redo-ifcreate to match djb's design. 2010-11-13 01:10:43 -08:00
redo-ifcreate.py Raw logs contain @@REDO lines instead of formatted data. 2018-11-17 10:27:44 -05:00
redo-log redo-log: capture and linearize the output of redo builds. 2018-11-17 10:27:43 -05:00
redo-log.py redo-log: missing switch from python -> python2. 2018-11-20 15:42:06 -05:00
redo-ood Add a new redo-ood command. 2010-12-19 03:50:38 -08:00
redo-ood.py More fixes for converting missing targets -> sources. 2018-12-02 19:39:29 -05:00
redo-sh.do redo-sh: downgrade failures that affected dash; add a bash warning. 2018-10-12 05:18:25 -04:00
redo-sources New redo-sources and redo-targets commands. 2010-12-19 03:50:38 -08:00
redo-sources.py More fixes for converting missing targets -> sources. 2018-12-02 19:39:29 -05:00
redo-stamp Half-support for using file checksums instead of stamps. 2010-12-11 05:54:37 -08:00
redo-stamp.py Raw logs contain @@REDO lines instead of formatted data. 2018-11-17 10:27:44 -05:00
redo-targets New redo-sources and redo-targets commands. 2010-12-19 03:50:38 -08:00
redo-targets.py More fixes for converting missing targets -> sources. 2018-12-02 19:39:29 -05:00
redo-unlocked Rename redo-oob to redo-unlocked, to more accurately represent its use. 2010-12-19 01:20:13 -08:00
redo-unlocked.py Raw logs contain @@REDO lines instead of formatted data. 2018-11-17 10:27:44 -05:00
redo-whichdo redo-whichdo: a command that explains the .do search path for a target. 2018-10-04 20:20:53 -04:00
redo-whichdo.py Raw logs contain @@REDO lines instead of formatted data. 2018-11-17 10:27:44 -05:00
redo.py If using --log or -j > 1, disable stdin. 2018-12-02 22:57:04 -05:00
state.py More fixes for converting missing targets -> sources. 2018-12-02 19:39:29 -05:00
test.do Docs/cookbook: build from toplevel 'test' instead of toplevel 'all'. 2018-11-28 12:55:49 -05:00
vars.py redo-log: fix stdout vs stderr; don't recapture if .do script redirects stderr. 2018-11-19 16:27:41 -05:00
vars_init.py redo-log: capture and linearize the output of redo builds. 2018-11-17 10:27:43 -05:00

redo - a recursive build system

Smaller, easier, more powerful, and more reliable than make.

This is an implementation of Daniel J. Bernstein's redo build system. He never released his version, so other people have implemented different variants based on his published specification.

This version, sometimes called apenwarr/redo, is probably the most advanced one, including support for parallel builds, improved logging, and helpful debugging features.


  • View the documentation via readthedocs.org
  • Visit the source code on github
  • Discussions and support via the mailing list. You can subscribe by sending any email message to redo-list+subscribe@googlegroups.com (note the plus sign).