Skip to content

Instantly share code, notes, and snippets.

@the-kenny
Created March 12, 2014 17:33
Embed
What would you like to do?
Nix-Expression for baseflight. Run via `nix-shell baseflight.nix', then compile via `make'. Use stm32flash to upload.
{ nixpkgs ? <nixpkgs> }:
let
pkgs = import nixpkgs { };
stdenv = pkgs.stdenv;
gcc-arm-none-eabi = with pkgs.pkgsi686Linux; stdenv.mkDerivation rec {
name = "gcc-arm-none-eabi-4_7-2013q3-20130916";
src = pkgs.fetchurl {
url = "https://launchpad.net/gcc-arm-embedded/4.7/4.7-2013-q3-update/+download/${name}-linux.tar.bz2";
sha256 = "1bd9bi9q80xn2rpy0rn1vvj70rh15kb7dmah0qs4q2rv78fqj40d";
};
# src = pkgs.fetchurl {
# url = "https://launchpad.net/gcc-arm-embedded/4.8/4.8-2013-q4-major/+download/gcc-arm-none-eabi-4_8-2013q4-20131204-linux.tar.bz2";
# sha256 = "1bd9bi9q80xn2rpy0rn1vvj70rh15kb7dmah0qs4q2rv78fqd40d";
# };
buildInputs = [ bzip2 patchelf ];
dontPatchELF = true;
phases = "unpackPhase patchPhase installPhase";
installPhase = ''
mkdir -pv $out
mv * $out
for f in $(find $out)
do
[ -f "$f" ] && patchelf "$f" 2> /dev/null &&
patchelf --set-interpreter ${glibc}/lib/ld-linux.so.2 \
--set-rpath $out/lib:${gcc}/lib \
"$f" || true
done
'';
};
in
stdenv.mkDerivation {
name = "baseflight-dev";
src = ./.;
buildInputs = with pkgs; [
coreutils
gcc-arm-none-eabi
stm32flash
];
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment