git: ab203b6cd263 - main - cad/irsim: adopt and update 9.7.116 => 9.7.118

From: Robert Clausecker <fuz_at_FreeBSD.org>
Date: Wed, 26 Mar 2025 01:34:57 UTC
The branch main has been updated by fuz:

URL: https://cgit.FreeBSD.org/ports/commit/?id=ab203b6cd26304a500ca678ffb17e13403903a3b

commit ab203b6cd26304a500ca678ffb17e13403903a3b
Author:     Älven <alster@vinterdalen.se>
AuthorDate: 2025-02-17 02:43:22 +0000
Commit:     Robert Clausecker <fuz@FreeBSD.org>
CommitDate: 2025-03-26 01:32:14 +0000

    cad/irsim: adopt and update 9.7.116 => 9.7.118
    
    * Take maintainership
    * Flavourise with 3 flavours: lite, scheme (default) and tcl
    + Add LICENSE_FILE
    + Workaround building Tcl with clang17+
      See https://github.com/RTimothyEdwards/irsim/issues/7
    * Use localbase:ldflags via USES
    * Improve pkg-descr
    * Lint Makefile, sort stances
    
    Changelog: https://github.com/RTimothyEdwards/irsim/releases/tag/9.7.118
    
    PR:             284856
---
 cad/irsim/Makefile                      | 64 ++++++++++++++++-----------------
 cad/irsim/distinfo                      |  6 ++--
 cad/irsim/pkg-descr                     | 19 +++++++++-
 cad/irsim/{pkg-plist => pkg-plist.lite} | 17 ++-------
 cad/irsim/pkg-plist.scheme              | 29 +++++++++++++++
 cad/irsim/pkg-plist.tcl                 | 40 +++++++++++++++++++++
 6 files changed, 122 insertions(+), 53 deletions(-)

diff --git a/cad/irsim/Makefile b/cad/irsim/Makefile
index 65aa6614e37e..41d74eb298b8 100644
--- a/cad/irsim/Makefile
+++ b/cad/irsim/Makefile
@@ -1,48 +1,44 @@
 PORTNAME=	irsim
-DISTVERSION=	9.7.116
-PORTREVISION=	1
+DISTVERSION=	9.7.118
 CATEGORIES=	cad
 MASTER_SITES=	http://opencircuitdesign.com/irsim/archive/
+PKGNAMESUFFIX=	-${FLAVOR}
 
-MAINTAINER=	ports@FreeBSD.org
+MAINTAINER=	alster@vinterdalen.se
 COMMENT=	Event-driven logic-level simulator for MOS circuis
 WWW=		http://opencircuitdesign.com/irsim/
 
 LICENSE=	GPLv2
+LICENSE_FILE=	${WRKSRC}/COPYRIGHT
 
-USES=	gmake tar:tgz xorg
+FLAVORS=	scheme lite tcl
+FLAVOR?=	${FLAVORS:[1]}
 
-OPTIONS_RADIO=	INTERPRETER
-OPTIONS_RADIO_INTERPRETER=	SCHEME TCL
-OPTIONS_DEFAULT=	SCHEME
-SCHEME_DESC=	Scheme interpreter
-TCL_DESC=	Tcl interpreter
-OPTIONS_SUB=	yes
-
-SCHEME_CONFIGURE_ON=	--with-interpreter=scheme
-TCL_CONFIGURE_ON=	--with-interpreter=tcl
-TCL_USES=		tk:tea
-
-CONFIGURE_WRKSRC=	${WRKSRC}/scripts
+lite_CONFLICTS_INSTALL=		${PORTNAME}-scheme ${PORTNAME}-tcl
+scheme_CONFLICTS_INSTALL=	${PORTNAME}-lite   ${PORTNAME}-tcl
+tcl_CONFLICTS_INSTALL=		${PORTNAME}-lite   ${PORTNAME}-scheme
 
+USES=		gmake localbase:ldflags tar:tgz xorg
 USE_XORG=	x11
-GNU_CONFIGURE=	yes
-GNU_CONFIGURE_MANPREFIX=${PREFIX}/share
-
-CFLAGS+=	-I${LOCALBASE}/include
-LDFLAGS+=	-L${LOCALBASE}/lib
 
-.include <bsd.port.options.mk>
+GNU_CONFIGURE=	yes
 
-.if ${PORT_OPTIONS:MTCL}
-PLIST_SUB+=	NOTCL="@comment "
-.else
-WISH=		${FALSE}
-PLIST_SUB+=	NOTCL=""
-.endif
+CONFIGURE_WRKSRC=	${WRKSRC}/scripts
 
-.if empty(PORT_OPTIONS:MSCHEME) && empty(PORT_OPTIONS:MTCL)
-CONFIGURE_ARGS+=	--with-interpreter=no
+PLIST=		pkg-plist.${FLAVOR}
+
+.if ${FLAVOR} == lite
+CONFIGURE_ARGS=		--with-interpreter=no
+WISH=			${FALSE}
+.elif ${FLAVOR} == scheme
+CONFIGURE_ARGS=		--with-interpreter=scheme
+WISH=			${FALSE}
+.elif ${FLAVOR} == tcl
+CONFIGURE_ARGS=		--with-interpreter=tcl
+# Workaround building Tcl with clang17+
+# See https://github.com/RTimothyEdwards/irsim/issues/7
+LDFLAGS+=		-Wl,--undefined-version
+USES+=			tk:tea
 .endif
 
 post-patch:
