# COLIBRI ## Bundles The Makefile can produce a relocalisable directory for version 5 and 7 of ECLiPSe, in `bundle/v5` and `bundle/v7`, with respectively `make v5-build` and `make v7-build`. Inside each bundle directory there is a `colibri` executable. Also, `make v5-archive` and `make v7-archive` create `.tbz` archives of the respective bundle directories. The command `make archives` will create both archives. ## Dependencies In addition to the `Eclipse (CLP)` environment that is distributed within the bundle, the `colibri` solver relies on two auxiliary libraries: - `float_util.so` - `simplex_ocaml.so` The simplex library needs to link to `libgmp.so`, which can be installed using your distribution (e.g. on Debian from the ` libgmp-dev` package). In order to build `simplex_ocaml.so`, it is necessary to have `opam` installed and configured, in order to install the following OCaml modules: - dune - fmt - gen - menhir - ocplib-simplex - parsexp - spelll - uutf - zarith The exact versions required are listed in `.gitlab-ci.yml`. ## Compilation on linux The command `make` builds all the libraries and executables. The `Makefile` can be parameterized by two environment variables, `BUNDLE` (which is the directory where the bundle is created), and `ECL_VERSION`, which indicates which version of the Eclipse library should be used (see `Makefile` for details). ## Compilation on windows The compilation is helped by using https://fdopen.github.io/opam-repository-mingw/, it will install ocaml compiler but also mingw for the C part. Use `ocaml-env` to setup the environement for the compilation. Then the compilation is the same than for linux. ## Making a release To make a release, the `RELEASE_TOKEN` environment variable must be set to a token generated by Gitlab and associated with your account (the one in the example is invalid): ```` export RELEASE_TOKEN=glptt-0123456789abcdef ```` - Update `version`, using the `YYYY.MM` format (Y=year, M=month). - Update `CHANGES.md` by adding a section in front of the current ones. This file is processed by `changelog.sed`, which contains additional comments about the subset of markdown understood by the script. - Commit all changes. - Push to different branch to create a merge request - Review, fix and eventually merge it - Locally, pull from `origin/master` to `master` - Tag the commit with preferably the same value as `version`, ie. `YYYY.MM` (there may be a suffix if necessary). - Execute `make release` and confirm. ## Remarks The `Src/` directory is copied nightly from its original repository. It should be considered read-only here. ## LICENCE This is the open-source colibri distribution. This software under the LGP2.1 LICENCE.