Make apenwarr/redo installable on windows and work with uv tool install
Find a file
2018-12-03 21:15:31 -05:00
contrib/bash_completion.d MacOS: "-e filename/." returns true even for non-directories. 2011-03-05 19:03:30 -08:00
Documentation Add Roadmap.md. 2018-12-03 01:45:36 -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
.pylintrc Move into the 21st century by fixing some pylint warnings. 2018-12-03 00:11:27 -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 Move into the 21st century by fixing some pylint warnings. 2018-12-03 00:11:27 -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 Move into the 21st century by fixing some pylint warnings. 2018-12-03 00:11:27 -05:00
helpers.py Move into the 21st century by fixing some pylint warnings. 2018-12-03 00:11:27 -05:00
install.do Oops, broken 'install.do' target after pylint fixes. 2018-12-03 21:15:31 -05:00
jwack.py Move into the 21st century by fixing some pylint warnings. 2018-12-03 00:11:27 -05:00
LICENSE Change license to Apache 2.0. 2018-11-26 17:04:31 -05:00
logs.py Move into the 21st century by fixing some pylint warnings. 2018-12-03 00:11:27 -05:00
Makefile Makefile: don't try to 'redo Makefile'. 2010-12-11 23:41:40 -08:00
mkdocs.yml Add Roadmap.md. 2018-12-03 01:45:36 -05:00
options.py Move into the 21st century by fixing some pylint warnings. 2018-12-03 00:11:27 -05:00
paths.py Move into the 21st century by fixing some pylint warnings. 2018-12-03 00:11:27 -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 Move into the 21st century by fixing some pylint warnings. 2018-12-03 00:11:27 -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 Move into the 21st century by fixing some pylint warnings. 2018-12-03 00:11:27 -05:00
redo-ifcreate Add redo-ifcreate to match djb's design. 2010-11-13 01:10:43 -08:00
redo-ifcreate.py Move into the 21st century by fixing some pylint warnings. 2018-12-03 00:11:27 -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 Move into the 21st century by fixing some pylint warnings. 2018-12-03 00:11:27 -05:00
redo-ood Add a new redo-ood command. 2010-12-19 03:50:38 -08:00
redo-ood.py Move into the 21st century by fixing some pylint warnings. 2018-12-03 00:11:27 -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 Move into the 21st century by fixing some pylint warnings. 2018-12-03 00:11:27 -05:00
redo-stamp Half-support for using file checksums instead of stamps. 2010-12-11 05:54:37 -08:00
redo-stamp.py Move into the 21st century by fixing some pylint warnings. 2018-12-03 00:11:27 -05:00
redo-targets New redo-sources and redo-targets commands. 2010-12-19 03:50:38 -08:00
redo-targets.py Move into the 21st century by fixing some pylint warnings. 2018-12-03 00:11:27 -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 Move into the 21st century by fixing some pylint warnings. 2018-12-03 00:11:27 -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 Move into the 21st century by fixing some pylint warnings. 2018-12-03 00:11:27 -05:00
redo.py Oops, broken 'install.do' target after pylint fixes. 2018-12-03 21:15:31 -05:00
state.py Move into the 21st century by fixing some pylint warnings. 2018-12-03 00:11:27 -05:00
test.do Docs/cookbook: build from toplevel 'test' instead of toplevel 'all'. 2018-11-28 12:55:49 -05:00
vars.py Move into the 21st century by fixing some pylint warnings. 2018-12-03 00:11:27 -05:00
vars_init.py Move into the 21st century by fixing some pylint warnings. 2018-12-03 00:11:27 -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).