frama-c: link to the apron library
This commit is contained in:
parent
67a5833330
commit
939e2d702f
|
@ -1,6 +1,11 @@
|
||||||
{ stdenv, fetchurl, ncurses, ocamlPackages, graphviz
|
{ stdenv, fetchurl, makeWrapper, ncurses, ocamlPackages, graphviz
|
||||||
, ltl2ba, coq, alt-ergo, why3 }:
|
, ltl2ba, coq, alt-ergo, why3 }:
|
||||||
|
|
||||||
|
let
|
||||||
|
mkocamlpath = p: "${p}/lib/ocaml/${ocamlPackages.ocaml.version}/site-lib";
|
||||||
|
ocamlpath = "${mkocamlpath ocamlPackages.apron}:${mkocamlpath ocamlPackages.mlgmpidl}";
|
||||||
|
in
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "frama-c-${version}";
|
name = "frama-c-${version}";
|
||||||
version = "20160501";
|
version = "20160501";
|
||||||
|
@ -16,9 +21,11 @@ stdenv.mkDerivation rec {
|
||||||
sha256 = "1335bhq9v3h46m8aba2c5myi9ghm87q41in0m15xvdrwq5big1jg";
|
sha256 = "1335bhq9v3h46m8aba2c5myi9ghm87q41in0m15xvdrwq5big1jg";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
|
||||||
buildInputs = with ocamlPackages; [
|
buildInputs = with ocamlPackages; [
|
||||||
ncurses ocaml findlib alt-ergo ltl2ba ocamlgraph
|
ncurses ocaml findlib alt-ergo ltl2ba ocamlgraph
|
||||||
lablgtk coq graphviz zarith why3 zarith
|
lablgtk coq graphviz zarith why3 apron
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
@ -38,11 +45,15 @@ stdenv.mkDerivation rec {
|
||||||
FRAMAC=$out/bin/frama-c ./configure --prefix=$out
|
FRAMAC=$out/bin/frama-c ./configure --prefix=$out
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
|
for p in $out/bin/frama-c{,-gui};
|
||||||
|
do
|
||||||
|
wrapProgram $p --prefix OCAMLPATH ':' ${ocamlpath}
|
||||||
|
done
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|
||||||
# Enter frama-c directory before patching
|
# Enter frama-c directory before patching
|
||||||
prePatch = ''cd frama*'';
|
prePatch = ''cd frama*'';
|
||||||
|
patches = [ ./dynamic.diff ];
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
# strip absolute paths to /usr/bin
|
# strip absolute paths to /usr/bin
|
||||||
for file in ./configure ./share/Makefile.common ./src/*/configure; do
|
for file in ./configure ./share/Makefile.common ./src/*/configure; do
|
||||||
|
|
12
pkgs/development/tools/analysis/frama-c/dynamic.diff
Normal file
12
pkgs/development/tools/analysis/frama-c/dynamic.diff
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
--- a/src/kernel_services/plugin_entry_points/dynamic.ml 2016-05-30 16:15:22.000000000 +0200
|
||||||
|
+++ b/src/kernel_services/plugin_entry_points/dynamic.ml 2016-10-13 18:25:31.000000000 +0200
|
||||||
|
@@ -287,7 +287,8 @@
|
||||||
|
(List.fold_right (add_dir ~user:false) Config.plugin_dir []) ;
|
||||||
|
let pkgs = ref [] in
|
||||||
|
List.iter (scan_directory pkgs) !load_path ;
|
||||||
|
- let findlib_path = String.concat ":" !load_path in
|
||||||
|
+ let findlib_path = String.concat ":" (!load_path @
|
||||||
|
+ try [Sys.getenv "OCAMLPATH"] with Not_found -> []) in
|
||||||
|
Klog.debug ~dkey "setting findlib path to %s" findlib_path;
|
||||||
|
Findlib.init ~env_ocamlpath:findlib_path ();
|
||||||
|
load_packages (List.rev !pkgs) ;
|
Loading…
Reference in a new issue