Skip to content
Fetching contributors…
Cannot retrieve contributors at this time
88 lines (59 sloc) 2.71 KB

Welcome to Batteries Included

OCaml Batteries Included: the community-maintained foundation library for your OCaml projects.

Batteries Included serves the following purposes:

  • define a standard set of libraries which may be expected on every compliant installation of OCaml
  • organize these libraries into a hierarchy of modules, with one source of documentation
  • provide a consistent API for otherwise independent libraries.

Building Batteries Included


You will need the following libraries:

  • OCaml >= 3.11
  • Findlib >= 1.2.5
  • GNU make (optional; aids build and installation)
  • Camomile >= 0.7
  • OUnit to build and run the tests

Configuration and installation

To install the full version of OCaml Batteries Included, execute

$ make all
$ make test qtest    [ optional ]
$ sudo make install 

$ make doc      [ optional ]
$ sudo make install-doc   [ optional ]

If you want the documentation installed elsewhere, set this before starting the build process (it becomes part of

$ export DOCROOT=/path/to/new/docroot/

If you want findlib to use a -destdir argument to [ocamlfind install], set

$ export DESTDIR=/path/to/findlib/dest

To disable native compilation:

$ export BATTERIES_NATIVE=false

To disable building of native shared libraries:


Using Batteries

To get started using Batteries at the toplevel, copy the ocamlinit file to ~/.ocamlinit:

$ cp ocamlinit ~/.ocamlinit

If you already have findlib in your ~/.ocamlinit, you only need the last line in our ocamlinit to load batteries.

More usage help available on the batteries-included wiki

ExtLib Compatibility

If your project currently uses ExtLib, most likely you can just change -package extlib to -package batteries and add open Extlibcompat to the top of any extlib-using modules. Batteries' modules are all named BatFoo to differentiate them from extlib's modules, so one can use Batteries and ExtLib in the same project.

COMPATIBILITY NOTE: If you're using ExtLib's Unzip module, it does not have a corresponding module in batteries at the moment.

Extending Batteries Included

See doc/batteries/GUIDELINES and the guidelines wiki page

Something went wrong with that request. Please try again.