Download raw body.
New port cad/nextpnr
On 2026/06/09 00:53, Thomas Dettbarn wrote:
> For your consideration, please find the port for cad/nextpnr
> attached to this email.
> It is part of the yosys & nextpnr & openfpgaloader toolchain,
> which can be used for FPGA design and synthesis on OpenBSD.
>
> Thomas
>
>
> diff --git a/cad/nextpnr/Makefile b/cad/nextpnr/Makefile
> new file mode 100644
> index 00000000000..eb31acf38fe
> --- /dev/null
> +++ b/cad/nextpnr/Makefile
> @@ -0,0 +1,34 @@
> +###############################################
> +## WARNING: This build requires a lot of RAM ##
> +## Please update /etc/login.conf and set ##
> +## daemon:datasize=16384M ##
> +###############################################
erk. don't suppose it's possible to track down which compilation uses
so much ram and see if a lower optimisation level for that file would
help?
port builds are normally done with class 'pbuild' which on amd64 has
default ":datasize-cur=12G:" ...
> +
> +COMMENT= Portable FPGA place and route tool
lowercase at start
> +CATEGORIES= cad
> +V= 0.10a
> +REVISION= 0
> +DISTNAME= nextpnr-${V}
> +
> +GH_ACCOUNT= YosysHQ
> +GH_PROJECT= nextpnr
> +GH_COMMIT= 32324500c4ae33670df429d2e8e2a83b51b062ab
same comment as before about version numbering
> +HOMEPAGE= https://github.com/YosysHQ/nextpnr
> +MAINTAINER= Thomas Dettbarn <dettus@dettus.net>
> +# ISC License
> +PERMIT_PACKAGE= yes
> +
> +
> +MODULES= devel/cmake
normally put a blank line before the license comment (and just one
blank line not two after)
> +NO_TEST= Yes
> +
> +LIB_DEPENDS= math/eigen3
> +BUILD_DEPENDS= cad/prjpeppercorn
> +BUILD_DEPENDS+= lang/python/3
don't add the python dep like this, add lang/python to MODULES instead
> +
> +CONFIGURE_ARGS= -DARCH="generic;himbaechel" -DHIMBAECHEL_UARCH="gatemate" -DHIMBAECHEL_PEPPERCORN_PATH=/usr/local/share/prjpeppercorn-1.13
split onto lines i.e.
CONFIGURE_ARGS= -DARCH="generic;himbaechel" \
-DHIMBAECHEL_UARCH="gatemate" \
...
do you really need the version number in the prjpeppercorn dir?
apart from being a pain because you'll need to touch multiple ports
after an update, there will also be churn in the PLIST files, and
pkg_add will need to remove/reinstall files even if there was no
change to the contents.
> +CONFIGURE_ARGS= -DARCH="generic;himbaechel" -DHIMBAECHEL_UARCH="gatemate" -DHIMBAECHEL_PEPPERCORN_PATH=/usr/local/share/prjpeppercorn-1.13
> +
> +
> +.include <bsd.port.mk>
> +
> diff --git a/cad/nextpnr/distinfo b/cad/nextpnr/distinfo
> new file mode 100644
> index 00000000000..6a0ca990755
> --- /dev/null
> +++ b/cad/nextpnr/distinfo
> @@ -0,0 +1,2 @@
> +SHA256 (nextpnr-0.10a-32324500.tar.gz) = Qu2EnnbMXCyPFmAJs+q1HF0lUCMNG7jmNbT3FB/TGGs=
> +SIZE (nextpnr-0.10a-32324500.tar.gz) = 3524943
> diff --git a/cad/nextpnr/pkg/DESCR b/cad/nextpnr/pkg/DESCR
> new file mode 100644
> index 00000000000..217791fd790
> --- /dev/null
> +++ b/cad/nextpnr/pkg/DESCR
> @@ -0,0 +1,2 @@
> +nextpnr aims to be a vendor neutral, timing driven, FOSS FPGA place and
> +route tool.
> diff --git a/cad/nextpnr/pkg/PLIST b/cad/nextpnr/pkg/PLIST
> new file mode 100644
> index 00000000000..63fd94f8a9c
> --- /dev/null
> +++ b/cad/nextpnr/pkg/PLIST
> @@ -0,0 +1,7 @@
> +@bin bin/nextpnr-generic
> +@bin bin/nextpnr-himbaechel
> +share/nextpnr/
> +share/nextpnr/himbaechel/
> +share/nextpnr/himbaechel/gatemate/
> +share/nextpnr/himbaechel/gatemate/chipdb-CCGM1A1.bin
> +share/nextpnr/himbaechel/gatemate/chipdb-CCGM1A2.bin
>
New port cad/nextpnr