From: Thomas Dettbarn Subject: Re: New port: cad/prjpeppercorn (Attempt 2) To: ports@openbsd.org Date: Thu, 11 Jun 2026 08:41:58 +0200 Hello! You can find the second attempt of my port attached to this email. I have applied the changes, suggested by Stu (Thank you, btw). In this particular port, I added a new directory layer to the installation in the share/ directory. So share/prjpeppercorn-1.13/ became share/prjpeppercorn/1.13 In addition to that: Using ldd(1), I noticed that the resulting binaries had some implicit library dependencies. They are now explicitly stated inside the Makefile. Please have another look, hopefully, this time around, it meets your standards a little bit better. Thomas On 6/9/26 00:52, Thomas Dettbarn wrote: > For your consideration, please find the port for cad/prjpeppercorn > 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/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