Just a heads up,
I tampered around with redo-c. Find it at
https://github.com/jorge-leon/redo-c
It:
- Captures stdout of do files in the target file.
- Does not create an empty target if $3 is empty. This allows for
"phony" targets and protects against silly mistakes.
- Truncates targets explicitly if needed,
- Creates the temporary output file $3 with the same permissions of an
existing target, or with 0644 - subject to the umask.
- Searches for |target.do| before |default.do| - also in parent directories.
- Is modified for compilation with dietlibc (you might want to revert this).
- Uses the shorter and faster SipHash-2-4-64 instead of sha256.
- Has dependency cycle detection.
- Writes its redo database into a per-directory .redo subdirectory.
Caution: I'm not (yet) proud of it and it has rough edges.
Best Regards,
Georg
On 12/18/20 11:33, Sergey Matveev wrote:
*** Sergey Matveev [2020-12-17 21:44]:
Now there are pure C https://github.com/leahneukirchen/redo-c
And by the way, it is less than 1kLOC even with completely built-in
SHA256 implementation and no dependencies. Supporint all necessary
redo-ifchange/ifcreate/always commands, jobserver (parallel builds) and
supporting both pure-shell .do files and executable ones, that can be
written on any language.