about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/compilers/bluespec/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/compilers/bluespec/default.nix')
-rw-r--r--nixpkgs/pkgs/development/compilers/bluespec/default.nix55
1 files changed, 33 insertions, 22 deletions
diff --git a/nixpkgs/pkgs/development/compilers/bluespec/default.nix b/nixpkgs/pkgs/development/compilers/bluespec/default.nix
index 09e76d63235c..df7b6585205a 100644
--- a/nixpkgs/pkgs/development/compilers/bluespec/default.nix
+++ b/nixpkgs/pkgs/development/compilers/bluespec/default.nix
@@ -4,40 +4,45 @@
 , autoconf
 , automake
 , fontconfig
-, gmp
+, gmp-static
 , gperf
 , libX11
 , libpoly
 , perl
+, flex
+, bison
 , pkgconfig
+, itktcl
+, incrtcl
+, tcl
+, tk
 , verilog
 , xorg
+, yices
 , zlib
 , ghc
 }:
 
 let
-  # yices wants a libgmp.a and fails otherwise
-  gmpStatic = gmp.override { withStatic = true; };
-
-  ghcWithPackages = ghc.withPackages (g: (with g; [old-time regex-compat syb]));
+  ghcWithPackages = ghc.withPackages (g: (with g; [old-time regex-compat syb split ]));
 in stdenv.mkDerivation rec {
   pname = "bluespec";
-  version = "unstable-2020.02.09";
+  version = "unstable-2020.11.04";
 
   src = fetchFromGitHub {
-    owner  = "B-Lang-org";
-    repo   = "bsc";
-    rev    = "05c8afb08078e437c635b9c708124b428ac51b3d";
-    sha256 = "06yhpkz7wga1a0p9031cfjqbzw7205bj2jxgdghhfzmllaiphniy";
-    fetchSubmodules = true;
-  };
+      owner  = "B-Lang-org";
+      repo   = "bsc";
+      rev    = "103357f32cf63f2ca2b16ebc8e2c675ec5562464";
+      sha256 = "0iikzx0fxky0fmc31lyxfldy1wixr2mayzcn24b8d76wd4ix1vk3";
+    };
 
   enableParallelBuilding = true;
 
-  buildInputs = [
+  patches = [ ./libstp_stub_makefile.patch ];
+
+  buildInputs = yices.buildInputs ++ [
     zlib
-    gmpStatic gperf libpoly # yices
+    tcl tk
     libX11 # tcltk
     xorg.libXft
     fontconfig
@@ -46,6 +51,8 @@ in stdenv.mkDerivation rec {
   nativeBuildInputs = [
     automake autoconf
     perl
+    flex
+    bison
     pkgconfig
     ghcWithPackages
   ];
@@ -54,13 +61,13 @@ in stdenv.mkDerivation rec {
     verilog
   ];
 
-  patches = [
-    # drop stp support https://github.com/B-Lang-org/bsc/pull/31
-    (fetchpatch {
-      url = "https://github.com/flokli/bsc/commit/0bd48ecc2561541dc1368918863c0b2f4915006f.patch";
-      sha256 = "0bam9anld33zfi9d4gs502g94w49zhl5iqmbs2d1p5i19aqpy38l";
-    })
-  ];
+
+  postUnpack = ''
+    mkdir -p $sourceRoot/src/vendor/yices/v2.6/yices2
+    # XXX: only works because yices.src isn't a tarball.
+    cp -av ${yices.src}/* $sourceRoot/src/vendor/yices/v2.6/yices2
+    chmod -R +rwX $sourceRoot/src/vendor/yices/v2.6/yices2
+  '';
 
   preBuild = ''
     patchShebangs \
@@ -72,11 +79,15 @@ in stdenv.mkDerivation rec {
     substituteInPlace src/comp/Makefile \
       --replace 'BINDDIR' 'BINDIR' \
       --replace 'install-bsc install-bluetcl' 'install-bsc install-bluetcl $(UTILEXES) install-utils'
+    # allow running bsc to bootstrap
+    export LD_LIBRARY_PATH=/build/source/inst/lib/SAT
   '';
 
   makeFlags = [
+    "NO_DEPS_CHECKS=1" # skip the subrepo check (this deriviation uses yices.src instead of the subrepo)
     "NOGIT=1" # https://github.com/B-Lang-org/bsc/issues/12
     "LDCONFIG=ldconfig" # https://github.com/B-Lang-org/bsc/pull/43
+    "STP_STUB=1"
   ];
 
   installPhase = "mv inst $out";
@@ -90,6 +101,6 @@ in stdenv.mkDerivation rec {
     platforms = [ "x86_64-linux" ];
     # darwin fails at https://github.com/B-Lang-org/bsc/pull/35#issuecomment-583731562
     # aarch64 fails, as GHC fails with "ghc: could not execute: opt"
-    maintainers = with stdenv.lib.maintainers; [ flokli thoughtpolice ];
+    maintainers = with stdenv.lib.maintainers; [ jcumming thoughtpolice ];
   };
 }