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

+3


source to share


1 answer


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, not frama-c-base

    as the only difference is the required packages, namely the ones for the GUI. You can do the following before starting opam 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.

+4


source







All Articles