Rubu
Rubu (Re-Usable Build Utility) is a library for building programs. Rubu is in practice a replacement for Make and Rake type of tools. Rubu is targeted to provide means for creating flexible build environments.
Make and Rake are rule and recipe based, and they are very effective when the build process can be captured to these rules and are fairly fixed. Rubu includes declarations which correspond to rules, but the declarations are lower level and provide more control over the behavior. Rubu also provides direct control over when the rules are executed.
Make and Rake are more compact for the simplest build environments, but there is a break-even point where Rubu becomes more convenient. This is likely to happen when the user needs many exceptions to basic rules, also when other tasks than just build task are needed.
Rubu library can be used from any Ruby program, since it is just a library. It can also be part of a larger program as less significant part of the overall functionality. From maintenance point of view this can be a win in many cases.
Concepts
TBD
Example
Example of Rubu build program is placed in:
example/bin/rubu_example
It builds a “hello world” type program which is split into two C source files. The main file is hand written and the other file is generated with a script. File generation is part of the build program.
Various executions of the build is captured in:
example/runme
Please see example executions within the script and run the script in the “example” directory:
cd example
runme
Also take a look into the build program:
cat example/bin/rubu_example
There are comments which highlight purpose of the build program content.
Testing
For this version, example is the testcase.