Newer
Older
# COLIBRI
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.
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.
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.