Skip to content
Snippets Groups Projects
Commit 5b01f23d authored by Christophe Junke's avatar Christophe Junke
Browse files

Merge branch 'build_adjustments' into 'master'

Build adjustments

See merge request adacore/colibri!43
parents ca9a7e33 e3a73243
No related branches found
No related tags found
1 merge request!43Build adjustments
Pipeline #63209 passed
......@@ -5,9 +5,9 @@ tests_with_recompilation:
- sudo apt-get install -y make parallel libgmp-dev
- opam install dune.3.12.1 fmt.0.9.0 gen.1.1 menhir.20230608 ocplib-simplex.0.5 parsexp.v0.16.0 spelll.0.4 uutf.1.0.3 zarith.1.13
- make clean
- make clean_install
- make clean_bundle
- make
- make install
- make bundle
- make test
artifacts:
paths:
......
.PHONY: all install clean clean_install simplex simplex_epilog
.PHONY: all bundle clean clean_bundle simplex simplex_epilog
# Bundle prefix, override to specify a different directory
BUNDLE ?= $(PWD)/bundle
......@@ -108,7 +108,7 @@ build: simplex_epilog $(FLOAT_LIB) compile_colibri
./compile_colibri --eclipsedir $(ECLIPSEBIN)
# ==================================================
# INSTALL
# BUNDLE
# ==================================================
BUNDLE_SRC := \
......@@ -120,13 +120,13 @@ $(BUNDLE)/colibri.exe : colibri_for_bundle.ml
ocamlopt -o $@ unix.cmxa $^
chmod u+x $@
clean_install:
clean_bundle:
rm -fr $(BUNDLE)
$(BUNDLE):
mkdir -p $(BUNDLE)
install: $(BUNDLE) $(BUNDLE)/colibri.exe
bundle: $(BUNDLE) $(BUNDLE)/colibri.exe
cp $(BUNDLE)/colibri.exe $(BUNDLE)/colibri
mkdir -p $(BUNDLE)/COLIBRI/lib/
cp -ra $(LIBDIR) $(BUNDLE)/COLIBRI/lib/
......
# COLIBRI
## Special directories
## Bundle
`Bin/` and `Src/` directories are copied from their respective
repositories using the `release_colibri_opensource.sh` script found in
`gatel/Src`'s original repository. They should be considered read-only
here.
The command `make bundle` will create a relocalisable directory named
`bundle` containing the ` colibri` executables.
## Bundle
## 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:
In order to create a bundle of everything needed to run COLIBRI. run
`./compile_colibri.sh` then run `./bundle.sh` it will create
a relocalisable directory `bundle`.
- dune
- fmt
- gen
- menhir
- ocplib-simplex
- parsexp
- spelll
- uutf
- zarith
The exact versions required are listed in `.gitlab-ci.yml`.
## Compilation on linux
The up-to-date information could be found 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).
## 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
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.
## Remarks
`Bin/` and `Src/` directories are copied from their respective
repositories using the `release_colibri_opensource.sh` script found in
`gatel/Src`'s original repository. They should be considered read-only
here.
## LICENCE
This is the open-source colibri distribution.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment