pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Add the nextpnr package from YosysHQ.



Module Name:	pkgsrc-wip
Committed By:	Lloyd Parkes <lloyd%must-have-coffee.gen.nz@localhost>
Pushed By:	lloyd
Date:		Sat Oct 29 14:08:47 2022 +1300
Changeset:	8fa6f4b2a6f823cdb52e1fe9d90b6b06889e1b3c

Added Files:
	nextpnr/DESCR
	nextpnr/Makefile
	nextpnr/PLIST
	nextpnr/distinfo
	nextpnr/options.mk

Log Message:
Add the nextpnr package from YosysHQ.

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=8fa6f4b2a6f823cdb52e1fe9d90b6b06889e1b3c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 nextpnr/DESCR      | 17 ++++++++++++++++
 nextpnr/Makefile   | 43 ++++++++++++++++++++++++++++++++++++++++
 nextpnr/PLIST      |  4 ++++
 nextpnr/distinfo   |  5 +++++
 nextpnr/options.mk | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 126 insertions(+)

diffs:
diff --git a/nextpnr/DESCR b/nextpnr/DESCR
new file mode 100644
index 0000000000..943b4eaab7
--- /dev/null
+++ b/nextpnr/DESCR
@@ -0,0 +1,17 @@
+nextpnr aims to be a vendor neutral, timing driven, FOSS FPGA place
+and route tool.
+
+Currently nextpnr supports:
+
+* Lattice iCE40 devices supported by Project IceStorm
+* Lattice ECP5 devices supported by Project Trellis
+* Lattice Nexus devices supported by Project Oxide
+* Gowin LittleBee devices supported by Project Apicula
+* (experimental) Cyclone V devices supported by Mistral
+* (experimental) Lattice MachXO2 devices supported by Project Trellis
+* (experimental) a "generic" back-end for user-defined architectures
+
+There is some work in progress towards support for Xilinx devices but
+it is not upstream and not intended for end users at the present
+time. We hope to see more FPGA families supported in the future. We
+would love your help in developing this awesome new project!
diff --git a/nextpnr/Makefile b/nextpnr/Makefile
new file mode 100644
index 0000000000..da9d7c8151
--- /dev/null
+++ b/nextpnr/Makefile
@@ -0,0 +1,43 @@
+# $NetBSD$
+
+DISTNAME=	nextpnr-0.4
+PKGNAME=	${PYPKGPREFIX}-${DISTNAME}
+CATEGORIES=	devel
+MASTER_SITES=	${MASTER_SITE_GITHUB:=YosysHQ/}
+GITHUB_PROJECT=	nextpnr
+GITHUB_TAG=	${DISTNAME}
+
+MAINTAINER=	lloyd%must-have-coffee.gen.nz@localhost
+HOMEPAGE=	https://github.com/YosysHQ/nextpnr
+COMMENT=	Portable FPGA place and route tool
+LICENSE=	isc
+
+# Need an option for QT
+
+USE_LANGUAGES=	c c++14
+USE_CMAKE=	yes
+
+PYTHON_VERSIONS_INCOMPATIBLE=	27
+
+.include "options.mk"
+
+PLIST_VARS+=	ice40 generic ecp5
+
+.if !empty(PKG_OPTIONS:Mice40) || !empty(PKG_OPTIONS:Mall)
+PLIST.ice40=	yes
+.endif
+
+.if !empty(PKG_OPTIONS:Mgeneric) || !empty(PKG_OPTIONS:Mall)
+PLIST.generic=	yes
+.endif
+
+.if !empty(PKG_OPTIONS:Mecp5) || !empty(PKG_OPTIONS:Mall)
+PLIST.ecp5=	yes
+.endif
+
+.include "../../lang/python/application.mk"
+
+.include "../../math/eigen3/buildlink3.mk"
+.include "../../devel/boost-headers/buildlink3.mk"
+.include "../../devel/boost-libs/buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/nextpnr/PLIST b/nextpnr/PLIST
new file mode 100644
index 0000000000..35f76ce02a
--- /dev/null
+++ b/nextpnr/PLIST
@@ -0,0 +1,4 @@
+@comment $NetBSD$
+${PLIST.ice40}bin/nextpnr-ice40
+${PLIST.generic}bin/nextpnr-generic
+${PLIST.ecp5}bin/nextpnr-ecp5
diff --git a/nextpnr/distinfo b/nextpnr/distinfo
new file mode 100644
index 0000000000..c462cacc5b
--- /dev/null
+++ b/nextpnr/distinfo
@@ -0,0 +1,5 @@
+$NetBSD$
+
+BLAKE2s (nextpnr-0.4.tar.gz) = 439b61f2c064ed57092e2e8e6134294c9392395f7db79d2d59b00c000bdcd153
+SHA512 (nextpnr-0.4.tar.gz) = 9af65b3e7bdbc1f23dd8a6ed8446e29b51039c3c9d8316cae355e584173f972e8f547864563ab86dadc5fa952798020e763e694adfddc02c9e72d8b473f68031
+Size (nextpnr-0.4.tar.gz) = 4460419 bytes
diff --git a/nextpnr/options.mk b/nextpnr/options.mk
new file mode 100644
index 0000000000..a578d4ece8
--- /dev/null
+++ b/nextpnr/options.mk
@@ -0,0 +1,57 @@
+# $NetBSD$
+
+PKG_OPTIONS_VAR=		PKG_OPTIONS.nextpnr
+
+PKG_OPTIONS_REQUIRED_GROUPS=	arch
+PKG_OPTIONS_GROUP.arch=		all
+#PKG_OPTIONS_GROUP.arch+=	all+alpha
+PKG_OPTIONS_GROUP.arch+=	generic ice40 ecp5 # stable
+# PKG_OPTIONS_GROUP.arch+=	gowin fpgainterchange machxo2 mistral # alpha
+
+PKG_SUPPORTED_OPTIONS=		x11
+PKG_SUGGESTED_OPTIONS=		ice40
+
+.include "../../mk/bsd.options.mk"
+
+.if !empty(PKG_OPTIONS:Mall)
+CMAKE_ARGS+=			-DARCH=all
+# .elif !empty(PKG_OPTIONS:Mall+alpha)
+# CMAKE_ARGS+=			-DARCH=all+alpha
+.elif !empty(PKG_OPTIONS:Mgeneric)
+CMAKE_ARGS+=			-DARCH=generic
+.elif !empty(PKG_OPTIONS:Mice40)
+CMAKE_ARGS+=			-DARCH=ice40
+.elif !empty(PKG_OPTIONS:Mecp5)
+CMAKE_ARGS+=			-DARCH=ecp5
+# .elif !empty(PKG_OPTIONS:Mgowin)
+# CMAKE_ARGS+=			-DARCH=gowin
+# .elif !empty(PKG_OPTIONS:Mfpgainterchange)
+# CMAKE_ARGS+=			-DARCH=fpga_interchange
+# .elif !empty(PKG_OPTIONS:Mmachxo2)
+# CMAKE_ARGS+=			-DARCH=machxo2
+# .elif !empty(PKG_OPTIONS:Mmistral)
+# CMAKE_ARGS+=			-DARCH=mistral
+.endif
+
+
+###
+### Build with ice40 support
+###
+.if !empty(PKG_OPTIONS:Mice40) || !empty(PKG_OPTIONS:Mall)
+TOOL_DEPENDS+=			icestorm-[0-9]*:../../wip/icestorm-git
+.endif
+
+###
+### Build with ecp5 support
+###
+.if !empty(PKG_OPTIONS:Mecp5) || !empty(PKG_OPTIONS:Mall)
+TOOL_DEPENDS+=			${PYPKGPREFIX}-prjtrellis-[0-9]*:../../wip/prjtrellis
+.endif
+
+###
+### Build with the QT5 GUI
+###
+.if !empty(PKG_OPTIONS:Mx11)
+CMAKE_ARGS+=			-DBUILD_GUI=ON
+.include "../../x11/qt5-qtbase/buildlink3.mk"
+.endif


Home | Main Index | Thread Index | Old Index