@@ -53,11 +49,11 @@ post-patch:
 		 /-l\/usr\/X11R6\/include/d' ${CONFIGURE_WRKSRC}/configure
 
 post-install:
-.if empty(PORT_OPTIONS:MTCL)
-	cd ${STAGEDIR}${PREFIX} && ${STRIP_CMD} bin/gentbl bin/genspktbl bin/irsim
-.else
+.if ${FLAVOR} == tcl
 	cd ${STAGEDIR}${PREFIX}/lib/irsim/tcl && \
-		${STRIP_CMD} irsimexec tclirsim.so diglib.so random.so
+		${STRIP_CMD} diglib.so irsimexec random.so tclirsim.so
+.else
+	cd ${STAGEDIR}${PREFIX}/bin && ${STRIP_CMD} irsim genspktbl gentbl
 .endif
 
 .include <bsd.port.mk>
diff --git a/cad/irsim/distinfo b/cad/irsim/distinfo
index 54dc3b42fad7..7e7a8ae651d0 100644
--- a/cad/irsim/distinfo
+++ b/cad/irsim/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1672169839
-SHA256 (irsim-9.7.116.tgz) = f6afcab1e57743ade0d34e410788d26bf4bf94ee45144b9ea78a567f9651a555
-SIZE (irsim-9.7.116.tgz) = 481566
+TIMESTAMP = 1739759917
+SHA256 (irsim-9.7.118.tgz) = ed740bde3e44ebe29d7beafde11c563d5d5cc12891fdc4ed5f4622f302903df7
+SIZE (irsim-9.7.118.tgz) = 481871
diff --git a/cad/irsim/pkg-descr b/cad/irsim/pkg-descr
index 7c8c0ecc6a6b..2f13c49a95a4 100644
--- a/cad/irsim/pkg-descr
+++ b/cad/irsim/pkg-descr
@@ -1,4 +1,21 @@
-IRSIM is an event-driven logic-level simulator for MOS circuits.
+IRSIM is a tool for simulating digital circuits. It is a "switch-level"
+simulator; that is, it treats transistors as ideal switches. Extracted
+capacitance and lumped resistance values are used to make the switch a little
+bit more realistic than the ideal, using the RC time constants to predict the
+relative timing of events.
+
+IRSIM shares a history with magic, although it is an independent program. Magic
+was designed to produce, and IRSIM to read, the ".sim" file format, which is
+largely unused outside of these two programs. IRSIM was developed at Stanford,
+while Magic was developed at Berkeley. Parts of Magic were developed especially
+for use with IRSIM, allowing IRSIM to run a simulation in the "background"
+(i.e., a forked process communicating through a pipe), while displaying
+information about the values of signals directly on the VLSI layout.
+
+For "quick" simulations of digital circuits, IRSIM is still quite useful for
+confirming basic operation of digital circuit layouts. The addition of
+scheduling commands ("at", "every", "when", and "whenever") put IRSIM into the
+same class as Verilog simulators.
 
 To run irsim, users should set CAD_HOME to the base installation directory
 where magic was installed, e.g. /usr/local.  Alternatively, the system
diff --git a/cad/irsim/pkg-plist b/cad/irsim/pkg-plist.lite
similarity index 63%
rename from cad/irsim/pkg-plist
rename to cad/irsim/pkg-plist.lite
index d96c257eb8b5..6a8b97e7854d 100644
--- a/cad/irsim/pkg-plist
+++ b/cad/irsim/pkg-plist.lite
@@ -1,5 +1,5 @@
-%%NOTCL%%bin/genspktbl
-%%NOTCL%%bin/gentbl
+bin/genspktbl
+bin/gentbl
 bin/irsim
 lib/irsim/doc/irsim-analyzer.doc
 lib/irsim/doc/irsim.doc
@@ -24,19 +24,6 @@ lib/irsim/prm/tsmc18.10.nxxx.1.8.prm
 lib/irsim/prm/tsmc25.15.n99y.2.5.prm
 lib/irsim/prm/tsmc35.20.n98t.3.3.prm
 lib/irsim/prm/tsmc35p.20.n98tp.3.3.prm
