From 475527adb7b7cf1f0063f54f299b71a0ee720b70 Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Wed, 15 Jul 2015 19:14:18 +0200 Subject: [PATCH] compcert: 2.4 -> 2.5 Also installs the Coq library as a separate output. --- .../compilers/compcert/default.nix | 24 +++++++++++++++---- pkgs/top-level/all-packages.nix | 6 ++++- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/pkgs/development/compilers/compcert/default.nix b/pkgs/development/compilers/compcert/default.nix index 00a0e7b9c2b..3b1ebca1796 100644 --- a/pkgs/development/compilers/compcert/default.nix +++ b/pkgs/development/compilers/compcert/default.nix @@ -1,23 +1,37 @@ -{ stdenv, fetchurl, coq, ocaml, ocamlPackages }: +{ stdenv, fetchurl, coq, ocamlPackages +, tools ? stdenv.cc +}: stdenv.mkDerivation rec { name = "compcert-${version}"; - version = "2.4"; + version = "2.5"; src = fetchurl { url = "http://compcert.inria.fr/release/${name}.tgz"; - sha256 = "1qrb1cplx3v5wxn1c46kx67v1j52yznvjm2hkrsdybphhki2pyia"; + sha256 = "15gxarl2a8mz33fdn8pycj0ccazgmllbg2940n7aqdjlz807p11n"; }; - buildInputs = [ coq ocaml ocamlPackages.menhir ]; + buildInputs = [ coq ] ++ (with ocamlPackages; [ ocaml menhir ]); enableParallelBuilding = true; configurePhase = '' substituteInPlace ./configure --replace '{toolprefix}gcc' '{toolprefix}cc' - ./configure -prefix $out -toolprefix ${stdenv.cc}/bin/ '' + + ./configure -prefix $out -toolprefix ${tools}/bin/ '' + (if stdenv.isDarwin then "ia32-macosx" else "ia32-linux"); + installTargets = "documentation install"; + + postInstall = '' + mkdir -p $lib/share/doc/compcert + mv doc/html $lib/share/doc/compcert/ + mkdir -p $lib/lib/coq/${coq.coq-version}/user-contrib/compcert/ + mv backend cfrontend common cparser driver flocq ia32 lib \ + $lib/lib/coq/${coq.coq-version}/user-contrib/compcert/ + ''; + + outputs = [ "out" "lib" ]; + meta = with stdenv.lib; { description = "Formally verified C compiler"; homepage = "http://compcert.inria.fr"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2f39c4dc040..7380f2d6cf1 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3646,7 +3646,11 @@ let cmucl_binary = callPackage ../development/compilers/cmucl/binary.nix { }; - compcert = callPackage ../development/compilers/compcert {}; + compcert = callPackage ../development/compilers/compcert ( + if system == "x86_64-linux" + then { tools = pkgsi686Linux.stdenv.cc; } + else {} + ); cryptol = haskellPackages.cryptol;