Sha256: dd9365d0ed2770adf218d96f6970b2a85f64a18ff4f311209adbb48bb5048208

Contents?: true

Size: 1.75 KB

Versions: 1

Compression:

Stored size: 1.75 KB

Contents

= 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.

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rubu-0.0.1 README.rdoc