Make apenwarr/redo installable on windows and work with uv tool install
Find a file
Avery Pennarun 9aa8061e83 minimal/do: fix a bug when $PWD != $(/bin/pwd).
This can happen when $PWD contains a symlink somewhere in the path.  In
that case, "cd ..; cat x" could mean something different from "cat ../x".

Notably, this error occurs when running "./do test" if your build
directory is through a symlink.  For example, on freebsd your home
directory is /home/$USER, but /home is a symlink to /usr/home, which
triggers this problem.

Not adding tests in this commit, because when I added some tests, I
found even more symlink-related bugs, but those ones are much more
unlikely to occur.  The additional fixes+tests are in a later commit.
2018-12-17 16:14:08 +00:00
bin Move setproctitle() stuff into title.py. 2018-12-05 02:28:34 -05:00
contrib/bash_completion.d MacOS: "-e filename/." returns true even for non-directories. 2011-03-05 19:03:30 -08:00
docs Minor copyediting of index.md. 2018-12-10 05:03:20 +00:00
minimal minimal/do: fix a bug when $PWD != $(/bin/pwd). 2018-12-17 16:14:08 +00:00
redo Add a bunch of missing python docstrings. 2018-12-14 09:03:53 +00:00
t Ensure correct operation with read-only target dirs and .do file dirs. 2018-12-13 13:28:44 +00:00
.gitignore Directory reorg: move code into redo/, generate binaries in bin/. 2018-12-04 02:53:40 -05:00
.pylintrc Add a bunch of missing python docstrings. 2018-12-14 09:03:53 +00:00
_all.do Directory reorg: move code into redo/, generate binaries in bin/. 2018-12-04 02:53:40 -05:00
all.do Directory reorg: move code into redo/, generate binaries in bin/. 2018-12-04 02:53:40 -05:00
clean.do Directory reorg: move code into redo/, generate binaries in bin/. 2018-12-04 02:53:40 -05:00
do minimal/do: fix a bug when $PWD != $(/bin/pwd). 2018-12-17 16:14:08 +00:00
install.do Fix minimal/do and tests when built in a path containing spaces. 2018-12-11 01:22:29 +00:00
LICENSE Change license to Apache 2.0. 2018-11-26 17:04:31 -05:00
Makefile Directory reorg: move code into redo/, generate binaries in bin/. 2018-12-04 02:53:40 -05:00
mkdocs.yml Directory reorg: move code into redo/, generate binaries in bin/. 2018-12-04 02:53:40 -05:00
README.md Directory reorg: move code into redo/, generate binaries in bin/. 2018-12-04 02:53:40 -05:00
test.do Fix a few lagging doc references to old-style build+test layout. 2018-12-10 04:33:57 +00: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.

To build and test redo, run ./do -j10 test. To install it, run DESTDIR=/tmp/testinstall PREFIX=/usr/local ./do -j10 install.


  • 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).