-%%TCL%%lib/irsim/tcl/bitmaps/center.xbm
-%%TCL%%lib/irsim/tcl/bitmaps/left.xbm
-%%TCL%%lib/irsim/tcl/bitmaps/lleft.xbm
-%%TCL%%lib/irsim/tcl/bitmaps/right.xbm
-%%TCL%%lib/irsim/tcl/bitmaps/rright.xbm
-%%TCL%%lib/irsim/tcl/console.tcl
-%%TCL%%lib/irsim/tcl/diglib.so
-%%TCL%%lib/irsim/tcl/irsim.tcl
-%%TCL%%lib/irsim/tcl/irsimexec
-%%TCL%%lib/irsim/tcl/random.so
-%%TCL%%lib/irsim/tcl/tclirsim.so
-%%TCL%%lib/irsim/tcl/tkcon.tcl
-%%TCL%%lib/irsim/tcl/vcd.tcl
 share/man/man1/irsim.1.gz
 share/man/man3/irsim-analyzer.3.gz
 share/man/man5/netchange.5.gz
diff --git a/cad/irsim/pkg-plist.scheme b/cad/irsim/pkg-plist.scheme
new file mode 100644
index 000000000000..6a8b97e7854d
--- /dev/null
+++ b/cad/irsim/pkg-plist.scheme
@@ -0,0 +1,29 @@
+bin/genspktbl
+bin/gentbl
+bin/irsim
+lib/irsim/doc/irsim-analyzer.doc
+lib/irsim/doc/irsim.doc
+lib/irsim/doc/netchange.doc
+lib/irsim/doc/powerEst.doc
+lib/irsim/prm/amiabn.80.n99z.5.prm
+lib/irsim/prm/amic5.30.n98s.3.3.prm
+lib/irsim/prm/amicwl.50.n97l.5.prm
+lib/irsim/prm/hpcmos10.20.n98v.3.3.prm
+lib/irsim/prm/hpcmos14.30.n9ae.3.3.prm
+lib/irsim/prm/hpcmos26.40.n88x.5.prm
+lib/irsim/prm/orbit.60.n96e.5.prm
+lib/irsim/prm/scmos100.prm
+lib/irsim/prm/scmos1_6um.prm
+lib/irsim/prm/scmos2um.prm
+lib/irsim/prm/scmos30.prm
+lib/irsim/prm/scmos35.prm
+lib/irsim/prm/scmos50_3v.prm
+lib/irsim/prm/scmos50_5v.prm
+lib/irsim/prm/scmos60.prm
+lib/irsim/prm/tsmc18.10.nxxx.1.8.prm
+lib/irsim/prm/tsmc25.15.n99y.2.5.prm
+lib/irsim/prm/tsmc35.20.n98t.3.3.prm
+lib/irsim/prm/tsmc35p.20.n98tp.3.3.prm
+share/man/man1/irsim.1.gz
+share/man/man3/irsim-analyzer.3.gz
+share/man/man5/netchange.5.gz
diff --git a/cad/irsim/pkg-plist.tcl b/cad/irsim/pkg-plist.tcl
new file mode 100644
index 000000000000..9a8f58d9f736
--- /dev/null
+++ b/cad/irsim/pkg-plist.tcl
@@ -0,0 +1,40 @@
+bin/irsim
+lib/irsim/doc/irsim-analyzer.doc
+lib/irsim/doc/irsim.doc
+lib/irsim/doc/netchange.doc
+lib/irsim/doc/powerEst.doc
+lib/irsim/prm/amiabn.80.n99z.5.prm
+lib/irsim/prm/amic5.30.n98s.3.3.prm
+lib/irsim/prm/amicwl.50.n97l.5.prm
+lib/irsim/prm/hpcmos10.20.n98v.3.3.prm
+lib/irsim/prm/hpcmos14.30.n9ae.3.3.prm
+lib/irsim/prm/hpcmos26.40.n88x.5.prm
+lib/irsim/prm/orbit.60.n96e.5.prm
+lib/irsim/prm/scmos100.prm
+lib/irsim/prm/scmos1_6um.prm
+lib/irsim/prm/scmos2um.prm
+lib/irsim/prm/scmos30.prm
+lib/irsim/prm/scmos35.prm
+lib/irsim/prm/scmos50_3v.prm
+lib/irsim/prm/scmos50_5v.prm
+lib/irsim/prm/scmos60.prm
+lib/irsim/prm/tsmc18.10.nxxx.1.8.prm
+lib/irsim/prm/tsmc25.15.n99y.2.5.prm
+lib/irsim/prm/tsmc35.20.n98t.3.3.prm
+lib/irsim/prm/tsmc35p.20.n98tp.3.3.prm
+lib/irsim/tcl/bitmaps/center.xbm
+lib/irsim/tcl/bitmaps/left.xbm
+lib/irsim/tcl/bitmaps/lleft.xbm
+lib/irsim/tcl/bitmaps/right.xbm
+lib/irsim/tcl/bitmaps/rright.xbm
+lib/irsim/tcl/console.tcl
+lib/irsim/tcl/diglib.so
+lib/irsim/tcl/irsim.tcl
+lib/irsim/tcl/irsimexec
+lib/irsim/tcl/random.so
+lib/irsim/tcl/tclirsim.so
+lib/irsim/tcl/tkcon.tcl
+lib/irsim/tcl/vcd.tcl
+share/man/man1/irsim.1.gz
+share/man/man3/irsim-analyzer.3.gz
+share/man/man5/netchange.5.gz