Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
tree: c6a61f5876

Fetching latest commit…

Cannot retrieve the latest commit at this time

..
Failed to load latest commit information.
lib-json
lib-sexp
lib-xml
ocamlextra
ocollection
Commons.tex.nw
Commons_intro.tex.nw
Makefile
authors.txt
backtrace.ml
backtrace_c.c
common.ml
common.ml.nw
common.mli
common__basic.mli.nw
common__basic_types.mli.nw
common__collections.mli.nw
common__misc.mli.nw
common__overview.mli.nw
common_extra.ml
common_extra.mli
compatibility.ml
concurrency.ml
copyright.txt
credits.txt
distribution.ml
distribution.mli
extra.mli.nw
features.ml.in
file_format.ml
file_format.mli
file_type.ml
file_type.mli
glimpse.ml
glimpse.mli
graph.ml
graph.mli
graphic.ml
gui.ml
int.ml
interfaces.ml
license.txt
logger.ml
logger.mli
macro.ml4
math.ml
math.mli
noweb.sty
oarray.ml
oarray.mli
oassoc.ml
oassoc.mli
objet.ml
objet.mli
ocaml.ml
ocaml.mli
ocollection.ml
ocollection.mli
ocollection.mli.nw
ocommon__other.mli.nw
ocommon__overview.mli.nw
ofullcommon.ml
ograph.ml
ograph.mli
ograph_extended.ml
ograph_extended.mli
ograph_simple.ml
ograph_simple.mli
opengl.ml
osequence.ml
osequence.mli
oset.ml
oset.mli
parallel.ml
parallel.mli
parser_combinators.ml
parser_combinators.mli
portability.ml
python.ml
python_ocaml.py
readme.txt
reflection.ml
regexp.ml
seti.ml
sexp_common.ml
shorttoc.sty
simple_color.ml
simple_color.mli
unicode.ml
unicode.mli

readme.txt

This directory builds a common.cma library and also optionally
multiple commons_xxx.cma small libraries. The reason not to just build
a single one is that some functionnalities require external libraries
(like Berkeley DB, MPI, etc) or special version of OCaml (like for the
backtrace support) and I don't want to penalize the user by forcing
him to install all those libs before being able to use some of my
common helper functions. So, common.ml and other files offer
convenient helpers that do not require to install anything. In some
cases I have directly included the code of those external libs when
there are simple such as for ANSITerminal in ocamlextra/, and for
dumper.ml I have even be further by inlining its code in common.ml so
one can just do a open Common and have everything. Then if the user
wants to, he can also leverage the other commons_xxx libraries by
explicitely building them after he has installed the necessary
external files.

For many configurable things we can use some flags in ml files, 
and have some -xxx command line argument to set them or not,
but for other things flags are not enough as they will not remove
the header and linker dependencies in Makefiles. A solution is
to use cpp and pre-process many files that have such configuration
issue. Another solution is to centralize all the cpp issue in one
file, features.ml.in, that acts as a generic wrapper for other
librairies and depending on the configuration actually call 
the external library or provide a fake empty services indicating
that the service is not present. 
So you should have a ../configure that call cpp on features.ml.in
to set those linking-related configuration settings.

Something went wrong with that request. Please try again.