Error installing Frama-C with opam (Ubuntu 14.04 LTS)
Trying to install Frama-C with the recommended opam method gives the following error:
### stdout ###
# Cleaning Installation directory
# Installing WP shared files
### stderr ###
# /bin/sh: 1: src/plugins/wp/share/instwp: not found
# make: *** [src/plugins/wp/Makefile:355: install] Error 127
the following commands are used here:
# install opam
$ wget https://raw.github.com/ocaml/opam/master/shell/opam_installer.sh -O - | sh -s /usr/local/bin
# configure opam
$ eval `opam config env`
$ opam config setup -a
# install frama-c
$ opam install frama-c-base
Edit: here is the output opam install -v frama-c-base
: https://pastebin.com/eMH08ugA
Edit2: this system is running Linux Mint 17.3 (Ubuntu 14.04 LTS upstream); the Ubuntu package in the software repository is 3.81 (untested), although this was already updated to version 4.2 when this bug was encountered
source to share
I was able to reproduce this problem and the culprit seems to have done 4.2, due to this error in particular:
bug # 44742: Double-dep with double column rule not built [in parallel builds]
Several rules in Frama-C makefiles use double colons, and are -j%{jobs}%
set by default in opam
Frama-C to speed up compilation.
Unfortunately, it seems that the combination of these two results in the file instwp
(among other things) is not being built despite its rule being present in the WP makefile when using that particular version of Make.
I am using Make 4.2.1 by default and I don't have this problem (all files are created as expected and make install
succeed). If I manually compile Frama-C without -j
I also have no problem.
If you are unable to update your version of Make, you can try using opam install -j 1 frama-c
that should override the variable jobs
and disable parallel compilation of Frama-C to avoid the error.
However, my general recommendations would be as follows:
-
Install the new OCaml (at least it should be compatible with almost any package available in OCaml 4.02.1) to provide access to the most recent version of Frama-C (Frama-C Silicon is not available in OCaml 4.02.1);
-
If you can, install it
frama-c
yourself, notframa-c-base
as the only difference is the required packages, namely the ones for the GUI. You can do the following before startingopam install frama-c
:opam install depext opam depext frama-c
The first line will be installed
depext
, which will be able to find the external dependencies for your distribution, and the second line will be used to depext Frama-C, which prompts you to install external dependencies that are available in your distribution.
source to share