Skip to content
Snippets Groups Projects
user avatar
Frama-CI Bot authored
src: 830104dd
farith: a93db57
86a67d0c
History

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.