You can clone with
Cannot retrieve contributors at this time
This directory builds a common.cma library and also optionallymultiple commons_xxx.cma small libraries. The reason not to just builda single one is that some functionnalities require external libraries(like Berkeley DB, MPI, etc) or special version of OCaml (like for thebacktrace support) and I don't want to penalize the user by forcinghim to install all those libs before being able to use some of mycommon helper functions. So, common.ml and other files offerconvenient helpers that do not require to install anything. In somecases I have directly included the code of those external libs whenthere are simple such as for ANSITerminal in ocamlextra/, and fordumper.ml I have even be further by inlining its code in common.ml soone can just do a open Common and have everything. Then if the userwants to, he can also leverage the other commons_xxx libraries byexplicitely building them after he has installed the necessaryexternal 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 removethe header and linker dependencies in Makefiles. A solution isto use cpp and pre-process many files that have such configurationissue. Another solution is to centralize all the cpp issue in onefile, features.ml.in, that acts as a generic wrapper for otherlibrairies and depending on the configuration actually call the external library or provide a fake empty services indicatingthat the service is not present. So you should have a ../configure that call cpp on features.ml.into set those linking-related configuration settings.