summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2019-08-24 18:37:19 +0200
committerDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2019-08-25 01:20:09 +0200
commit674114acead32eed4c4b3672d3588edd2f83db5c (patch)
treed510cca00f1e1dabb0b719a804bad111ee096014
parent9d677f52a3b29dedf9227e77de3db065cbb072ca (diff)
pcr: Add free software FPGA toolchain
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
-rw-r--r--pcr/arachne-pnr-git/PKGBUILD32
-rw-r--r--pcr/icestorm-git/PKGBUILD49
-rw-r--r--pcr/nextpnr-git/PKGBUILD51
-rw-r--r--pcr/trellis/PKGBUILD45
-rw-r--r--pcr/yosys-git/LICENSE15
-rw-r--r--pcr/yosys-git/PKGBUILD48
6 files changed, 240 insertions, 0 deletions
diff --git a/pcr/arachne-pnr-git/PKGBUILD b/pcr/arachne-pnr-git/PKGBUILD
new file mode 100644
index 000000000..228a07e3a
--- /dev/null
+++ b/pcr/arachne-pnr-git/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer(AUR): Sebastian Bøe <sebastianbooe@gmail.com>
+# Maintainer: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
+# parabola changes and rationale:
+# - Added armv7h and i686 architectures support
+pkgname=arachne-pnr-git
+pkgrel=1
+pkgver=r328.c40fb22
+pkgdesc=" Place and route tool for FPGAs"
+arch=('armv7h' 'i686' 'x86_64')
+url="https://github.com/cseed/arachne-pnr"
+license=('GPL2')
+depends=('icestorm-git')
+makedepends=('git')
+provides=("${pkgname%-git}")
+conflicts=("${pkgname%-git}")
+source=('git+https://github.com/cseed/arachne-pnr.git')
+md5sums=('SKIP')
+
+pkgver() {
+ cd "$srcdir/${pkgname%-git}"
+ printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
+}
+
+build() {
+ cd "$srcdir/${pkgname%-git}"
+ make ICEBOX=/usr/share/icebox PREFIX=/usr
+}
+
+package() {
+ cd "$srcdir/${pkgname%-git}"
+ make ICEBOX=/usr/share/icebox PREFIX=$pkgdir/usr install
+}
diff --git a/pcr/icestorm-git/PKGBUILD b/pcr/icestorm-git/PKGBUILD
new file mode 100644
index 000000000..7339c9c9d
--- /dev/null
+++ b/pcr/icestorm-git/PKGBUILD
@@ -0,0 +1,49 @@
+# Maintainer (AUR): Sebastian Bøe <sebastianbooe@gmail.com>
+# Maintainer: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
+# parabola changes and rationale:
+# - Added armv7h and i686 architectures support
+pkgname=icestorm-git
+pkgver=r726.9594931
+pkgrel=1
+pkgdesc="Lattice iCE40 FPGAs Bitstream Documentation (Reverse Engineered)"
+arch=('armv7h' 'i686' 'x86_64')
+url="http://www.clifford.at/icestorm/"
+license=('custom:ISC')
+depends=('python' 'libftdi-compat')
+makedepends=('git')
+provides=("${pkgname%-git}")
+conflicts=("${pkgname%-git}")
+source=('git+https://github.com/cliffordwolf/icestorm.git')
+md5sums=('SKIP')
+_prefix="/usr"
+
+pkgver() {
+ cd "$srcdir/${pkgname%-git}"
+ printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
+}
+
+build() {
+ cd "$srcdir/${pkgname%-git}"
+
+ # Icestorm defaults to clang. We prefer to use gcc because it is
+ # more widespread on Arch (gcc is in base-devel).
+ CXX=gcc
+
+ make \
+ CXX=$CXX \
+ PREFIX=$_prefix
+}
+
+package() {
+ cd "$srcdir/${pkgname%-git}"
+
+ # Move the license file into place
+ install -dm 755 "$pkgdir/usr/share/licenses/$pkgname"
+ install -m 644 README "$pkgdir/usr/share/licenses/$pkgname"
+
+ # Install the package
+ make \
+ DESTDIR="$pkgdir" \
+ PREFIX=$_prefix \
+ install
+}
diff --git a/pcr/nextpnr-git/PKGBUILD b/pcr/nextpnr-git/PKGBUILD
new file mode 100644
index 000000000..78a8dcded
--- /dev/null
+++ b/pcr/nextpnr-git/PKGBUILD
@@ -0,0 +1,51 @@
+# Maintainer(AUR): Graham Edgecombe <gpe@grahamedgecombe.com>
+# Maintainer: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
+# parabola changes and rationale:
+# no changes.
+pkgname=nextpnr-git
+pkgver=r2190.c192ba2
+pkgrel=1
+pkgdesc='Portable FPGA place and route tool'
+arch=('i686' 'x86_64')
+url='https://github.com/YosysHQ/nextpnr'
+license=('custom:ISC')
+depends=('boost-libs' 'python' 'qt5-base')
+makedepends=('boost' 'cmake' 'eigen' 'git' 'icestorm' 'trellis')
+provides=('nextpnr')
+conflicts=('nextpnr')
+source=('nextpnr::git+https://github.com/YosysHQ/nextpnr.git')
+sha256sums=('SKIP')
+
+pkgver() {
+ cd "$srcdir/nextpnr"
+ printf 'r%s.%s' "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
+}
+
+build() {
+ cd "$srcdir/nextpnr"
+
+ mkdir -p build
+ cd build
+
+ cmake \
+ -DARCH=generic\;ice40\;ecp5 \
+ -DICEBOX_ROOT=/usr/share/icebox \
+ -DTRELLIS_ROOT=/usr/share/trellis \
+ -DBUILD_TESTS=ON \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DUSE_OPENMP=ON \
+ ..
+ make
+}
+
+check() {
+ cd "$srcdir/nextpnr/build"
+ make test
+}
+
+package() {
+ cd "$srcdir/nextpnr/build"
+ make DESTDIR="$pkgdir" install
+ install -Dm644 ../COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+}
diff --git a/pcr/trellis/PKGBUILD b/pcr/trellis/PKGBUILD
new file mode 100644
index 000000000..16eb6d30f
--- /dev/null
+++ b/pcr/trellis/PKGBUILD
@@ -0,0 +1,45 @@
+# Maintainer (AUR): Graham Edgecombe <gpe@grahamedgecombe.com>
+# Maintainer: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
+# parabola changes and rationale:
+# no changes.
+
+pkgname=trellis
+pkgver=1.0
+_databasever=d0b219af41ae3da6150645fbc5cc5613b530603f
+pkgrel=1
+pkgdesc='Tools and scripts which allow you to document the bit-stream format of Lattice ECP5 series FPGAs'
+arch=('i686' 'x86_64')
+url='https://github.com/SymbiFlow/prjtrellis'
+license=('custom:ISC')
+depends=('boost-libs' 'python')
+makedepends=('cmake' 'rsync' 'boost')
+source=("https://github.com/SymbiFlow/prjtrellis/archive/$pkgver.tar.gz"
+ "https://github.com/SymbiFlow/prjtrellis-db/archive/$_databasever.tar.gz")
+sha256sums=('6cfa12b7bf1ad5aed2b711fdfdd5ade6a2047f4733a704cb0b04634d350a4e26'
+ '1f1b71741e8b70af777561a1422be8a01992ea46b363da24b7b97e41fa0fa5c5')
+
+prepare() {
+ cd "$srcdir/prjtrellis-$pkgver"
+ rsync -a --exclude='.*' "$srcdir/prjtrellis-db-$_databasever/" database/
+}
+
+build() {
+ cd "$srcdir/prjtrellis-$pkgver/libtrellis"
+ cmake -DCMAKE_INSTALL_PREFIX=/usr .
+ make
+}
+
+check() {
+ cd "$srcdir/prjtrellis-$pkgver/libtrellis/tests"
+ ./run_all.sh
+}
+
+package() {
+ cd "$srcdir/prjtrellis-$pkgver/libtrellis"
+ make DESTDIR="$pkgdir" install
+ mv "$pkgdir/usr/lib64" "$pkgdir/usr/lib"
+ install -Dm644 "$srcdir/prjtrellis-$pkgver/COPYING" "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+
+ # used by the examples to convert the bitstreams to SVF files for programming
+ install -D "$srcdir/prjtrellis-$pkgver/tools/bit_to_svf.py" "$pkgdir/usr/share/trellis/tools/bit_to_svf.py"
+}
diff --git a/pcr/yosys-git/LICENSE b/pcr/yosys-git/LICENSE
new file mode 100644
index 000000000..d5b50f7fc
--- /dev/null
+++ b/pcr/yosys-git/LICENSE
@@ -0,0 +1,15 @@
+yosys -- Yosys Open SYnthesis Suite
+
+Copyright (C) 2012 - 2015 Clifford Wolf <clifford@clifford.at>
+
+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.
diff --git a/pcr/yosys-git/PKGBUILD b/pcr/yosys-git/PKGBUILD
new file mode 100644
index 000000000..985e9d456
--- /dev/null
+++ b/pcr/yosys-git/PKGBUILD
@@ -0,0 +1,48 @@
+# Maintainer (AUR): Patrick Lloyd <$(base64 --decode <<<'cGF0cmlja0BsbG95ZC5zaAo=')>
+# Contributor (AUR): Sebastian Bøe <$(base64 --decode <<<'c2ViYXN0aWFuYm9vZUBnbWFpbC5jb20K')>
+# Contributor (AUR): Darren Wu <$(base64 --decode <<<'ZGFycmVuMTk5NzA4MTBAZ21haWwuY29tCg==')>
+# Maintainer: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
+# parabola changes and rationale:
+# no changes.
+
+pkgname=yosys-git
+pkgrel=1
+pkgver=r6611.dc9c47b5
+pkgdesc='A framework for RTL synthesis'
+arch=('x86_64' 'i686')
+url='http://www.clifford.at/yosys/'
+license=('custom:ISC')
+provides=("yosys")
+conflicts=("yosys")
+depends=('tcl' 'libffi' 'python' 'boost-libs')
+optdepends=('graphviz: Schematics display support' 'xdot: Design netlist display support')
+makedepends=('git' 'mercurial' 'boost')
+source=('git+https://github.com/cliffordwolf/yosys.git'
+ 'git+https://github.com/berkeley-abc/abc.git'
+ 'LICENSE')
+sha512sums=('SKIP'
+ 'SKIP'
+ 'a3202289ff7828c55d3ec3e22d23ed78a34fcae165a7c666d71d3cedd9abe06f638a09750d8c2d43dfca5781f1b32a616f439c3713a12265c02473f88c0f426d')
+
+build(){
+ cd ${srcdir}/yosys
+ mv ../abc ./
+ make config-gcc
+ echo "ENABLE_LIBYOSYS=1" >> Makefile.conf
+ echo "ENABLE_PYOSYS=1" >> Makefile.conf
+ make
+}
+
+pkgver() {
+ cd "$srcdir/${pkgname%-git}"
+ printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
+}
+
+package() {
+ cd ${srcdir}/yosys
+ make PREFIX=$pkgdir/usr/ PYTHON_PREFIX=$pkgdir/usr/ install
+
+ install -D -m 644 \
+ "${srcdir}/LICENSE" \
+ "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}