From: Thomas Dettbarn Subject: New port 1/4: cad/prjpeppercorn-1.13 To: ports@openbsd.org Date: Sat, 13 Jun 2026 23:07:39 +0200 Please find new port cad/prjpeppercorn attached to this email. (In the form of a git diff). Please disregard the attachments to my previous emails, this is the one I would like to release to the ports tree of OpenBSD. Thus far, the only thing I can say with confidence is that ItWorksOnMyMachine(tm). In total, I plan on sending four ports over this email list: cad/prjpeppercorn-1.13 cad/nextpnr-0.10pl20260613 cad/openfpgaloader-1.1.1pl20260604 cad/yosys-takeover-0.66pl20260612 ... this one needs a better name. (See its accompanying email for details). In lieu of a proper method of checking, I have set up a website with a simple helloworld style example: https://dettus.net/fpga_stuff/1.html. Even if you do not have a physical FPGA board at home, the instructions might give you an idea about how the tools are supposed to work together. So, please have another review. Thank you so so much! diff --git a/cad/prjpeppercorn/Makefile b/cad/prjpeppercorn/Makefile new file mode 100644 index 00000000000..192bcd31da4 --- /dev/null +++ b/cad/prjpeppercorn/Makefile @@ -0,0 +1,37 @@ +COMMENT= GateMate FPGAs Bitstream Documentation and Tools +CATEGORIES= cad +V= 1.13 +DISTNAME= prjpeppercorn-${V} +SHAREDIR= prjpeppercorn/${V} + +GH_ACCOUNT= YosysHQ +GH_PROJECT= prjpeppercorn +GH_TAGNAME= v${V} + +HOMEPAGE= https://github.com/YosysHQ/prjpeppercorn +MAINTAINER= Thomas Dettbarn + +# ISC License +PERMIT_PACKAGE= yes + +WANTLIB= c +MODULES= devel/cmake +NO_TEST= Yes + +LIB_DEPENDS= devel/boost +WRKSRC= ${WRKDIST}/libgm + +do-install: + ${INSTALL_PROGRAM} ${WRKBUILD}/gmpack ${PREFIX}/bin/ + ${INSTALL_PROGRAM} ${WRKBUILD}/gmunpack ${PREFIX}/bin/ + ${INSTALL_DATA_DIR} ${PREFIX}/share/${SHAREDIR}/gatemate/ + ${INSTALL_DATA_DIR} ${PREFIX}/share/${SHAREDIR}/delay/ + ${INSTALL_DATA} ${WRKDIST}/gatemate/* ${PREFIX}/share/${SHAREDIR}/gatemate/ + ${INSTALL_PROGRAM} ${WRKDIST}/delay.sh ${PREFIX}/share/${SHAREDIR}/ + ${INSTALL_DATA} ${WRKDIST}/delay/* ${PREFIX}/share/${SHAREDIR}/delay/ + ${INSTALL_PROGRAM} ${WRKDIST}/decompress.py ${PREFIX}/share/${SHAREDIR}/ + + + +.include + diff --git a/cad/prjpeppercorn/distinfo b/cad/prjpeppercorn/distinfo new file mode 100644 index 00000000000..7895716657b --- /dev/null +++ b/cad/prjpeppercorn/distinfo @@ -0,0 +1,2 @@ +SHA256 (prjpeppercorn-1.13.tar.gz) = FHiAxUCPGhY3JyO0C7kEIxrOzUk+4/kNst81rbOb6Cw= +SIZE (prjpeppercorn-1.13.tar.gz) = 5718234 diff --git a/cad/prjpeppercorn/patches/patch-libgm_CMakeLists_txt b/cad/prjpeppercorn/patches/patch-libgm_CMakeLists_txt new file mode 100644 index 00000000000..68275165320 --- /dev/null +++ b/cad/prjpeppercorn/patches/patch-libgm_CMakeLists_txt @@ -0,0 +1,21 @@ +Unnecessary dependency to .git +Index: libgm/CMakeLists.txt +--- libgm/CMakeLists.txt.orig ++++ libgm/CMakeLists.txt +@@ -88,7 +88,8 @@ string(STRIP "${CURRENT_GIT_VERSION}" CURRENT_GIT_VERS + if (EXISTS "${CMAKE_BINARY_DIR}/generated/last_git_version") + file(READ "${CMAKE_BINARY_DIR}/generated/last_git_version" LAST_GIT_VERSION) + endif() +-if (NOT ("${LAST_GIT_VERSION}" STREQUAL "${CURRENT_GIT_VERSION}") OR NOT GIT_EXECUTABLE) ++#if (NOT ("${LAST_GIT_VERSION}" STREQUAL "${CURRENT_GIT_VERSION}") OR NOT GIT_EXECUTABLE) ++if (TRUE) + configure_file( + ${CMAKE_SOURCE_DIR}/tools/version.cpp.in + ${CMAKE_BINARY_DIR}/generated/version.cpp +@@ -132,4 +133,4 @@ add_custom_target( + -style=file + -i + ${CLANGFORMAT_FILES} +-) +\ No newline at end of file ++) diff --git a/cad/prjpeppercorn/pkg/DESCR b/cad/prjpeppercorn/pkg/DESCR new file mode 100644 index 00000000000..915426b01bb --- /dev/null +++ b/cad/prjpeppercorn/pkg/DESCR @@ -0,0 +1 @@ +GateMate FPGAs Bitstream Documentation and Tools diff --git a/cad/prjpeppercorn/pkg/PLIST b/cad/prjpeppercorn/pkg/PLIST new file mode 100644 index 00000000000..f1a890460ff --- /dev/null +++ b/cad/prjpeppercorn/pkg/PLIST @@ -0,0 +1,21 @@ +@bin bin/gmpack +@bin bin/gmunpack +share/prjpeppercorn/ +share/prjpeppercorn/1.13/ +share/prjpeppercorn/1.13/decompress.py +share/prjpeppercorn/1.13/delay/ +share/prjpeppercorn/1.13/delay.sh +share/prjpeppercorn/1.13/delay/cc_best_eco_dly.dly +share/prjpeppercorn/1.13/delay/cc_best_lpr_dly.dly +share/prjpeppercorn/1.13/delay/cc_best_spd_dly.dly +share/prjpeppercorn/1.13/delay/cc_typ_eco_dly.dly +share/prjpeppercorn/1.13/delay/cc_typ_lpr_dly.dly +share/prjpeppercorn/1.13/delay/cc_typ_spd_dly.dly +share/prjpeppercorn/1.13/delay/cc_worst_eco_dly.dly +share/prjpeppercorn/1.13/delay/cc_worst_lpr_dly.dly +share/prjpeppercorn/1.13/delay/cc_worst_spd_dly.dly +share/prjpeppercorn/1.13/gatemate/ +share/prjpeppercorn/1.13/gatemate/__init__.py +share/prjpeppercorn/1.13/gatemate/chip.py +share/prjpeppercorn/1.13/gatemate/die.py +share/prjpeppercorn/1.13/gatemate/timing.py