%%VERSION%%
Brzo is a build tool to quickly turn source files of various languages into executable programs and documents.
Brzo favors best-effort heuristics and advices over formal configuration. It is a simple build tool made for exploratory design and learning. It is unsuitable for building software distributions.
Brzo partitions its build logics into domains which broadly map to support for different languages. Each domain provides a few build outcomes which determine a build artefact and an action performed on it. The following domains are defined:
c
, C support. Outcomes for executable programs and source documentation via Doxygen.cmark
, CommonMark support. Outcomes for a web of HTML programs (via cmark).latex
, LaTeX support. Outcomes for PDF documents and source file listings.ocaml
, OCaml support. Outcomes for byte and native code executable programs with C bindings, HTML and JavaScript programs via js_of_ocaml, interactive toplevel sessions in the terminal and in the browser, source documentation and manuals.
Brzo is distributed under the ISC license, it depends on b0
and
cmdliner
.
Homepage: http://erratique.ch/software/brzo
brzo can be installed with opam
:
opam install brzo
If you don't use opam
consult the opam
file for build
instructions.
A few invocations to get you started.
> touch BRZO
> cat > echo.ml <<EOCAML
print_endline (String.concat " " (List.tl (Array.to_list Sys.argv)))
EOCAML
> brzo -- 'Quick!'
'Quick!'
> brzo ocaml --html -- 'Quick!' # See your browser console.
> brzo --doc
Use brzo --help
to see which domains are available and brzo DOMAIN --help
to see which outcomes are available for a domain. For more
information see the manual or odig doc brzo
.
The manual can be consulted online or via odig doc brzo
.
Brzo strives to give a hassle free build experience but it may still
be useful to go through the manual to understand a bit better how the
heuristics work for a domain and or how to guide them via a BRZO
file.
Questions are welcome but better asked on the OCaml forum than on the issue tracker.