aos/default.nix
Daniel Schwyn 6d444bf552 Main handout
Signed-off-by: Daniel Schwyn <daniel.schwyn@inf.ethz.ch>
2022-03-03 14:57:51 +01:00

81 lines
1.2 KiB
Nix

{ stdenv, fetchgit, haskell, pythonPackages
, autoconf
, automake
, binutils
, coreutils
, cpio
, curl
, gcc5
, gdb
, git
, gmp
, gnugrep
, gnused
, m4
, qemu
, ghc-version ? "ghc801"
, propagate-deps ? false
, use-repo-source ? false
, repo-url ? ""
, repo-commit-id ? ""
, repo-commit-sha256 ? ""
}:
let src-repo = fetchgit {
url = repo-url;
rev = repo-commit-id;
sha256 = repo-commit-sha256;
};
ghc = haskell.packages."${ghc-version}".ghcWithPackages
(haskellPackages: with haskellPackages; [
async
bytestring-trie
ghc-paths
ghc-mtl
haskell-src-exts
parsec
random
]);
deps = [
autoconf
automake
binutils
coreutils
cpio
curl
gcc5
gdb
git
gmp
gnugrep
gnused
m4
qemu
pythonPackages.pexpect
# custom GHC
ghc
];
in
stdenv.mkDerivation {
version = "2016-11-09";
name = "barrelfish";
src = if use-repo-source
then src-repo
else builtins.filterSource
(path: type: baseNameOf path != ".git" && baseNameOf path != "build")
./.;
buildInputs = deps;
propagatedBuildInputs = if propagate-deps
then deps
else [];
description = "The Barrelfish OS";
license = "MIT";
}