Skip to content
Snippets Groups Projects
README.md 2.71 KiB
Newer Older
François Bobot's avatar
François Bobot committed

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.
Christophe Junke's avatar
Christophe Junke committed
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:
François Bobot's avatar
François Bobot committed

   - dune
   - fmt
   - gen
   - menhir
   - ocplib-simplex
   - parsexp
   - spelll
   - uutf
   - zarith

The exact versions required are listed in `.gitlab-ci.yml`.
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).
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.
François Bobot's avatar
François Bobot committed

This is the open-source colibri distribution.
This software under the LGP2.1 LICENCE.