Browse Source

Applied a set of patches from Steven Borley. See changelog for details.

pre-master-46
pnenzi 21 years ago
parent
commit
0c2ff31d0b
  1. 29
      ChangeLog
  2. 30
      configure.in
  3. 2
      src/frontend/aspice.c
  4. 9
      src/main.c
  5. BIN
      src/ngspice.idx
  6. 43
      src/ngspice.txt
  7. 4
      src/spicelib/devices/bsim3/b3set.c
  8. 9
      tests/bin/check.sh

29
ChangeLog

@ -1,3 +1,32 @@
2005-03-17 Paolo Nenzi <p.nenzi@ieee.org>
* src/main.c: Applied patch sent by Steven Borley
<steven.borley@diode.demon.co.uk> that removed the duplicate
declaration application_name and gnu_history_file, removed the
"static" keyword in shutdown() and set NULL as return value in
function prompt() when non prompt is passed to readline().
* src/ngspice.txt: Applied patch sent by Steven Borley
<steven.borley@diode.demon.co.uk> that fixed a few arrors that
corrputed text output.
* configure.in: Applied patch sent by Steven Borley
<steven.borley@diode.demon.co.uk> that fixes compiler warnings
on MAC OSX (related to the linking order of X libraries). The
remaining changes fix errors in spelling.
* tests/bin/check.sh: Applied patch sent by Steven Borley
<steven.borley@diode.demon.co.uk> that added support for Mac OSX
and a default case for not (yet) supported architectures.
* src/frontend/aspice.c: Applied patch sent by Steven Borley
<steven.borley@diode.demon.co.uk> that fixedscompiler warning on
Mac OSX in definition of "status".
* src/spicelib/devices/bsim3/b3set.c: Applied patch sent by Steven
Borley <steven.borley@diode.demon.co.uk> that remove the compiler
warnings about ambiguos "else".
2005-03-13 Paolo Nenzi <p.nenzi@ieee.org> 2005-03-13 Paolo Nenzi <p.nenzi@ieee.org>
* tests/bin/check.sh: Changed the previous check script with the one * tests/bin/check.sh: Changed the previous check script with the one

30
configure.in

