From 674114acead32eed4c4b3672d3588edd2f83db5c Mon Sep 17 00:00:00 2001 From: Denis 'GNUtoo' Carikli Date: Sat, 24 Aug 2019 18:37:19 +0200 Subject: pcr: Add free software FPGA toolchain Signed-off-by: Denis 'GNUtoo' Carikli --- pcr/arachne-pnr-git/PKGBUILD | 32 +++++++++++++++++++++++++++ pcr/icestorm-git/PKGBUILD | 49 ++++++++++++++++++++++++++++++++++++++++++ pcr/nextpnr-git/PKGBUILD | 51 ++++++++++++++++++++++++++++++++++++++++++++ pcr/trellis/PKGBUILD | 45 ++++++++++++++++++++++++++++++++++++++ pcr/yosys-git/LICENSE | 15 +++++++++++++ pcr/yosys-git/PKGBUILD | 48 +++++++++++++++++++++++++++++++++++++++++ 6 files changed, 240 insertions(+) create mode 100644 pcr/arachne-pnr-git/PKGBUILD create mode 100644 pcr/icestorm-git/PKGBUILD create mode 100644 pcr/nextpnr-git/PKGBUILD create mode 100644 pcr/trellis/PKGBUILD create mode 100644 pcr/yosys-git/LICENSE create mode 100644 pcr/yosys-git/PKGBUILD (limited to 'pcr') 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 +# Maintainer: Denis 'GNUtoo' Carikli +# 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 +# Maintainer: Denis 'GNUtoo' Carikli +# 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 +# Maintainer: Denis 'GNUtoo' Carikli +# 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 +# Maintainer: Denis 'GNUtoo' Carikli +# 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 + +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 +# 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" +} -- cgit v1.2.3