aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukas Werling <lukas.werling@gmail.com>2017-09-24 21:34:47 +0200
committerJack Humbert <jack.humb@gmail.com>2017-09-25 13:14:20 -0400
commit1ad941e98454237d269057d5f68cc1e76ca35dd4 (patch)
treec7f97fcc2107151fdbcb6389aa8f64c1deea1db4
parent809c9258c11d8e502004f3187d8c22e23bf69dec (diff)
downloadqmk_firmware-1ad941e98454237d269057d5f68cc1e76ca35dd4.tar.gz
qmk_firmware-1ad941e98454237d269057d5f68cc1e76ca35dd4.zip
Add shell.nix for NixOS users
-rw-r--r--docs/getting_started_build_tools.md10
-rw-r--r--shell.nix26
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
41If 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
43By 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
40If you're using [homebrew,](http://brew.sh/) you can use the following commands: 48If 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
4with pkgs;
5let
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 ];
15in
16
17stdenv.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}