Skip to content

Commit

Permalink
Add shell.nix for NixOS users
Browse files Browse the repository at this point in the history
  • Loading branch information
lluchs authored and jackhumbert committed Sep 25, 2017
1 parent 809c925 commit 1ad941e
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 1 deletion.
10 changes: 9 additions & 1 deletion docs/getting_started_build_tools.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,15 @@ Debian/Ubuntu example:
sudo apt-get update
sudo apt-get install gcc unzip wget zip gcc-avr binutils-avr avr-libc dfu-programmer dfu-util gcc-arm-none-eabi binutils-arm-none-eabi libnewlib-arm-none-eabi

# Mac
## Nix

If you're on [NixOS](https://nixos.org/), or have Nix installed on Linux or macOS, run `nix-shell` from the repository root to get a build environment.

By default, this will download compilers for both AVR and ARM. If you don't need both, disable the `avr` or `arm` arguments, e.g.:

nix-shell --arg arm false

## Mac
If you're using [homebrew,](https://brew.sh/) you can use the following commands:

brew tap osx-cross/avr
Expand Down
26 changes: 26 additions & 0 deletions shell.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{ pkgs ? import <nixpkgs> {}
, avr ? true, arm ? true }:

with pkgs;
let
avr_incflags = [
"-isystem ${avrlibc}/avr/include"
"-B${avrlibc}/avr/lib/avr5"
"-L${avrlibc}/avr/lib/avr5"
"-B${avrlibc}/avr/lib/avr35"
"-L${avrlibc}/avr/lib/avr35"
"-B${avrlibc}/avr/lib/avr51"
"-L${avrlibc}/avr/lib/avr51"
];
in

stdenv.mkDerivation {
name = "qmk-firmware";

buildInputs = [ dfu-programmer dfu-util diffutils git ]
++ lib.optional avr [ avrbinutils avrgcc avrlibc ]
++ lib.optional arm [ gcc-arm-embedded ];

CFLAGS = lib.optional avr avr_incflags;
ASFLAGS = lib.optional avr avr_incflags;
}

0 comments on commit 1ad941e

Please sign in to comment.