aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSerge Bazanski <serge@bazanski.pl>2018-07-13 22:02:53 +0100
committerSerge Bazanski <serge@bazanski.pl>2018-07-13 22:03:57 +0100
commit7db6817a0b5afcf89e3c7eafc031a7eec59ee24e (patch)
treea7d35b2e2b34f95e86ff625f65c31ebb2e2b82ed
parenta8c84e90a39c54174dd24b5b76bd17aed8311481 (diff)
downloadnextpnr-7db6817a0b5afcf89e3c7eafc031a7eec59ee24e.tar.gz
nextpnr-7db6817a0b5afcf89e3c7eafc031a7eec59ee24e.tar.bz2
nextpnr-7db6817a0b5afcf89e3c7eafc031a7eec59ee24e.zip
Add Nix(OS) support
-rw-r--r--README.md15
-rw-r--r--default.nix28
-rw-r--r--nextpnr.nix53
3 files changed, 96 insertions, 0 deletions
diff --git a/README.md b/README.md
index da38500d..eb96bd1c 100644
--- a/README.md
+++ b/README.md
@@ -78,6 +78,21 @@ Running
`./nextpnr-ecp5 --json ecp5/synth/blinky.json --basecfg ecp5/synth/ulx3s_empty.config --bit ecp5/synth/ulx3s.bit`
- Note that `ulx3s_empty.config` contains fixed/unknown bits to be copied to the output bitstream
- You can also use `--textcfg out.config` to write a text file describing the bitstream for debugging
+
+Nix
+---
+
+As an alternative to getting the prerequisites yourself, you can use Nix/NixOS and run the following to get dropped into a shell with nextpnr built:
+
+ nix-shell
+
+Or, you can add the `nextpnr.nix` file into your /etc/nixos/configuration.nix:
+
+ environment.systemPackages = [
+ ...
+ ( import /home/q3k/Software/nextpnr/nextpnr.nix )
+ ...
+ ];
Notes
-------
diff --git a/default.nix b/default.nix
new file mode 100644
index 00000000..664e3669
--- /dev/null
+++ b/default.nix
@@ -0,0 +1,28 @@
+#
+# nextpnr -- Next Generation Place and Route
+#
+# Copyright (C) 2018 Serge Bazanski <q3k@symbioticeda.com>
+#
+# Permission to use, copy, modify, and/or distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
+
+
+with import <nixpkgs> {};
+
+stdenv.mkDerivation rec {
+ name = "env";
+ env = buildEnv { name = name; paths = buildInputs; };
+ buildInputs = [
+ ( import ./nextpnr.nix )
+ ];
+}
diff --git a/nextpnr.nix b/nextpnr.nix
new file mode 100644
index 00000000..97097749
--- /dev/null
+++ b/nextpnr.nix
@@ -0,0 +1,53 @@
+#
+# nextpnr -- Next Generation Place and Route
+#
+# Copyright (C) 2018 Serge Bazanski <q3k@symbioticeda.com>
+#
+# Permission to use, copy, modify, and/or distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
+
+with import <nixpkgs> {};
+
+let
+ gitRev = "a8c84e90a39c54174dd24b5b76bd17aed8311481";
+ gitBranch = "master";
+in
+ stdenv.mkDerivation rec {
+ name = "nextpnr-${version}";
+ version = "1.0.0";
+
+ src = ./.;
+
+ buildInputs = [
+ python3 (boost.override { python = python3; })
+ qt5.qtbase
+ ];
+
+ nativeBuildInputs = [ cmake icestorm ];
+
+ cmakeFlags= [
+ "-DARCH=ice40"
+ "-DICEBOX_ROOT=${icestorm}/share/icebox"
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "A computer-aided design (CAD) tool from a parallel universe";
+ homepage = "https://github.com/mkeeter/antimony";
+ license = licenses.bsd0;
+ platforms = platforms.linux;
+ };
+ }
+
+