Download source bundles:
Configure your machine to use the package repository, or download pre-built binaries:
Daniel J. Bernstein's
redo idea is a system for building target files from source files.
I originally wrote improved versions of Alan Grosskurth's 2007 implementation in shell scripts.
This package is a complete reimplementation from the ground up, in a compiled programming language rather than an interpreted one, that I then wrote.
redo — the main utility for rebuilding
redo-ifchange — a secondary utility for rebuilding targets if existing sources change
redo-ifcreate — a secondary utility for rebuilding targets if non-existent sources manifest
a utility program that generates hashes of file contents using the same parameterization of Bernstein CubeHash as is used by the redo tools to check for changes to source and target files
You can obtain it in two ways.
It is available in source form. This is distributed as a slashpackage-style package. That's a whole subject in itself; and the things that you need to know here are:
It is known to build, run, and work on FreeBSD 10, PC-BSD 10, Debian Linux version 8, Arch Linux, and OpenBSD version 5.9.
It should similarly build, run, and work on any modern BSD and on any modern Linux flavour.
(It makes use of various
…at() system calls from POSIX.1:2008, for safety.)
It doesn't rely upon any other build system to build itself, merely POSIX-conformant and Bourne Again shell scripts and the g++ or clang++ compilers.
In particular, it doesn't require
make to build.
To just build the package from source:
This gives you:
command/, which you can just add to your
PATH environment variable or symbolically link to;
The build process updates files in these directories atomically. It doesn't create part-written executables or other files at their final names. So you can run things straight out of these directories whilst rebuilding.
To clean the build run
rm -r build/
To clean the build, packaging, and built files run
rm -r build/ command/ manual/
To build the binary packages on FreeBSD, PC-BSD, or OpenBSD run
package/bsd/prepare && bsd/rules clean build binary
On FreeBSD and PC-BSD this requires pkg version 1.2 or later in order to avoid segmentation faults and other bugs. So ensure that pkg is up to that version in your ports tree.
To build the binary packages on Debian Linux run
package/debian/prepare && dpkg-buildpackage -b -uc
Putting things into places outwith the self-contained directory is "exporting". To export to
/usr/local run (as the superuser)
Pre-built binary packages are available, that install the toolset under