xdma_nix/xdma.nix

50 lines
1.1 KiB
Nix

{ stdenv
, nukeReferences
, linuxPackages_latest
, kernel ? linuxPackages_latest.kernel
, fetchFromGitHub
, bash
}:
stdenv.mkDerivation {
version = "1.0";
name = "xdma-module-${kernel.modDirVersion}";
buildInputs = [ bash nukeReferences ];
nativeBuildInputs = kernel.moduleBuildDependencies;
src = fetchFromGitHub {
owner = "Xilinx";
repo = "dma_ip_drivers";
rev = "e8ec40374c4c7831195c23109f586ecd03f6b11f";
sha256 = "sha256-k8O0yU9i0IlNvJU2tMFFVx1LLcLzaar2wfPiDChRdzw=";
};
cmakeFlags = [
"-D__LIBXDMA_DEBUG__"
];
postUnpack = ''
cd source
find . -type f -exec sed -i 's|/bin/bash|${bash}/bin/bash|g' {} +
find . -type f -exec sed -i 's|/lib/modules|${kernel.dev}/lib/modules|g' {} +
find . -type f -exec sed -i 's|$(shell uname -r)|${kernel.modDirVersion}|g' {} +
cd XDMA/linux-kernel/xdma
sourceRoot="$(pwd -P)"
'';
buildPhase = ''
make all DEBUG=1
'';
installPhase = ''
mkdir -p $out/lib/modules/$kernelVersion/misc
for x in $(find . -name '*.ko'); do
nuke-refs $x
cp $x $out/lib/modules/$kernelVersion/misc/
done
'';
meta.platforms = [ "x86_64-linux" ];
}