about summary refs log tree commit diff
path: root/pkgs/development/compilers/bluespec
diff options
context:
space:
mode:
authorJack Cummings <jack@mudshark.org>2021-08-25 15:29:42 -0700
committerAustin Seipp <aseipp@pobox.com>2021-08-31 16:53:58 -0500
commit67247c113e30f51061bf913ad19d54ad84aede44 (patch)
treebcdab6ce7e344e063fed8d619dcf87de210e580c /pkgs/development/compilers/bluespec
parentb47bee7472a77df1357d31af52418a8599572593 (diff)
bluespec: unstable-2021.03.29 -> 2021.07
Diffstat (limited to 'pkgs/development/compilers/bluespec')
-rw-r--r--pkgs/development/compilers/bluespec/default.nix134
1 files changed, 77 insertions, 57 deletions
diff --git a/pkgs/development/compilers/bluespec/default.nix b/pkgs/development/compilers/bluespec/default.nix
index 7a76d4948e73f..4ae6622b9dc7f 100644
--- a/pkgs/development/compilers/bluespec/default.nix
+++ b/pkgs/development/compilers/bluespec/default.nix
@@ -1,66 +1,30 @@
-{ lib, stdenv
-, fetchFromGitHub
-, fetchpatch
-, autoconf
-, automake
-, fontconfig
-, gmp-static
-, gperf
-, libX11
-, libpoly
-, perl
-, flex
-, bison
-, pkg-config
-, itktcl
-, incrtcl
-, tcl
-, tk
-, verilog
-, xorg
-, yices
-, zlib
-, ghc
+{ lib, stdenv, fetchFromGitHub, fetchpatch, autoconf, automake, fontconfig
+, gmp-static, gperf, libX11, libpoly, perl, flex, bison, pkg-config, itktcl
+, incrtcl, tcl, tk, verilog, xorg, yices, zlib, ghc, asciidoctor, tex # docs
+, dejagnu, gnum4, time, tcsh # check
+, longTests ? false # WIP
 }:
 
 let
-  ghcWithPackages = ghc.withPackages (g: (with g; [old-time regex-compat syb split ]));
+  ghcWithPackages =
+    ghc.withPackages (g: (with g; [ old-time regex-compat syb split ]));
+
 in stdenv.mkDerivation rec {
   pname = "bluespec";
-  version = "unstable-2021.03.29";
+  version = "2021.07";
 
   src = fetchFromGitHub {
-      owner  = "B-Lang-org";
-      repo   = "bsc";
-      rev    = "00185f7960bd1bd5554a1167be9f37e1f18ac454";
-      sha256 = "1bcdhql4cla137d8xr8m2h21dyxv0jpjpalpr5mgj2jxqfsmkbrn";
-    };
+    owner = "B-Lang-org";
+    repo = "bsc";
+    rev = version;
+    sha256 = "0gw8wyp65lpkyfhv3laazz9qypdl8qkp1j7cqp0gv11592a9p5qw";
+  };
 
   enableParallelBuilding = true;
 
-  patches = [ ./libstp_stub_makefile.patch ];
-
-  buildInputs = yices.buildInputs ++ [
-    zlib
-    tcl tk
-    libX11 # tcltk
-    xorg.libXft
-    fontconfig
-  ];
-
-  nativeBuildInputs = [
-    automake autoconf
-    perl
-    flex
-    bison
-    pkg-config
-    ghcWithPackages
-  ];
-
-  checkInputs = [
-    verilog
-  ];
+  outputs = [ "out" "doc" ];
 
+  patches = [ ./libstp_stub_makefile.patch ];
 
   postUnpack = ''
     mkdir -p $sourceRoot/src/vendor/yices/v2.6/yices2
@@ -70,34 +34,90 @@ in stdenv.mkDerivation rec {
   '';
 
   preBuild = ''
+    # XXX: remove
+    set -x
+
     patchShebangs \
       src/Verilog/copy_module.pl \
       src/comp/update-build-version.sh \
       src/comp/update-build-system.sh \
-      src/comp/wrapper.sh
+      src/comp/wrapper.sh \
+
+    # patchShebangs doesn't catch these. 
+    substituteInPlace \
+        testsuite/findfailures.csh \
+        --replace '/bin/tcsh' "${tcsh}/bin/tcsh" \
+        --replace '/bin/csh' "${tcsh}/bin/tcsh"
+
+    substituteInPlace \
+        testsuite/test_list.sh \
+        --replace '/bin/tcsh' "${tcsh}/bin/tcsh" \
+        --replace '/bin/csh' "${tcsh}/bin/tcsh"
 
     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
   '';
 
+  buildInputs = yices.buildInputs ++ [
+    fontconfig
+    libX11 # tcltk
+    tcl
+    tk
+    xorg.libXft
+    zlib
+  ];
+
+  nativeBuildInputs = [
+    automake
+    autoconf
+    asciidoctor
+    bison
+    flex
+    ghcWithPackages
+    perl
+    pkg-config
+    tcsh
+    tex
+  ];
+
   makeFlags = [
+    "release"
     "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";
-
   doCheck = true;
 
+  checkInputs = [ dejagnu gnum4 verilog perl time ];
+
+  checkTarget = if longTests then "check-suite" else "check-smoke";
+
+  checkFlags = [
+    "SYSTEMCTEST=0" # no SystemC support yet. Patches welcome!
+  ];
+
+  installPhase = ''
+    mkdir -p $out
+    mv inst/bin $out
+    mv inst/lib $out
+
+    # fragile, I know.. 
+    mkdir -p $doc/share/doc/bsc
+    mv inst/README $doc/share/doc/bsc 
+    mv inst/ReleaseNotes.* $doc/share/doc/bsc
+    mv inst/doc/*.pdf $doc/share/doc/bsc
+  '';
+
   meta = {
     description = "Toolchain for the Bluespec Hardware Definition Language";
-    homepage    = "https://github.com/B-Lang-org/bsc";
-    license     = lib.licenses.bsd3;
+    homepage = "https://github.com/B-Lang-org/bsc";
+    license = lib.licenses.bsd3;
     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"