ports/172724: cad/gnucap: Fix build with clang
KATO Tsuguru
tkato432 at yahoo.com
Mon Oct 15 18:10:03 UTC 2012
>Number: 172724
>Category: ports
>Synopsis: cad/gnucap: Fix build with clang
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Mon Oct 15 18:10:02 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator: KATO Tsuguru
>Release: FreeBSD 7.4-RELEASE-p10 i386
>Organization:
>Environment:
>Description:
- Fix build with clang
- Support USE_READLINE
New file:
files/patch-modelgen__mg_.h
>How-To-Repeat:
>Fix:
diff -urN /usr/ports/cad/gnucap/Makefile cad/gnucap/Makefile
--- /usr/ports/cad/gnucap/Makefile 2012-10-10 07:12:13.000000000 +0900
+++ cad/gnucap/Makefile 2012-10-15 15:00:34.000000000 +0900
@@ -1,10 +1,5 @@
-# ex:ts=8
-# Ports collection makefile for: gnucap
-# Date created: Feb 7, 2002
-# Whom: ijliao
-#
+# Created by: ijliao
# $FreeBSD: ports/cad/gnucap/Makefile,v 1.29 2012/10/09 22:12:13 linimon Exp $
-#
PORTNAME= gnucap
PORTVERSION= 2009.12.07
@@ -17,9 +12,11 @@
COMMENT= The GNU Circuit Analysis Package
LICENSE= GPLv3
-LICENSE_FILE= ${WRKSRC}/COPYING
-USE_GCC= any
+OPTIONS_DEFINE= READLINE DOCS EXAMPLES
+OPTIONS_DEFAULT=READLINE
+READLINE_DESC= Enable readline support
+
USE_GMAKE= yes
GNU_CONFIGURE= yes
MAKE_JOBS_SAFE= yes
@@ -29,20 +26,33 @@
PORTEXAMPLES= *
PLIST_FILES= bin/gnucap bin/gnucap-modelgen
+.include <bsd.port.options.mk>
+
+.if ${PORT_OPTIONS:MREADLINE}
+USE_READLINE= yes
+.else
+CONFIGURE_ARGS+=--with-readline=no
+.endif
+
post-patch:
- ${REINPLACE_CMD} -e \
+ @${REINPLACE_CMD} -e \
'/^SUBDIRS/s|doc examples||' ${WRKSRC}/Makefile.in
+.for i in src/ap_match.cc modelgen/ap_match.cc
+ @${REINPLACE_CMD} -e \
+ "s:strchr(str2, '|'):const_cast<char*>(strchr(str2, '|')):" \
+ ${WRKSRC}/${i}
+.endfor
post-install:
${INSTALL_MAN} ${WRKSRC}/doc/*.1 ${MANPREFIX}/man/man1
-.if !defined(NOPORTDOCS)
+.if ${PORT_OPTIONS:MDOCS}
@${MKDIR} ${DOCSDIR}
${INSTALL_DATA} ${WRKSRC}/doc/acs-tutorial ${DOCSDIR}
${INSTALL_DATA} ${WRKSRC}/doc/history ${DOCSDIR}
${INSTALL_DATA} ${WRKSRC}/doc/relnotes.* ${DOCSDIR}
${INSTALL_DATA} ${WRKSRC}/doc/whatisit ${DOCSDIR}
.endif
-.if !defined(NOPORTEXAMPLES)
+.if ${PORT_OPTIONS:MEXAMPLES}
@${MKDIR} ${EXAMPLESDIR}
${INSTALL_DATA} ${WRKSRC}/examples/README ${EXAMPLESDIR}
${INSTALL_DATA} ${WRKSRC}/examples/runall ${EXAMPLESDIR}
diff -urN /usr/ports/cad/gnucap/files/patch-modelgen__mg_.h cad/gnucap/files/patch-modelgen__mg_.h
--- /usr/ports/cad/gnucap/files/patch-modelgen__mg_.h 1970-01-01 09:00:00.000000000 +0900
+++ cad/gnucap/files/patch-modelgen__mg_.h 2012-10-14 00:54:52.000000000 +0900
@@ -0,0 +1,44 @@
+--- modelgen/mg_.h.orig 2009-12-08 08:19:15.000000000 +0900
++++ modelgen/mg_.h 2012-10-14 00:54:09.000000000 +0900
+@@ -108,6 +108,20 @@
+ size_t size()const {return _list.size();}
+ };
+ /*--------------------------------------------------------------------------*/
++class C_Comment
++ :public Base
++{
++public:
++ void parse(CS& f);
++};
++/*--------------------------------------------------------------------------*/
++class Cxx_Comment
++ :public Base
++{
++public:
++ void parse(CS& f);
++};
++/*--------------------------------------------------------------------------*/
+ /* A "Collection" differs from a "List" in how it is parsed.
+ * Each parse of a "Collection" created one more object and stores
+ * it in the Collection. The size of the Collection therefore grows by 1.
+@@ -200,20 +214,6 @@
+ }
+ };
+ /*--------------------------------------------------------------------------*/
+-class C_Comment
+- :public Base
+-{
+-public:
+- void parse(CS& f);
+-};
+-/*--------------------------------------------------------------------------*/
+-class Cxx_Comment
+- :public Base
+-{
+-public:
+- void parse(CS& f);
+-};
+-/*--------------------------------------------------------------------------*/
+ class Key
+ :public Base
+ {
diff -urN /usr/ports/cad/gnucap/pkg-descr cad/gnucap/pkg-descr
--- /usr/ports/cad/gnucap/pkg-descr 2008-06-19 05:15:20.000000000 +0900
+++ cad/gnucap/pkg-descr 2012-10-15 15:06:42.000000000 +0900
@@ -1,22 +1,22 @@
GnuCap is the GNU Circuit Analysis Package.
-The primary component is a general purpose circuit simulator. It performs
-nonlinear dc and transient analyses, fourier analysis, and ac analysis. It is
-fully interactive and command driven. It can also be run in batch mode or as a
-server. Spice compatible models for the MOSFET (level 1-7) and diode are
-included in this release.
+The primary component is a general purpose circuit simulator. It
+performs nonlinear dc and transient analyses, fourier analysis, and ac
+analysis. It is fully interactive and command driven. It can also be
+run in batch mode or as a server. Spice compatible models for the
+MOSFET (level 1-7) and diode are included in this release.
-GnuCap is not based on Spice, but some of the models have been derived from
-the Berkeley models.
+GnuCap is not based on Spice, but some of the models have been derived
+from the Berkeley models.
-Unlike Spice, the engine is designed to do true mixed-mode simulation. Most
-of the code is in place for future support of event driven analog simulation,
-and true multi-rate simulation.
+Unlike Spice, the engine is designed to do true mixed-mode simulation.
+Most of the code is in place for future support of event driven analog
+simulation, and true multi-rate simulation.
-If you are tired of Spice and want a second opinion, you want to play with the
-circuit and want a simulator that is interactive, you want to study the source
-code and want something easier to follow than Spice, or you are a researcher
-working on modeling and want automated model generation tools to make your job
-easier, try GnuCap.
+If you are tired of Spice and want a second opinion, you want to play
+with the circuit and want a simulator that is interactive, you want to
+study the source code and want something easier to follow than Spice,
+or you are a researcher working on modeling and want automated model
+generation tools to make your job easier, try GnuCap.
WWW: http://www.gnucap.org/
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list