bugfix no. 2859013, comments

This commit is contained in:
h_vogt 2009-09-20 20:28:12 +00:00
parent 881908ec47
commit 2eba12d518
4 changed files with 128 additions and 137 deletions

View File

@ -1,3 +1,8 @@
2009-09-20 Holger Vogt
* inpmkmod.c: fix bug no. 2859013
* INSTALL corrected
* xspice/mif/mifgetmod.c: comments
2009-09-19 Holger Vogt
* fteext.h, inpcom.c, inp.c, options.c, winmain.c:
variable ngdebug added, sets ft_ngdebug,

186
INSTALL
View File

@ -268,8 +268,8 @@ This file describes the procedures to install ngspice from sources.
So if you intend to create a separate object file tree like
ng-spice-rework/ngbuild/release, you may do the following, starting
from the default directory ng-spice-rework:
mkdir -p ngbuild/release
mkdir -p ngbuild/release
cd ngbuild/release
../../configure <some options>
make install
@ -470,112 +470,104 @@ This file describes the procedures to install ngspice from sources.
the code models *.cm for XSpice requires installation of BISON and FLEX to
MSYS. A typical installation was tested with:
bison-2.0-MSYS.tar.gz
flex-2.5.4a-1-bin.zip
libiconv-1.9.2-1-bin.zip
libintl-0.14.4-bin.zip
bison-2.0-MSYS.tar.gz
flex-2.5.4a-1-bin.zip
libiconv-1.9.2-1-bin.zip
libintl-0.14.4-bin.zip
Bison 2.0 is now superseeded by newer releases (Bison 2.3, see
http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=67879)
http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=67879)
The last three are from
http://sourceforge.net/project/showfiles.php?group_id=23617.
http://sourceforge.net/project/showfiles.php?group_id=23617.
You may also look at
http://www.mingw.org/wiki/HOWTO_Install_the_MinGW_GCC_Compiler_Suite
http://www.mingw.org/wiki/MSYS
http://www.mingw.org/wiki/HOWTO_Create_an_MSYS_Build_Environment.
http://www.mingw.org/wiki/HOWTO_Create_an_MSYS_Build_Environment.
9.2 make ngspice with MS Visual Studio 2008
ngspice may now be compiled with MS Visual Studio 2008.
CIDER and XSPICE are included, but the code models for XSPICE
(*.cm) are not (yet) made. You may however use the code models
created with MINGW (which in fact are dlls), as e.g. found in
the ngspice binary distribution.
There is currently no installation procedure provided, you may
however install the executable manually as described below:
ngspice may now be compiled with MS Visual Studio 2008.
CIDER and XSPICE are included, but the code models for XSPICE
(*.cm) are not (yet) made. You may however use the code models
created with MINGW (which in fact are dlls), as e.g. found in
the ngspice binary distribution.
There is currently no installation procedure provided, you may
however install the executable manually as described in the
installation tree below.
The directory (visualc) with its files
vngspice.sln (project starter) and
vngspice.vcproj (project contents)
allows to compile and link ngspice with MS Visual Studio 2008.
The project is probably not compatible with Visual Studio 2005.
/visualc/include contains a dedicated config.h file. It contains the
preprocessor definitions required to properly compile the code.
strings.h has been necessary during setting up the project.
The directory (visualc) with its files
vngspice.sln (project starter) and
vngspice.vcproj (project contents)
allows to compile and link ngspice with MS Visual Studio 2008.
The project is probably not compatible with Visual Studio 2005.
CIDER and XSPICE are included, but the code models for XSPICE
(*.cm) are not (yet) made. You may however use the code models
created with MINGW (which in fact are dlls), as e.g. found in
the ngspice binary distribution.
There is currently no installation procedure provided, you may
however install the executable manually as described in the
installation tree below.
/visualc/include contains a dedicated config.h file. It contains the
preprocessor definitions required to properly compile the code.
strings.h has been necessary during setting up the project.
Install Microsoft Visual Studio 2008 C++ . The
MS VS 2008 C++ Express Edition (which is available at no cost from
http://www.microsoft.com/express/product/default.aspx) is adequate.
Goto /ng-spice-rework/visualc.
Start MS Visual Studio 2008 by double click onto vngspice.sln.
After MS Visual Studio has opened up, select debug or release version
by checking 'Erstellen' , 'Konfigurations-Manager' 'Debug' or 'Release'.
Start making ngspice (called vngspice.exe) by selecting 'Erstellen' and
'vngspice neu erstellen'.
Object files will be created and stored in visualc/debug or visualc/release.
The executable will be stored to visualc/debug/bin or visualc/release/bin.
An installation tree (as provided with MINGW make install) and also used by
vngspice is (maybe created manually):
C:\Spice\
bin\
ngspice.exe
nghelp.exe
ngmakeidx.exe
ngnutmeg.exe
cmpp.exe
lib\
spice\
analog.cm
digital.cm
spice2poly.cm
extradev.cm
extravt.cm
share\
info\
dir
ngspice.info
ngspice.info-1
..
ngspice.info-10
man\
man1\
ngmultidec.1
ngnutmeg.1
ngsconvert.1
ngspice.1
ng-spice-rework\
helpdir\
ngspice.idx
ngspice.txt
scripts\
ciderinit
devaxis
devload
setplot
spectrum
spinit
MS VS 2008 C++ Express Edition (which is available at no cost from
http://www.microsoft.com/express/product/default.aspx) is adequate.
Goto /ng-spice-rework/visualc.
Start MS Visual Studio 2008 by double click onto vngspice.sln.
After MS Visual Studio has opened up, select debug or release version
by checking 'Erstellen' , 'Konfigurations-Manager' 'Debug' or 'Release'.
Start making ngspice (called vngspice.exe) by selecting 'Erstellen' and
'vngspice neu erstellen'.
Object files will be created and stored in visualc/debug or visualc/release.
The executable will be stored to visualc/debug/bin or visualc/release/bin.
An installation tree (as provided with MINGW make install) and also used by
vngspice is (maybe created manually):
C:\Spice\
bin\
ngspice.exe
nghelp.exe
ngmakeidx.exe
ngnutmeg.exe
cmpp.exe
lib\
spice\
analog.cm
digital.cm
spice2poly.cm
extradev.cm
extravt.cm
share\
info\
dir
ngspice.info
ngspice.info-1
..
ngspice.info-10
man\
man1\
ngmultidec.1
ngnutmeg.1
ngsconvert.1
ngspice.1
ng-spice-rework\
helpdir\
ngspice.idx
ngspice.txt
scripts\
ciderinit
devaxis
devload
setplot
spectrum
spinit
If you intend to install vngspice into another directory, e.g. D:\MySpice,
you have to edit /visualc/include/config.h and alter the entries:

View File

@ -10,7 +10,7 @@ Author: 1985 Thomas L. Quarles
#include "inp.h"
/* global input model table. */
INPmodel *modtab;
INPmodel *modtab = NULL;
/*--------------------------------------------------------------
* This fcn takes the model name and looks to see if it is already
@ -21,35 +21,35 @@ INPmodel *modtab;
int INPmakeMod(char *token, int type, card * line)
{
register INPmodel **i;
register INPmodel **i;
/* First cycle through model table and see if model name
already exists in there. If it does, just return. */
for (i = &modtab; *i != (INPmodel *) NULL; i = &((*i)->INPnextModel)) {
if (strcmp((*i)->INPmodName, token) == 0) {
return (OK);
}
}
/* First cycle through model table and see if model name
already exists in there. If it does, just return. */
for (i = &modtab; *i != (INPmodel *) NULL; i = &((*i)->INPnextModel)) {
if (strcmp((*i)->INPmodName, token) == 0) {
return (OK);
}
}
/* Model name was not already in model table. Therefore stick
it in the model table. Then reutrn. */
/* Model name was not already in model table. Therefore stick
it in the model table. Then return. */
#ifdef TRACE
/* debug statement */
printf("In INPmakeMod, about to insert new model name = %s . . .\n", token);
/* debug statement */
printf("In INPmakeMod, about to insert new model name = %s . . .\n", token);
#endif
*i = (INPmodel *) MALLOC(sizeof(INPmodel));
if (*i == NULL)
return (E_NOMEM);
*i = (INPmodel *) MALLOC(sizeof(INPmodel));
if (*i == NULL)
return (E_NOMEM);
(*i)->INPmodName = token; /* model name */
(*i)->INPmodType = type; /* model type */
(*i)->INPnextModel = (INPmodel *) NULL; /* pointer to next model (end of list) */
(*i)->INPmodUsed = 0; /* model is unused */
(*i)->INPmodLine = line; /* model line */
(*i)->INPmodfast = NULL;
return (OK);
(*i)->INPmodName = token; /* model name */
(*i)->INPmodType = type; /* model type */
(*i)->INPnextModel = (INPmodel *) NULL; /* pointer to next model (end of list) */
(*i)->INPmodUsed = 0; /* model is unused */
(*i)->INPmodLine = line; /* model line */
(*i)->INPmodfast = NULL;
return (OK);
}

View File

@ -45,18 +45,14 @@ NON-STANDARD FEATURES
============================================================================*/
/* #include "prefix.h" */
#include "ngspice.h"
#include <stdio.h>
#include "inpdefs.h" /* maschmann : kleinbuchstaben */
#include "devdefs.h" /* maschmann : kleinbuchstaben */
//#include "util.h"
#include "ifsim.h" /* maschmann : kleinbuchstaben */
#include "cpstd.h" /* maschmann : kleinbuchstaben */
#include "fteext.h" /* maschmann : kleinbuchstaben */
#include "inpdefs.h"
#include "devdefs.h"
#include "ifsim.h"
#include "cpstd.h"
#include "fteext.h"
#include "mifproto.h"
#include "mifdefs.h"
@ -64,8 +60,8 @@ NON-STANDARD FEATURES
#include "suffix.h"
/* This is the table of all models known to the program. */
/* It is now defined in inpdefs.h 6.19.2003 -- SDB. */
/* This is the table of all models known to the program.
It is now defined in inpmkmod.c. */
extern INPmodel *modtab;
extern SPICEdev **DEVices; /* info about all device types */
@ -86,13 +82,11 @@ defaulted later by MIFsetup(). The function returns NULL when
successful, and an error string on failure.
*/
/* char *MIFgetMod(ckt,name,model,tab) */ /* former buggy calling method */
char *MIFgetMod(
void *ckt, /* The circuit structure */
char *name, /* The name of the model to look for */
INPmodel **model, /* The model found/created */
INPtables *tab /* Table of model info from first pass */
void *ckt, /* The circuit structure */
char *name, /* The name of the model to look for */
INPmodel **model, /* The model found/created */
INPtables *tab /* Table of model info from first pass */
)
{
INPmodel *modtmp;