From 9bc476a12c1cceb9254ff05ee3ad16ec0ace589d Mon Sep 17 00:00:00 2001 From: hubertf Date: Thu, 11 Jun 1998 14:39:01 +0000 Subject: spice: A general-purpose circuit simulation program --- cad/spice/Makefile | 34 ++++++++ cad/spice/files/FreeBSD | 10 +++ cad/spice/files/Makefile | 18 ++++ cad/spice/files/md5 | 1 + cad/spice/patches/patch-aa | 202 ++++++++++++++++++++++++++++++++++++++++++++ cad/spice/patches/patch-ab | 141 +++++++++++++++++++++++++++++++ cad/spice/patches/patch-ac | 62 ++++++++++++++ cad/spice/pkg/COMMENT | 1 + cad/spice/pkg/DESCR | 16 ++++ cad/spice/pkg/PLIST | 41 +++++++++ cad/spice/scripts/configure | 5 ++ 11 files changed, 531 insertions(+) create mode 100644 cad/spice/Makefile create mode 100644 cad/spice/files/FreeBSD create mode 100644 cad/spice/files/Makefile create mode 100644 cad/spice/files/md5 create mode 100644 cad/spice/patches/patch-aa create mode 100644 cad/spice/patches/patch-ab create mode 100644 cad/spice/patches/patch-ac create mode 100644 cad/spice/pkg/COMMENT create mode 100644 cad/spice/pkg/DESCR create mode 100644 cad/spice/pkg/PLIST create mode 100644 cad/spice/scripts/configure (limited to 'cad') diff --git a/cad/spice/Makefile b/cad/spice/Makefile new file mode 100644 index 00000000000..919b27d1ac6 --- /dev/null +++ b/cad/spice/Makefile @@ -0,0 +1,34 @@ +# New ports collection makefile for: spice +# Version required: 3f5 +# Date created: 26 Mar 96 +# Whom: Julian Jenkins +# +# $Id: Makefile,v 1.1.1.1 1998/06/11 14:39:01 hubertf Exp $ +# + +DISTNAME= sp3f4.kit +PKGNAME= spice-3f5 +CATEGORIES= cad +MASTER_SITES= ftp://ic.eecs.berkeley.edu/pub/Spice3/ +EXTRACT_SUFX= .tar.Z + +MAINTAINER= kaveman@magna.com.au + +# documentation in ftp://ic.eecs.berkeley.edu/pub/Spice3/um.3f3.ps + +# These are included as patch-ab +#PATCH_SITES= ftp://ilpsoft.eecs.berkeley.edu/pub/SPICE3F5/ +#PATCHFILES= grid.patch newcoms.patch spsmp.patch + +NO_WRKSUBDIR= yes +MAN1= sconvert.1 nutmeg.1 spice.1 +MAN3= mfb.3 +MAN5= mfbcap.5 + +post-install: +.if !defined(NOPORTDOCS) + ${MKDIR} ${PREFIX}/share/examples/spice3 + ${INSTALL_DATA} ${WRKSRC}/examples/*.cir ${PREFIX}/share/examples/spice3 +.endif + +.include diff --git a/cad/spice/files/FreeBSD b/cad/spice/files/FreeBSD new file mode 100644 index 00000000000..9639ab93fd9 --- /dev/null +++ b/cad/spice/files/FreeBSD @@ -0,0 +1,10 @@ +# FreeBSD config exception file + +MAKE = /usr/bin/make +INTERFACE_OPTS = -DWANT_X11 +CC = gcc +CC_OPT = -O2 -pipe +CC_OPT_SAFE = -O2 -fno-strength-reduce -pipe +LDFLAGS = -L$(X11BASE)/lib -lm -ltermcap +ASM_HACK = < /dev/null +SYS_CFLAGS = -Dbsd diff --git a/cad/spice/files/Makefile b/cad/spice/files/Makefile new file mode 100644 index 00000000000..6ca93e2439f --- /dev/null +++ b/cad/spice/files/Makefile @@ -0,0 +1,18 @@ + +all: + util/build FreeBSD default + +install: + util/build FreeBSD install + chmod a+rx ${PREFIX}/bin/spice3 ${PREFIX}/bin/nutmeg \ + ${PREFIX}/bin/sconvert ${PREFIX}/bin/help \ + ${PREFIX}/bin/proc2mod ${PREFIX}/bin/multidec + strip ${PREFIX}/bin/spice3 ${PREFIX}/bin/nutmeg \ + ${PREFIX}/bin/sconvert ${PREFIX}/bin/help \ + ${PREFIX}/bin/proc2mod ${PREFIX}/bin/multidec + chmod -R a+rX ${PREFIX}/share/spice3 + install -c -m 644 -o bin -g bin man/man5/mfbcap.5 ${PREFIX}/man/man5/mfbcap.5 + install -c -m 644 -o bin -g bin man/man1/sconvert.1 ${PREFIX}/man/man1/sconvert.1 + install -c -m 644 -o bin -g bin man/man1/nutmeg.1 ${PREFIX}/man/man1/nutmeg.1 + install -c -m 644 -o bin -g bin man/man1/spice.1 ${PREFIX}/man/man1/spice.1 + install -c -m 644 -o bin -g bin man/man3/mfb.3 ${PREFIX}/man/man3/mfb.3 diff --git a/cad/spice/files/md5 b/cad/spice/files/md5 new file mode 100644 index 00000000000..06e45db8691 --- /dev/null +++ b/cad/spice/files/md5 @@ -0,0 +1 @@ +MD5 (sp3f4.kit.tar.Z) = d55eb08a7f523248b1b509092a444aeb diff --git a/cad/spice/patches/patch-aa b/cad/spice/patches/patch-aa new file mode 100644 index 00000000000..8e423df0cf3 --- /dev/null +++ b/cad/spice/patches/patch-aa @@ -0,0 +1,202 @@ +*** conf/defaults.orig Thu Jul 29 16:33:56 1993 +--- conf/defaults Sat Jun 6 23:40:14 1998 +*************** +*** 65,71 **** + # the following definition: + # SYS_DIR = $(DIST_DIR) + +! SYS_DIR = $(TOP1)/$(SYSTEM) + + # OBJ_TOP is the directory in which intermidiate files reside + # These are ".o" files, synthesized ".c" files, ".a" files, +--- 65,71 ---- + # the following definition: + # SYS_DIR = $(DIST_DIR) + +! SYS_DIR = $(TOP0)/$(SYSTEM) + + # OBJ_TOP is the directory in which intermidiate files reside + # These are ".o" files, synthesized ".c" files, ".a" files, +*************** +*** 105,116 **** + # identified as and SYSTEM is the name of the per-system definitions + # file listed on the "build" command line. + +! SPICE_DIR = $(TOP1)/$(SYSTEM) +! SPICE_LIB_DIR = $(SPICE_DIR)/lib + SPICE_EXEC_DIR = $(SPICE_DIR)/bin + + S_SPICE_DIR = $(SPICE_DIR) +! S_SPICE_LIB_DIR = $(S_SPICE_DIR)/lib + S_SPICE_EXEC_DIR= $(S_SPICE_DIR)/bin + + # INSTALL_DIRS lists the directories that need to be created before +--- 105,116 ---- + # identified as and SYSTEM is the name of the per-system definitions + # file listed on the "build" command line. + +! SPICE_DIR = ${PREFIX} +! SPICE_LIB_DIR = $(SPICE_DIR)/share/spice3 + SPICE_EXEC_DIR = $(SPICE_DIR)/bin + + S_SPICE_DIR = $(SPICE_DIR) +! S_SPICE_LIB_DIR = $(S_SPICE_DIR)/share/spice3 + S_SPICE_EXEC_DIR= $(S_SPICE_DIR)/bin + + # INSTALL_DIRS lists the directories that need to be created before +*************** +*** 129,139 **** + # an extra definition to work around the same strange bug. See either + # file "conf/vax" or "conf/gcc". + +! CC = cc + + # CC_OPT: Default compile options (optimization/debug level, other) + +! CC_OPT = -O + + # CC_OPT_SAFE: Special compile options to override CC_OPT for code + # which typically causes problems for most compilers (bsim1 and bsim2). +--- 129,139 ---- + # an extra definition to work around the same strange bug. See either + # file "conf/vax" or "conf/gcc". + +! CC = gcc + + # CC_OPT: Default compile options (optimization/debug level, other) + +! CC_OPT = -O2 -pipe + + # CC_OPT_SAFE: Special compile options to override CC_OPT for code + # which typically causes problems for most compilers (bsim1 and bsim2). +*************** +*** 203,209 **** + # X_DIR indicates the top of the X11 lib/include hierarchy; it is only + # a convenience that is used in the following definitions. + +! X_DIR = /usr + + # INCX lists the X include directories. This may be different between + # MIT X11r5, X11r4, and your vendor's version of X11, though listing +--- 203,209 ---- + # X_DIR indicates the top of the X11 lib/include hierarchy; it is only + # a convenience that is used in the following definitions. + +! X_DIR = ${X11BASE} + + # INCX lists the X include directories. This may be different between + # MIT X11r5, X11r4, and your vendor's version of X11, though listing +*** util/build.orig Sun Mar 31 10:56:09 1996 +--- util/build Sun Mar 31 10:57:21 1996 +*************** +*** 96,102 **** + + TMP_LEADER="${TMP_DIR}/buildl$$" + TMP_TRAILER="${TMP_DIR}/buildt$$" +! trap 'rm -f ${TMP_LEADER} ${TMP_TRAILER}; exit 1' 1 2 3 4 6 7 8 9 10 12 13 14 15 + echo > "${TMP_TRAILER}" + BAD=false + DEBUG= +--- 96,102 ---- + + TMP_LEADER="${TMP_DIR}/buildl$$" + TMP_TRAILER="${TMP_DIR}/buildt$$" +! trap 'rm -f ${TMP_LEADER} ${TMP_TRAILER}; exit 1' 1 2 3 4 6 7 8 10 12 13 14 15 + echo > "${TMP_TRAILER}" + BAD=false + DEBUG= +*** src/lib/fte/resource.c.orig Sun Mar 31 10:59:57 1996 +--- src/lib/fte/resource.c Sun Mar 31 11:00:57 1996 +*************** +*** 369,375 **** +--- 369,377 ---- + long x; + SIGNAL_TYPE (*orig_signal)( ); + ++ #ifndef __FreeBSD__ + if (getenv("SPICE_NO_DATASEG_CHECK")) ++ #endif + return 0; + + low = 0; +*** src/include/misc.h.orig Thu Dec 1 09:17:02 1994 +--- src/include/misc.h Sun Mar 31 12:32:58 1996 +*************** +*** 86,92 **** +--- 86,94 ---- + extern char *realloc(); + extern char *getenv(); + extern int errno; ++ #ifndef __FreeBSD__ + extern char *sys_errlist[]; ++ #endif + extern char *getenv(); + extern char *getwd(); + extern int rand(); +*************** +*** 111,122 **** +--- 111,124 ---- + # endif /* clearerr */ + # endif /* HAS_CLEARERR */ + ++ #ifndef __FreeBSD__ + # ifndef bzero + extern int bzero(); + # endif + # ifndef bcopy + extern void bcopy(); + # endif ++ #endif /* __FreeBSD__ */ + + # ifndef index + # ifdef HAS_INDEX +*** src/include/os_bsd.h.orig Sat Apr 24 18:09:46 1993 +--- src/include/os_bsd.h Tue Jun 2 22:28:04 1998 +*************** +*** 8,19 **** + + #include "os_unix.h" + + #define HAS_NO_ATRIGH_DECL /* if asinh( ) is not in math.h */ +- #define HAS_ATRIGH /* acosh( ), asinh( ), atanh( ) */ + #define HAS_FTIME /* ftime( ), */ + #define HAS_TERMCAP /* tgetxxx( ) */ + #define HAS_VFORK /* BSD-ism, should not be necessary */ +- #define HAS_INDEX /* index( ) instead of strchr( ) */ + #define HAS_BCOPY /* bcopy( ), bzero( ) */ + #define HAS_BSDRANDOM /* srandom( ) and random( ) */ + #define HAS_BSDTTY /* */ +--- 8,23 ---- + + #include "os_unix.h" + ++ #ifndef __FreeBSD__ + #define HAS_NO_ATRIGH_DECL /* if asinh( ) is not in math.h */ + #define HAS_FTIME /* ftime( ), */ ++ #define HAS_INDEX /* index( ) instead of strchr( ) */ ++ #define HAS_STRINGS /* use instead of */ ++ #endif ++ ++ #define HAS_ATRIGH /* acosh( ), asinh( ), atanh( ) */ + #define HAS_TERMCAP /* tgetxxx( ) */ + #define HAS_VFORK /* BSD-ism, should not be necessary */ + #define HAS_BCOPY /* bcopy( ), bzero( ) */ + #define HAS_BSDRANDOM /* srandom( ) and random( ) */ + #define HAS_BSDTTY /* */ +*************** +*** 22,25 **** + #define HAS_BSDRLIMIT /* getrlimit( ) */ + #define HAS_DUP2 + #define HAS_GETWD /* getwd(buf) */ +! #define HAS_STRINGS /* use instead of */ +--- 26,35 ---- + #define HAS_BSDRLIMIT /* getrlimit( ) */ + #define HAS_DUP2 + #define HAS_GETWD /* getwd(buf) */ +! +! #ifdef __FreeBSD__ +! #define HAS_BSDSOCKETS /* , socket( ), etc. */ +! #define HAS_BSDTIME /* gettimeofday( ) return time */ +! #define HAS_FLOAT_H /* float.h */ +! #define HAS_STRCHR /* strchr( ) instead of index( ) */ +! #endif diff --git a/cad/spice/patches/patch-ab b/cad/spice/patches/patch-ab new file mode 100644 index 00000000000..b271cc97905 --- /dev/null +++ b/cad/spice/patches/patch-ab @@ -0,0 +1,141 @@ +NOTE: This are Berkeley patches for 3F4 +*** src/lib/fte/grid.c.orig Sun Apr 25 14:53:11 1993 +--- src/lib/fte/grid.c Sat Jan 29 10:47:59 1994 +*************** +*** 17,22 **** +--- 17,23 ---- + #include "suffix.h" + + #define RAD_TO_DEG (180.0 / M_PI) ++ #define LABEL_CHARS 20 + + static double *lingrid(), *loggrid(); + static void polargrid(), smithgrid(); +*************** +*** 225,231 **** + int max; + static double dd[2]; + int mult = 1; +! char buf[16], *s; + int slim, digits; + + if (axis == y_axis && graph->grid.ysized) { +--- 226,232 ---- + int max; + static double dd[2]; + int mult = 1; +! char buf[LABEL_CHARS], *s; + int slim, digits; + + if (axis == y_axis && graph->grid.ysized) { +*************** +*** 477,483 **** + drawlingrid(graph, units, spacing, nsp, dst, lmt, hmt, onedec, mult, mag, + digits, axis) + GRAPH *graph; +! char units[16]; + bool onedec; + int nsp, spacing, mult; + double hmt, lmt, dst; +--- 478,484 ---- + drawlingrid(graph, units, spacing, nsp, dst, lmt, hmt, onedec, mult, mag, + digits, axis) + GRAPH *graph; +! char *units; + bool onedec; + int nsp, spacing, mult; + double hmt, lmt, dst; +*************** +*** 488,494 **** + + int i, j; + double m, step; +! char buf[16]; + + /* i counts how many pixels we have drawn, and j counts which unit + * we are at. +--- 489,495 ---- + + int i, j; + double m, step; +! char buf[LABEL_CHARS]; + + /* i counts how many pixels we have drawn, and j counts which unit + * we are at. +*************** +*** 567,573 **** + double k; + double decs; + double mag, gain; +! char buf[32], *s; + + if (axis == x_axis && graph->grid.xsized) { + lmt = graph->grid.xaxis.log.lmt; +--- 568,574 ---- + double k; + double decs; + double mag, gain; +! char buf[LABEL_CHARS], *s; + + if (axis == x_axis && graph->grid.xsized) { + lmt = graph->grid.xaxis.log.lmt; +*************** +*** 671,677 **** + { + int i, j, k, l, m; + double t; +! char buf[16]; + + /* Now plot every pp'th decade line, with subs lines between them. */ + if (subs > 1) +--- 672,678 ---- + { + int i, j, k, l, m; + double t; +! char buf[LABEL_CHARS]; + + /* Now plot every pp'th decade line, with subs lines between them. */ + if (subs > 1) +*** src/lib/fte/newcoms.c.orig Sun Mar 7 16:30:58 1993 +--- src/lib/fte/newcoms.c Wed Feb 23 22:39:55 1994 +*************** +*** 151,156 **** +--- 151,160 ---- + /* Copy from the first */ + vname = cp_unquote(wl->wl_word); + dv = vec_get(vname); ++ if (!dv) { ++ printf("'%s' reference vector not found\n", vname); ++ return; ++ } + numdims = dv->v_numdims; + dims = dv->v_dims; + wl = wl->wl_next; +*** src/lib/sparse/spsmp.c.orig Wed Feb 3 14:20:50 1993 +--- src/lib/sparse/spsmp.c Sun Jan 30 11:53:10 1994 +*************** +*** 483,492 **** + int CreateIfMissing; + { + MatrixPtr Matrix = (MatrixPtr)eMatrix; +! ElementPtr Element = Matrix->FirstInCol[Col]; + + /* Begin `SMPfindElt'. */ + ASSERT( IS_SPARSE( Matrix ) ); + Element = spcFindElementInCol(Matrix, &Element, Row, Col, CreateIfMissing); + return (SMPelement *)Element; + } +--- 485,497 ---- + int CreateIfMissing; + { + MatrixPtr Matrix = (MatrixPtr)eMatrix; +! ElementPtr Element; + + /* Begin `SMPfindElt'. */ + ASSERT( IS_SPARSE( Matrix ) ); ++ Row = Matrix->ExtToIntRowMap[Row]; ++ Col = Matrix->ExtToIntColMap[Col]; ++ Element = Matrix->FirstInCol[Col]; + Element = spcFindElementInCol(Matrix, &Element, Row, Col, CreateIfMissing); + return (SMPelement *)Element; + } diff --git a/cad/spice/patches/patch-ac b/cad/spice/patches/patch-ac new file mode 100644 index 00000000000..8ad35674f7b --- /dev/null +++ b/cad/spice/patches/patch-ac @@ -0,0 +1,62 @@ +*** src/bin/sconvert.c.orig Tue Aug 19 17:44:17 1997 +--- src/bin/sconvert.c Tue Aug 19 17:47:11 1997 +*************** +*** 80,98 **** + + case 1: printf("Input file: "); + (void) fflush(stdout); +! (void) gets(buf); + sf = copy(buf); + printf("Input type: "); + (void) fflush(stdout); +! (void) gets(buf); + f = buf[0]; + printf("Output file: "); + (void) fflush(stdout); +! (void) gets(buf); + af = copy(buf); + printf("Output type: "); + (void) fflush(stdout); +! (void) gets(buf); + t = buf[0]; + break; + default: +--- 80,98 ---- + + case 1: printf("Input file: "); + (void) fflush(stdout); +! (void) fgets(buf,BSIZE_SP,stdin); + sf = copy(buf); + printf("Input type: "); + (void) fflush(stdout); +! (void) fgets(buf,BSIZE_SP,stdin); + f = buf[0]; + printf("Output file: "); + (void) fflush(stdout); +! (void) fgets(buf,BSIZE_SP,stdin); + af = copy(buf); + printf("Output type: "); + (void) fflush(stdout); +! (void) fgets(buf,BSIZE_SP,stdin); + t = buf[0]; + break; + default: +*** src/lib/fte/inp.c.orig Tue Aug 19 17:38:25 1997 +--- src/lib/fte/inp.c Tue Aug 19 17:33:01 1997 +*************** +*** 666,672 **** + + fprintf(cp_out, "run circuit? "); + fflush(cp_out); +! (void) gets(buf); + if (buf[0] != 'n') { + fprintf(cp_out, "running circuit\n"); + com_run(NULL); +--- 666,672 ---- + + fprintf(cp_out, "run circuit? "); + fflush(cp_out); +! (void) fgets(buf,BSIZE_SP,stdin); + if (buf[0] != 'n') { + fprintf(cp_out, "running circuit\n"); + com_run(NULL); diff --git a/cad/spice/pkg/COMMENT b/cad/spice/pkg/COMMENT new file mode 100644 index 00000000000..c00e708fabc --- /dev/null +++ b/cad/spice/pkg/COMMENT @@ -0,0 +1 @@ +A general-purpose circuit simulation program diff --git a/cad/spice/pkg/DESCR b/cad/spice/pkg/DESCR new file mode 100644 index 00000000000..4d7c58e2c68 --- /dev/null +++ b/cad/spice/pkg/DESCR @@ -0,0 +1,16 @@ +SPICE is a general-purpose circuit simulation program for nonlinear dc, +nonlinear transient, and linear ac analyses. Circuits may contain resistors, +capacitors, inductors, mutual inductors, independent voltage and current +sources, four types of dependent sources, lossless and lossy transmission +lines (two separate implementations), switches, uniform distributed RC +lines, and the five most common semiconductor devices: diodes, BJTs, JFETs, +MESFETs, and MOSFETs. + + From the SPICE3 Version3f3 User's Manual. + This is availble as a postscript document from: + ftp://ic.eecs.berkeley.edu/pub/Spice3/um.3f3.ps + or you can read the online documentation at: + http://infopad.eecs.berkeley.edu/~icdesign/SPICE/ + +Julian Jenkins +kaveman@magna.com.au diff --git a/cad/spice/pkg/PLIST b/cad/spice/pkg/PLIST new file mode 100644 index 00000000000..f68f6dd8faa --- /dev/null +++ b/cad/spice/pkg/PLIST @@ -0,0 +1,41 @@ +bin/spice3 +bin/nutmeg +bin/sconvert +bin/help +bin/proc2mod +bin/multidec +share/examples/spice3/bjtnoise.cir +share/examples/spice3/bsim1tst.cir +share/examples/spice3/bsim2tst.cir +share/examples/spice3/diffpair.cir +share/examples/spice3/diodisto.cir +share/examples/spice3/ltra_1.cir +share/examples/spice3/ltra_2.cir +share/examples/spice3/ltra_3.cir +share/examples/spice3/mixdisto.cir +share/examples/spice3/mos6inv.cir +share/examples/spice3/mosamp2.cir +share/examples/spice3/mosmem.cir +share/examples/spice3/pz2.cir +share/examples/spice3/pzt.cir +share/examples/spice3/rc.cir +share/examples/spice3/rca3040.cir +share/examples/spice3/resnoise.cir +share/examples/spice3/rtlinv.cir +share/examples/spice3/schmitt.cir +share/examples/spice3/simplepz.cir +share/spice3/helpdir/spice.txt +share/spice3/helpdir/spice.idx +share/spice3/scripts/setplot +share/spice3/scripts/spinit +share/spice3/mfbcap +share/spice3/news +man/man5/mfbcap.5.gz +man/man1/sconvert.1.gz +man/man1/nutmeg.1.gz +man/man1/spice.1.gz +man/man3/mfb.3.gz +@dirrm share/examples/spice3 +@dirrm share/spice3/helpdir +@dirrm share/spice3/scripts +@dirrm share/spice3 diff --git a/cad/spice/scripts/configure b/cad/spice/scripts/configure new file mode 100644 index 00000000000..a7a9c4a1c07 --- /dev/null +++ b/cad/spice/scripts/configure @@ -0,0 +1,5 @@ +#!/bin/sh + +rm -f ${WRKSRC}/makefile +cp ${FILESDIR}/Makefile ${WRKSRC}/Makefile +cp ${FILESDIR}/FreeBSD ${WRKSRC}/conf/FreeBSD \ No newline at end of file -- cgit v1.2.3