@ -109,7 +109,7 @@ dnl --enable-experimental : define EXPERIMENTAL_CODE for the code
AC_ARG_ENABLE(experimental, AC_ARG_ENABLE(experimental,
[ --enable-experimental Enable some experimental code]) [ --enable-experimental Enable some experimental code])
dnl --enable-expdevices : Enable the compilation of experimental deviced
dnl --enable-expdevices : Enable the compilation of experimental devices
AC_ARG_ENABLE(expdevices, AC_ARG_ENABLE(expdevices,
[ --enable-expdevices Enable experimental devices (they do not compile)]) [ --enable-expdevices Enable experimental devices (they do not compile)])
@ -119,11 +119,11 @@ AC_ARG_ENABLE(ekv,
dnl --enable-xspice: define XSPICE in the code. This is for xspice support dnl --enable-xspice: define XSPICE in the code. This is for xspice support
AC_ARG_ENABLE(xspice, AC_ARG_ENABLE(xspice,
[ --enable-xspice Enable XSpice enchancements, (experimental) ])
[ --enable-xspice Enable XSpice enhancements, (experimental) ])
dnl --enable-cider: define CIDER in the code. This is for CIDER support dnl --enable-cider: define CIDER in the code. This is for CIDER support
AC_ARG_ENABLE(cider, AC_ARG_ENABLE(cider,
[ --enable-cider Enable CIDER enchancements, (experimental) ])
[ --enable-cider Enable CIDER enhancements, (experimental) ])
dnl --enable-cluster: define CLUSTER in the code. This is for cluster support dnl --enable-cluster: define CLUSTER in the code. This is for cluster support
AC_ARG_ENABLE(cluster, AC_ARG_ENABLE(cluster,
@ -199,7 +199,7 @@ dnl CFLAGS="$CFLAGS -Werror"
fi fi
dnl Chech system we're on , and tune accordingly
dnl Check system we're on , and tune accordingly
AC_CANONICAL_HOST AC_CANONICAL_HOST
@ -239,13 +239,21 @@ dnl tests and compile without X11 support - otherwise, check if the following
dnl libraries are present (error if they are not) dnl libraries are present (error if they are not)
dnl In CYGWIN library ordering has to be changed. Is this compatible to LINUX? dnl In CYGWIN library ordering has to be changed. Is this compatible to LINUX?
dnl XShmAttach is a struct in CYGWIN, not a function dnl XShmAttach is a struct in CYGWIN, not a function
dnl SJB: 13th march 2005
dnl Library order is giving linker warnings on MacOSX
dnl It's not clear to me which order is required for Cygwin (see comment above)
dnl and neither can I find any authoritative answer for the correct link order
dnl for MacOSX or Linux, but
dnl -lXaw -lXmu -lXt -lXext -lX11
dnl seems to be the popular choice.
dnl (The previous order was -lX11 -lXt -lXext -lXmu -lXaw)
if test ! "$no_x" = "yes" ; then if test ! "$no_x" = "yes" ; then
X_LIBS="$X_LIBS -lX11 -lXt"
AC_CHECK_LIB(Xext, XShmAttach,X_LIBS="$X_LIBS -lXext",AC_MSG_ERROR(Couldn't find Xext librairies), $X_LIBS $X_EXTRA_LIBS)
AC_CHECK_LIB(Xmu,main,X_LIBS="$X_LIBS -lXmu",AC_MSG_ERROR(Couldn't find Xmu librairies), $X_LIBS $X_EXTRA_LIBS)
AC_CHECK_LIB(Xaw,main,X_LIBS="$X_LIBS -lXaw",AC_MSG_ERROR(Couldn't find Xaw librairies),$X_LIBS $X_EXTRA_LIBS)
AC_CHECK_LIB(Xaw,main,X_LIBS="$X_LIBS -lXaw",AC_MSG_ERROR(Couldn't find Xaw library),$X_LIBS $X_EXTRA_LIBS)
AC_CHECK_LIB(Xmu,main,X_LIBS="$X_LIBS -lXmu",AC_MSG_ERROR(Couldn't find Xmu library), $X_LIBS $X_EXTRA_LIBS)
X_LIBS="$X_LIBS -lXt"
AC_CHECK_LIB(Xext, XShmAttach,X_LIBS="$X_LIBS -lXext",AC_MSG_ERROR(Couldn't find Xext library), $X_LIBS $X_EXTRA_LIBS)
X_LIBS="$X_LIBS -lX11"
fi ;; fi ;;
@ -267,7 +275,7 @@ AC_CHECK_HEADERS(ctype.h unistd.h pwd.h fcntl.h string.h)
AC_HEADER_SYS_WAIT AC_HEADER_SYS_WAIT
AC_HEADER_STAT AC_HEADER_STAT
dnl Check time and ressources headers and functions:
dnl Check time and resources headers and functions:
AC_HEADER_TIME AC_HEADER_TIME
AC_STRUCT_TM AC_STRUCT_TM
AC_STRUCT_TIMEZONE AC_STRUCT_TIMEZONE
@ -499,7 +507,7 @@ AC_SUBST(XSPICELIB2)
AC_SUBST(XSPICETESTS) AC_SUBST(XSPICETESTS)
AC_SUBST(XSPICEINIT) AC_SUBST(XSPICEINIT)
dnl Add CIDER enhacements to ngspice.
dnl Add CIDER enhancements to ngspice.
if test "$enable_cider" = "yes"; then if test "$enable_cider" = "yes"; then
AC_MSG_RESULT(CIDER features enabled) AC_MSG_RESULT(CIDER features enabled)
AC_DEFINE(CIDER) AC_DEFINE(CIDER)

2
src/frontend/aspice.c

@ -178,7 +178,7 @@ sigchild(void)
#if defined(__NetBSD__) || defined(SOLARIS) #if defined(__NetBSD__) || defined(SOLARIS)
pid_t status; pid_t status;
#elif defined(__FreeBSD__)
#elif defined(__FreeBSD__) || defined(__APPLE__)
int status; int status;
#else #else
union wait status; union wait status;

9
src/main.c

@ -75,11 +75,6 @@ bool ft_intrpt = FALSE; /* Set by the (void) signal handlers. TRUE = we've b
bool ft_setflag = FALSE; /* TRUE = Don't abort simulation after an interrupt. */ bool ft_setflag = FALSE; /* TRUE = Don't abort simulation after an interrupt. */
char *ft_rawfile = "rawspice.raw"; char *ft_rawfile = "rawspice.raw";
#ifdef HAVE_GNUREADLINE
char gnu_history_file[512];
static char *application_name;
#endif
bool oflag = FALSE; /* Output über redefinierte Funktionen */ bool oflag = FALSE; /* Output über redefinierte Funktionen */
FILE *flogp; // hvogt 15.12.2001 FILE *flogp; // hvogt 15.12.2001
@ -323,7 +318,7 @@ int SIMinit(IFfrontEnd *frontEnd, IFsimulator **simulator)
/* -------------------------------------------------------------------------- */ /* -------------------------------------------------------------------------- */
/* Shutdown gracefully. */ /* Shutdown gracefully. */
int
static int
shutdown(int exitval) shutdown(int exitval)
{ {
cleanvars(); cleanvars();
@ -348,7 +343,7 @@ prompt()
char *p = pbuf, *s; char *p = pbuf, *s;
if (cp_interactive == FALSE) if (cp_interactive == FALSE)
return;
return NULL; /* NULL means no prompt */
if (cp_promptstring == NULL) if (cp_promptstring == NULL)
s = "-> "; s = "-> ";
else else

BIN
src/ngspice.idx

43
src/ngspice.txt

@ -4908,6 +4908,7 @@ TEXT: H any input file is considered a title line and not parsed
TEXT: H but kept as the name of the circuit. The exception to TEXT: H but kept as the name of the circuit. The exception to
TEXT: H this rule is the file ._s_p_i_c_e_i_n_i_t. Thus, a Spice3 com- TEXT: H this rule is the file ._s_p_i_c_e_i_n_i_t. Thus, a Spice3 com-
TEXT: H mand script must begin with a blank line and then with a TEXT: H mand script must begin with a blank line and then with a
TEXT: H .control line. Also, any line beginning with the char-
TEXT: H acters *# is considered a control line. This makes it TEXT: H acters *# is considered a control line. This makes it
TEXT: H possible to imbed commands in Spice3 input files that TEXT: H possible to imbed commands in Spice3 input files that
TEXT: H are ignored by earlier versions of Spice2 TEXT: H are ignored by earlier versions of Spice2
@ -5604,26 +5605,28 @@ TEXT: H
TEXT: H There are several set variables that Spice3 uses but TEXT: H There are several set variables that Spice3 uses but
TEXT: H Nutmeg does not. They are: TEXT: H Nutmeg does not. They are:
TEXT: H TEXT: H
TEXT: H editor The editor to use for the edit command.
TEXT: H modelcard The name of the model card (normally
TEXT: H May.in -432u
TEXT: H noaskquit Do not check to make sure that there are
TEXT: H no circuits suspended and no plots un-
TEXT: H saved. Normally Spice3 warns the user
TEXT: H when he tries to quit if this is the
TEXT: H case.
TEXT: H nobjthack Assume that BJTs have 4 nodes.
TEXT: H noparse Don't attempt to parse input files when
TEXT: H they are read in (useful for debugging).
TEXT: H Of course, they cannot be run if they
TEXT: H are not parsed.
TEXT: H nosubckt Don't expand subcircuits.
TEXT: H renumber Renumber input lines when an input file
TEXT: H has .include's.
TEXT: H subend The card to end subcircuits (normally
TEXT: H subinvoke The prefix to invoke subcircuits (nor-
TEXT: H mally x).
TEXT: H substart The card to begin subcircuits (normally
TEXT: H editor The editor to use for the edit command.
TEXT: H modelcard The name of the model card (normally
TEXT: H .model).
TEXT: H noaskquit Do not check to make sure that there are
TEXT: H no circuits suspended and no plots un-
TEXT: H saved. Normally Spice3 warns the user
TEXT: H when he tries to quit if this is the
TEXT: H case.
TEXT: H nobjthack Assume that BJTs have 4 nodes.
TEXT: H noparse Don't attempt to parse input files when
TEXT: H they are read in (useful for debugging).
TEXT: H Of course, they cannot be run if they
TEXT: H are not parsed.
TEXT: H nosubckt Don't expand subcircuits.
TEXT: H renumber Renumber input lines when an input file
TEXT: H has .include's.
TEXT: H subend The card to end subcircuits (normally
TEXT: H .ends).
TEXT: H subinvoke The prefix to invoke subcircuits (nor-
TEXT: H mally x).
TEXT: H substart The card to begin subcircuits (normally
TEXT: H .subckt).
TEXT: H TEXT: H
TEXT: H TEXT: H

4
src/spicelib/devices/bsim3/b3set.c

@ -910,10 +910,12 @@ IFuid tmpName;
if (!here->BSIM3drainPerimeterGiven) if (!here->BSIM3drainPerimeterGiven)
here->BSIM3drainPerimeter = 0.0; here->BSIM3drainPerimeter = 0.0;
if (!here->BSIM3drainSquaresGiven) if (!here->BSIM3drainSquaresGiven)
{
if (model->BSIM3acmMod == 0) if (model->BSIM3acmMod == 0)
here->BSIM3drainSquares = 1.0; here->BSIM3drainSquares = 1.0;
else else
here->BSIM3drainSquares = 0.0; here->BSIM3drainSquares = 0.0;
}
if (!here->BSIM3icVBSGiven) if (!here->BSIM3icVBSGiven)
here->BSIM3icVBS = 0.0; here->BSIM3icVBS = 0.0;
if (!here->BSIM3icVDSGiven) if (!here->BSIM3icVDSGiven)
@ -927,10 +929,12 @@ IFuid tmpName;
if (!here->BSIM3sourcePerimeterGiven) if (!here->BSIM3sourcePerimeterGiven)
here->BSIM3sourcePerimeter = 0.0; here->BSIM3sourcePerimeter = 0.0;
if (!here->BSIM3sourceSquaresGiven) if (!here->BSIM3sourceSquaresGiven)
{
if (model->BSIM3acmMod == 0) if (model->BSIM3acmMod == 0)
here->BSIM3sourceSquares = 1.0; here->BSIM3sourceSquares = 1.0;
else else
here->BSIM3sourceSquares = 0.0; here->BSIM3sourceSquares = 0.0;
}
if (!here->BSIM3wGiven) if (!here->BSIM3wGiven)
here->BSIM3w = 5.0e-6; here->BSIM3w = 5.0e-6;
if (!here->BSIM3nqsModGiven) if (!here->BSIM3nqsModGiven)

9
tests/bin/check.sh

@ -8,7 +8,7 @@ FILTER="Note|Circuit|Trying|Reference|Date|Doing|---|v-sweep|time|Error|Warning|
testname=`basename $TEST .cir` testname=`basename $TEST .cir`
testdir=`dirname $TEST` testdir=`dirname $TEST`
HOST_TYPE=`/bin/uname -srvm`
HOST_TYPE=`uname -srvm`
case $HOST_TYPE in case $HOST_TYPE in
MINGW32*) MINGW32*)
@ -23,7 +23,7 @@ case $HOST_TYPE in
sed -e 's/e-000/e+000/g' $testname.test | sed 's/e-0/e-/g' | sed 's/e+0/e+/g' > $testname.test_tmp sed -e 's/e-000/e+000/g' $testname.test | sed 's/e-0/e-/g' | sed 's/e+0/e+/g' > $testname.test_tmp
mv $testname.test_tmp $testname.test mv $testname.test_tmp $testname.test
;; ;;
Linux*)
Linux*|Darwin*)
$SPICE --batch $testdir/$testname.cir >$testname.test &&\ $SPICE --batch $testdir/$testname.cir >$testname.test &&\
egrep -v $FILTER $testname.test > $testname.test_tmp &&\ egrep -v $FILTER $testname.test > $testname.test_tmp &&\
egrep -v $FILTER $testdir/$testname.out > $testname.out_tmp egrep -v $FILTER $testdir/$testname.out > $testname.out_tmp
@ -43,6 +43,11 @@ case $HOST_TYPE in
fi fi
rm -f $testname.test_tmp $testname.out_tmp rm -f $testname.test_tmp $testname.out_tmp
;; ;;
*)
echo Unknown system type!
echo $HOST_TYPE
echo ./tests/bin/checks.sh may need updating for your system
;;
esac esac
exit 1 exit 1
Loading…
Cancel
Save