Make apenwarr/redo installable on windows and work with uv tool install
Find a file
Avery Pennarun 02220d4318 t/110-compile and t/111-example: skip if no C compiler installed.
It's nice to validate "real" use with a C compiler, but silly to
completely fail validation just because a C compiler is missing.
2018-11-19 15:46:22 -05:00
contrib/bash_completion.d MacOS: "-e filename/." returns true even for non-directories. 2011-03-05 19:03:30 -08:00
Documentation Refactor the huge README.md into the more structured mkdocs. 2018-11-16 05:22:09 -05:00
minimal minimal/do: didn't work correctly with multi-level auto dir creation. 2018-11-02 04:27:28 -04:00
t t/110-compile and t/111-example: skip if no C compiler installed. 2018-11-19 15:46:22 -05:00
version vars.do: an improvement on the previous patch. 2011-02-17 01:05:52 -08: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 Cyclic dependency checker: don't give up token in common case. 2018-11-13 07:00:09 -05:00
clean.do .gitignore and clean.do: add minimal/.do* 2018-11-16 00:32:07 -05:00
deps.py Print a better message when detecting pre-existing cyclic dependencies. 2018-11-02 02:20:52 -04: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 Cyclic dependency checker: don't give up token in common case. 2018-11-13 07:00:09 -05:00
LICENSE Add README.md and LICENSE. 2010-11-17 00:53:58 -08:00
log.py redo-whichdo: fix a bug where the last dir was checked twice, and add tests. 2018-11-02 02:20:52 -04:00
Makefile Makefile: don't try to 'redo Makefile'. 2010-12-11 23:41:40 -08:00
mkdocs.yml Refactor the huge README.md into the more structured mkdocs. 2018-11-16 05:22:09 -05:00
options.py options.py: typo in comment 2018-11-13 07:00:11 -05:00
paths.py redo-whichdo: fix a bug where the last dir was checked twice, and add tests. 2018-11-02 02:20:52 -04: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 Replaced all instances of 'python' with 'python2' 2018-11-14 10:52:09 -08: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 Replaced all instances of 'python' with 'python2' 2018-11-14 10:52:09 -08:00
redo-ifcreate Add redo-ifcreate to match djb's design. 2010-11-13 01:10:43 -08:00
redo-ifcreate.py Replaced all instances of 'python' with 'python2' 2018-11-14 10:52:09 -08:00
redo-ood Add a new redo-ood command. 2010-12-19 03:50:38 -08:00
redo-ood.py Replaced all instances of 'python' with 'python2' 2018-11-14 10:52:09 -08: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 Replaced all instances of 'python' with 'python2' 2018-11-14 10:52:09 -08:00
redo-stamp Half-support for using file checksums instead of stamps. 2010-12-11 05:54:37 -08:00
redo-stamp.py Replaced all instances of 'python' with 'python2' 2018-11-14 10:52:09 -08:00
redo-targets New redo-sources and redo-targets commands. 2010-12-19 03:50:38 -08:00
redo-targets.py Replaced all instances of 'python' with 'python2' 2018-11-14 10:52:09 -08: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 Replaced all instances of 'python' with 'python2' 2018-11-14 10:52:09 -08: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 Replaced all instances of 'python' with 'python2' 2018-11-14 10:52:09 -08:00
redo.py Replaced all instances of 'python' with 'python2' 2018-11-14 10:52:09 -08:00
state.py Cyclic dependency checker: don't give up token in common case. 2018-11-13 07:00:09 -05:00
test.do minimal/do: add redo-whichdo support and internal unit tests. 2018-11-02 02:20:52 -04:00
vars.py Add cyclic dependence detection. 2018-10-11 03:28:05 -04:00
vars_init.py redo-whichdo: fix a bug where the last dir was checked twice, and add tests. 2018-11-02 02:20:52 -04: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).