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 theYYYY.MM
format (Y=year, M=month). - Update
CHANGES.md
by adding a section in front of the current ones. This file is processed bychangelog.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
tomaster
- 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.