2019-09-13 12:08:40 +02:00
|
|
|
{ nixpkgs }:
|
2019-07-30 12:48:01 +02:00
|
|
|
|
|
|
|
with builtins;
|
|
|
|
|
2019-09-13 12:08:40 +02:00
|
|
|
nixpkgs.stdenv.mkDerivation {
|
2019-07-30 12:48:01 +02:00
|
|
|
name = "genode";
|
|
|
|
outputs = [ "out" "dev" ];
|
|
|
|
version = "19.07";
|
|
|
|
|
2019-09-19 17:59:32 +02:00
|
|
|
LIBCXX = nixpkgs.llvmPackages.libcxx;
|
|
|
|
LIBCXXABI = nixpkgs.llvmPackages.libcxxabi;
|
|
|
|
LIBUNWIND = nixpkgs.llvmPackages.libunwind;
|
2019-09-13 12:08:40 +02:00
|
|
|
HOST_LIBC = nixpkgs.buildPackages.glibc.dev;
|
2019-07-30 12:48:01 +02:00
|
|
|
|
|
|
|
src = nixpkgs.fetchgit
|
2019-09-01 15:27:43 +02:00
|
|
|
{ url = "https://git.sr.ht/~ehmry/genode";
|
2019-07-30 12:48:01 +02:00
|
|
|
rev = "edb117c13b0cde38ba66ffaaa19a798fbb6d044d";
|
|
|
|
sha256 = "0rkpsh07hdv4r5pgyw707zhv546h96c6h150cdw01hi54jq8c0dr";
|
|
|
|
fetchSubmodules = false;
|
|
|
|
};
|
|
|
|
|
|
|
|
setupHook = ./../tool/setup-hooks.sh;
|
|
|
|
|
|
|
|
depsBuildBuild = with nixpkgs.buildPackages;
|
2019-09-13 12:08:40 +02:00
|
|
|
[ stdenv.glibc.dev
|
|
|
|
tup
|
2019-07-30 12:48:01 +02:00
|
|
|
pkgconfig
|
|
|
|
];
|
|
|
|
|
|
|
|
configurePhase =
|
|
|
|
''
|
|
|
|
# Populate the SDK headers
|
|
|
|
mkdir -p $out $dev/include
|
|
|
|
cp -r repos/base/src/ld $dev/ld
|
|
|
|
cp -r repos/base/include $dev/include/base
|
|
|
|
cp -r repos/os/include $dev/include/os
|
|
|
|
cp -r repos/libports/include $dev/include/libports
|
|
|
|
cp -r repos/gems/include $dev/include/gems
|
|
|
|
|
|
|
|
# Configure Tup
|
|
|
|
echo CONFIG_NIX= >> tup.config
|
|
|
|
echo CONFIG_NIX_OUTPUTS_OUT=$out >> tup.config
|
|
|
|
echo CONFIG_NIX_OUTPUTS_DEV=$dev >> tup.config
|
|
|
|
|
2019-09-13 12:08:40 +02:00
|
|
|
# Disable Gems build
|
|
|
|
find repos/gems -name Tupfile -delete
|
|
|
|
|
2019-07-30 12:48:01 +02:00
|
|
|
# Scan repository and generate script
|
|
|
|
rm Tupfile # skip the dhall stuff
|
|
|
|
tup init
|
|
|
|
tup generate buildPhase.sh
|
|
|
|
|
|
|
|
# Redirect artifacts to Nix store
|
|
|
|
ln -s $out out
|
|
|
|
ln -s $dev dev
|
|
|
|
'';
|
|
|
|
|
|
|
|
buildPhase =
|
|
|
|
''
|
2019-09-13 12:08:40 +02:00
|
|
|
set -v
|
2019-07-30 12:48:01 +02:00
|
|
|
source buildPhase.sh
|
2019-09-13 12:08:40 +02:00
|
|
|
set +v
|
2019-07-30 12:48:01 +02:00
|
|
|
'';
|
|
|
|
|
|
|
|
installPhase =
|
|
|
|
''
|
|
|
|
touch $dev/.genode
|
|
|
|
for pc in $dev/lib/pkgconfig/*.pc
|
|
|
|
do
|
|
|
|
sed -i "s|-l:|$dev/lib/|g" $pc
|
|
|
|
done
|
|
|
|
'';
|
|
|
|
|
|
|
|
shellHook =
|
|
|
|
''
|
|
|
|
export PROMPT_DIRTRIM=2
|
|
|
|
export PS1="\[\033[1;30m\]Genode-dev [\[\033[1;37m\]\w\[\033[1;30m\]] $\[\033[0m\] "
|
|
|
|
export PS2="\[\033[1;30m\]>\[\033[0m\] "
|
|
|
|
'';
|
|
|
|
}
|