diff options
author | Lukas Werling <lukas.werling@gmail.com> | 2017-09-24 21:34:47 +0200 |
---|---|---|
committer | Jack Humbert <jack.humb@gmail.com> | 2017-09-25 13:14:20 -0400 |
commit | 1ad941e98454237d269057d5f68cc1e76ca35dd4 (patch) | |
tree | c7f97fcc2107151fdbcb6389aa8f64c1deea1db4 | |
parent | 809c9258c11d8e502004f3187d8c22e23bf69dec (diff) | |
download | qmk_firmware-1ad941e98454237d269057d5f68cc1e76ca35dd4.tar.gz qmk_firmware-1ad941e98454237d269057d5f68cc1e76ca35dd4.zip |
Add shell.nix for NixOS users
-rw-r--r-- | docs/getting_started_build_tools.md | 10 | ||||
-rw-r--r-- | shell.nix | 26 |
2 files changed, 35 insertions, 1 deletions
diff --git a/docs/getting_started_build_tools.md b/docs/getting_started_build_tools.md index 10c0b6984..0617252b2 100644 --- a/docs/getting_started_build_tools.md +++ b/docs/getting_started_build_tools.md | |||
@@ -36,7 +36,15 @@ Debian/Ubuntu example: | |||
36 | sudo apt-get update | 36 | sudo apt-get update |
37 | 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 | 37 | 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 |
38 | 38 | ||
39 | # Mac | 39 | ## Nix |
40 | |||
41 | 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. | ||
42 | |||
43 | 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.: | ||
44 | |||
45 | nix-shell --arg arm false | ||
46 | |||
47 | ## Mac | ||
40 | If you're using [homebrew,](http://brew.sh/) you can use the following commands: | 48 | If you're using [homebrew,](http://brew.sh/) you can use the following commands: |
41 | 49 | ||
42 | brew tap osx-cross/avr | 50 | brew tap osx-cross/avr |
diff --git a/shell.nix b/shell.nix new file mode 100644 index 000000000..302899c52 --- /dev/null +++ b/shell.nix | |||
@@ -0,0 +1,26 @@ | |||
1 | { pkgs ? import <nixpkgs> {} | ||
2 | , avr ? true, arm ? true }: | ||
3 | |||
4 | with pkgs; | ||
5 | let | ||
6 | avr_incflags = [ | ||
7 | "-isystem ${avrlibc}/avr/include" | ||
8 | "-B${avrlibc}/avr/lib/avr5" | ||
9 | "-L${avrlibc}/avr/lib/avr5" | ||
10 | "-B${avrlibc}/avr/lib/avr35" | ||
11 | "-L${avrlibc}/avr/lib/avr35" | ||
12 | "-B${avrlibc}/avr/lib/avr51" | ||
13 | "-L${avrlibc}/avr/lib/avr51" | ||
14 | ]; | ||
15 | in | ||
16 | |||
17 | stdenv.mkDerivation { | ||
18 | name = "qmk-firmware"; | ||
19 | |||
20 | buildInputs = [ dfu-programmer dfu-util diffutils git ] | ||
21 | ++ lib.optional avr [ avrbinutils avrgcc avrlibc ] | ||
22 | ++ lib.optional arm [ gcc-arm-embedded ]; | ||
23 | |||
24 | CFLAGS = lib.optional avr avr_incflags; | ||
25 | ASFLAGS = lib.optional avr avr_incflags; | ||
26 | } | ||