62 lines
1.2 KiB
Nix
62 lines
1.2 KiB
Nix
|
{ fetchFromGitHub, runCommand, stdenv }:
|
||
|
|
||
|
let
|
||
|
generic = name: extraAttrs:
|
||
|
stdenv.mkDerivation ({
|
||
|
pname = "WiringPi-${name}";
|
||
|
version = "2020-09-14";
|
||
|
|
||
|
src = fetchFromGitHub (stdenv.lib.importJSON ./src.json);
|
||
|
|
||
|
buildPhase = ''
|
||
|
runHook postBuild
|
||
|
|
||
|
make -C ${name} all
|
||
|
|
||
|
runHook preBuild
|
||
|
'';
|
||
|
|
||
|
installPhase = ''
|
||
|
runHook preInstall
|
||
|
|
||
|
export DESTDIR=$out
|
||
|
export PREFIX=
|
||
|
export LDCONFIG=true
|
||
|
|
||
|
make -C ${name} install
|
||
|
|
||
|
runHook postInstall
|
||
|
'';
|
||
|
} // extraAttrs);
|
||
|
|
||
|
fakeutils = runCommand "fakeutils-1.0" {} /* sh */ ''
|
||
|
mkdir -p $out/bin
|
||
|
for name in chown chmod; do
|
||
|
touch $out/bin/$name
|
||
|
chmod +x $out/bin/$name
|
||
|
done
|
||
|
'';
|
||
|
in
|
||
|
|
||
|
rec {
|
||
|
wiringPi = generic "wiringPi" {};
|
||
|
wiringPiDev = generic "devLib" {
|
||
|
buildInputs = [
|
||
|
wiringPi
|
||
|
];
|
||
|
};
|
||
|
gpio = generic "gpio" {
|
||
|
preInstall = ''
|
||
|
# fakeutils cannot be buildInputs because they have to override existing
|
||
|
# executables and therefore need to be prepended to the search path.
|
||
|
PATH=${fakeutils}/bin:$PATH
|
||
|
|
||
|
mkdir -p $out/bin
|
||
|
'';
|
||
|
buildInputs = [
|
||
|
wiringPi
|
||
|
wiringPiDev
|
||
|
];
|
||
|
};
|
||
|
}
|