redobc ~main

redo: recursive build system in BetterC


To use this package, run the following command in your project's root directory:

Manual usage
Put the following dependency into your project's dependences section:

redo-bc

redo-bc is an implementation of the redo build system (designed by Daniel J. Bernstein) in betterC (variant without GC of D Programming Language). This work based on work redo-c by by Christian Neukirchen (from https://github.com/leahneukirchen/redo-c) and uses the original documentation from this project, almost unchanged.

Documentation

Please refer to the documentation for redo in Python, or the tutorial by Jonathan de Boyne Pollard for usage instructions.

Notes about the redo-bc implementation of redo

  • Without arguments, redo behaves like redo all.

  • .do files always are executed in their directory, arguments are relative paths.

  • Standard output of .do files is only captured as build product if redo -s is used, or the environment variable REDO_STDOUT is set to 1. Else, standard output is simply displayed.

  • Non-executable .do files are run with /bin/sh -e. redo -x can be utilized to use /bin/sh -e -x instead, for debugging .do files or verbose builds.

  • Executable .do files are simply executed, and should have a shebang line.

  • When a target makes no output, no target file is created. The target is considered always out of date.

  • default.do files are checked in all parent directories up to /.

  • Parallel builds can be started with redo -j N (or JOBS=N redo), this uses a job broker similar to but not compatible with GNU make.

  • To detect whether a file has changed, we first compare ctime and in case it differs, a SHA2 hash of the contents.

  • Dependencies are tracked in .dep.BASENAME files all over the tree. This is an implementation detail.

  • Builds can be started from every directory and should yield same results.

  • redo -f will consider all targets outdated and force a rebuild.

  • redo -k will keep going if a target failed to build.

  • Currently, is very experimental software and needed to be revised by you.

Copying

To the extent possible under law, Leah Neukirchen leah@vuxu.org has waived all copyright and related or neighboring rights to this work.

I, aquaratixc, continuing the work of this kind person, also waive copyright and related rights.

http://creativecommons.org/publicdomain/zero/1.0/

Authors:
  • Oleg Bakharev
  • Christian Neukirchen
Dependencies:
none
Versions:
0.0.1 2023-Feb-18
~main 2023-Feb-18
Show all 2 versions
Download Stats:
  • 0 downloads today

  • 0 downloads this week

  • 0 downloads this month

  • 8 downloads total

Score:
0.7
Short URL:
redobc.dub.pm