715 lines
24 KiB
Plaintext
715 lines
24 KiB
Plaintext
Ngspice installation instructions
|
|
=================================
|
|
|
|
Table of contents
|
|
|
|
1 Ngspice installation (LINUX)
|
|
1.1 Prerequisites
|
|
1.2 Install from tarball (e.g. ngspice-27.tar.gz)
|
|
1.3 Install from git repository
|
|
1.4 Advanced Install
|
|
1.4.1 Most useful options
|
|
1.4.2 Options Specific to Enable Ngspice as a shared library
|
|
1.4.3 Options Specific to Using Ngspice
|
|
1.4.4 Options Useful for Debugging Ngspice
|
|
2 Compilers and Options
|
|
3 Compiling For Multiple Architectures
|
|
4 Installation Names
|
|
5 Optional Features
|
|
6 Specifying the System Type
|
|
7 Sharing Defaults
|
|
8 Operation Controls
|
|
9 NGSPICE COMPILATION UNDER WINDOWS OS
|
|
9.1 How to make ngspice with MINGW and MSYS
|
|
9.2 make ngspice with MS Visual Studio 2015/2017
|
|
9.3 make ngspice with pure CYGWIN
|
|
9.4 ngspice console app with MINGW or CYGWIN
|
|
9.5 cross compiling ngspice for Windows from LINUX
|
|
10 NGSPICE COMPILATION UNDER macOS
|
|
|
|
This file describes the procedures to install ngspice from sources.
|
|
|
|
|
|
1 Ngspice Installation (LINUX, maybe others)
|
|
====================
|
|
|
|
1.1 Prerequisites
|
|
|
|
Ngspice is written in C and thus a complete C compilation environment
|
|
is needed. Almost any LINUX offers a complete C development environment.
|
|
Ngspice is developed on GNU/Linux with gcc and GNU make.
|
|
|
|
The following software must be installed in your system to compile ngspice:
|
|
bison, flex, and X11 headers and libs.
|
|
|
|
If you want to compile the source from the git repository you need
|
|
additional software: autoconf, automake, libtool, texinfo, readline.
|
|
|
|
The following software may be needed when enabling additional features:
|
|
editline, tcl/tk, adms
|
|
|
|
Please have a look at the actual ngspice manual, downloadable at
|
|
http://ngspice.sourceforge.net/docs.html, which gives you much more
|
|
information on ngspice and its usage.
|
|
|
|
|
|
1.2 Install from tarball (e.g. ngspice-27.tar.gz)
|
|
|
|
This covers installation from a release distribution (for example
|
|
ngspice-27.tar.gz, the so called tar ball).
|
|
|
|
After downloading the tar ball to a local directory unpack it using:
|
|
|
|
$ tar -zxvf ngspice-27.tar.gz
|
|
|
|
Now change directories in to the top-level source directory (where this
|
|
INSTALL file can be found).
|
|
|
|
You should be able to do:
|
|
|
|
$ mkdir release
|
|
$ cd release
|
|
$ ../configure --with-x --with-readline=yes --disable-debug
|
|
$ make
|
|
$ sudo make install
|
|
|
|
The default install directory for executables is /usr/local/bin.
|
|
|
|
A simple ../configure might be sufficient for a basic ngspice, but the preferred
|
|
arguments to ../configure are
|
|
--with-x --with-readline=yes and --disable-debug
|
|
providing you with a comfortably working ngspice (see section 1.4 for details).
|
|
|
|
See the section titled 'Advanced Install' for instructions about additional arguments
|
|
that can be passed to ../configure to customise the build and installation.
|
|
|
|
Do not use the script ./autogen.sh, because it is not required for
|
|
compiling and installing ngspice from the tarball.
|
|
|
|
A fully featured ngspice on LINUX may be obtained with the following commands:
|
|
$ mkdir release
|
|
$ cd release
|
|
$ ../configure --with-x --enable-xspice --disable-debug --enable-cider --with-readline=yes --enable-openmp
|
|
$ make 2>&1 | tee make.log
|
|
$ sudo make install
|
|
|
|
To remove the executables and libraries from the install directory, you may call
|
|
$ sudo make uninstall
|
|
|
|
|
|
1.3 Install from the git repository
|
|
|
|
This section describes how to install from source code taken directly
|
|
from the git repository. It is intended for those who want to use the most
|
|
recent enhancements of ngspice and for developers. For user install
|
|
instructions using source from a released distributions, please see the
|
|
sections titled 'Install from tarball' and 'Advanced Install'.
|
|
|
|
Download ngspice sources from the git repository as described on the sourceforge project page
|
|
(see http://ngspice.sourceforge.net/download.html and click on the git link)
|
|
|
|
Now change directories in to the top-level source directory (where this
|
|
INSTALL file can be found).
|
|
|
|
The project uses the GNU build process. The compile output should go into a separate
|
|
directory, so to e.g. maintain separate debug and release versions.
|
|
|
|
$ ./autogen.sh
|
|
$ mkdir debug
|
|
$ cd debug
|
|
$ ../configure --with-x --with-readline=yes
|
|
$ make
|
|
$ sudo make install
|
|
|
|
See the section titled 'Advanced Install' for instructions about arguments
|
|
that can be passed to ./configure to customise the build and installation.
|
|
|
|
Preferred arguments to ./configure to obtain a comfortably working ngspice may be
|
|
--with-readline=yes and --disable-debug (for a smaller and speed optimized
|
|
executable).
|
|
|
|
A fully featured ngspice on LINUX may be obtained with the following commands:
|
|
$ ./autogen.sh --adms
|
|
$ mkdir release
|
|
$ cd release
|
|
$ ../configure --with-x --enable-xspice --disable-debug --enable-cider --with-readline=yes --enable-openmp --enable-adms
|
|
$ make 2>&1 | tee make.log
|
|
$ sudo make install
|
|
|
|
If a problem is found with the build process, please submit a report to
|
|
the ngspice development team. Please provide information about your system
|
|
and any ./configure arguments you are using, together with any error
|
|
messages. Ideally you would have tried to fix the problem yourself first.
|
|
If you have fixed the problem then the development team will love to hear
|
|
from you.
|
|
|
|
|
|
1.4 Advanced Install
|
|
|
|
Some extra options can be provided to './configure'. To get all available
|
|
options do:
|
|
|
|
$ ./configure --help
|
|
|
|
Some of these options are generic to the GNU build process that is used by
|
|
Ngspice, other are specific to Ngspice.
|
|
|
|
The following sections provide some guidance and descriptions for many,
|
|
but not all, of these options.
|
|
|
|
1.4.1 Most useful options:
|
|
|
|
--enable-adms
|
|
ADMS is an experimental model compiler that translates
|
|
Verilog-A compact models into C code that can be compiled into
|
|
ngspice. This is (as of ngspice-27) still experimental, some
|
|
features (e.g. noise) are missing. If you want to use it, please
|
|
refer to the ADMS section on ngspice web site.
|
|
|
|
--enable-cider
|
|
Cider is a mixed-level simulator that couples Spice3 and DSIM
|
|
to simulate devices from their technological parameters.
|
|
|
|
--enable-xspice
|
|
Enable XSpice enhancements,
|
|
A mixed signal simulator built upon spice3 with codemodel
|
|
dynamic loading support. See the ngspice manual for details.
|
|
|
|
--with-readline=yes
|
|
Enable GNU readline support for the command line interface.
|
|
|
|
--enable-openmp
|
|
Compile ngspice for multi-core processors.
|
|
Parallelization is done by OpenMP, for MOS models in BSIM3.3.0
|
|
BSIM4.6.0 and and BSOI4 only. See the ngspice manual for details.
|
|
|
|
--disable-debug
|
|
This option will remove the '-g' option passed to the compiler
|
|
and add -O2 optimisation (instead of default O0).
|
|
This speeds up simulating significantly, and is recommended for
|
|
normal use.
|
|
|
|
|
|
1.4.2 Options Specific to Enable Ngspice as a shared library
|
|
|
|
--with-ngshared
|
|
This option let you compile ngspice as a shared
|
|
library or dll, allowing an application controlling
|
|
ngspice. This option excludes using --with-x or
|
|
--with-wingui. Useful additional options are
|
|
--enable-xspice --enable-cider --enable-openmp.
|
|
No graphics inetrface is provided, this has to be
|
|
handled by the controlling application.
|
|
|
|
--with-tcl=tcldir
|
|
When configured with this option the tcl module
|
|
"tclspice" is compiled and installed instead of
|
|
plain ngspice.
|
|
|
|
|
|
1.4.3 Options Specific to Using Ngspice
|
|
|
|
Most of the options now following are not well maintained, are not tested or even maybe obsolete.
|
|
|
|
--enable-capbypass
|
|
Bypass calculation of cbd/cbs in the mosfets if the vbs/vbd
|
|
voltages are unchanged.
|
|
|
|
--enable-cluster
|
|
Clustering code for distributed simulation. This is a
|
|
contribution never tested. This code comes from TCLspice
|
|
implementation and is implemented for transient analysis only.
|
|
|
|
--enable-expdevices
|
|
Enable experimental devices. This option is used by developers
|
|
to mask devices under development. Almost useless for users.
|
|
|
|
--enable-experimental
|
|
This enables some experimental code. Specifically it enables:
|
|
* The ability to save and load snapshots: adds
|
|
interactive keywords 'savesnap' and 'loadsnap'.
|
|
|
|
--enable-help
|
|
Force building nghelp. This is deprecated.
|
|
|
|
--enable-ndev
|
|
Enable NDEV interface, (experimental, needs updating)
|
|
A TCP/IP interface to external device simulator such as GSS.
|
|
For more information, please visit the homepage of GSS at
|
|
http://gss-tcad.sourceforge.net
|
|
|
|
--enable-newpred
|
|
Enable the NEWPRED symbol in the code.
|
|
|
|
--enable-newtrunc
|
|
Enable the newtrunc option
|
|
|
|
--enable-nodelimiting
|
|
Experimental damping scheme
|
|
|
|
--enable-nobypass
|
|
Don't bypass recalculations of slowly changing variables
|
|
|
|
--enable-predictor
|
|
Enable a predictor method for convergence
|
|
|
|
--enable-sense2
|
|
Use spice2 sensitivity analysis
|
|
|
|
--enable-xgraph
|
|
Compile the Xgraph plotting program.
|
|
Xgraph is a plotting package for X11 and was once very popular.
|
|
|
|
--with-editline=yes
|
|
Enables the use of the BSD editline library (libedit).
|
|
See http://www.thrysoee.dk/editline/
|
|
|
|
|
|
1.4.4 Options Useful for Debugging Ngspice
|
|
|
|
--enable-ansi
|
|
Configure will try to find an option for your compiler so that
|
|
it expects ansi-C.
|
|
|
|
--enable-asdebug
|
|
Debug sensitivity code *ASDEBUG*.
|
|
|
|
--enable-blktmsdebug
|
|
Debug distortion code *BLOCKTIMES*
|
|
|
|
--enable-checkergcc
|
|
Option for compilation with checkergcc.
|
|
|
|
--enable-cpdebug
|
|
Enable ngspice shell code debug.
|
|
|
|
--disable-debug
|
|
This option will remove the '-g' option passed to the compiler.
|
|
This speeds up compilation a *lot*, and is recommended for
|
|
normal use.
|
|
|
|
--enable-ftedebug
|
|
Enable ngspice frontend debug.
|
|
|
|
--enable-gc
|
|
Enable the Boehm-Weiser Conservative Garbage Collector.
|
|
|
|
--enable-pzdebug
|
|
Debug pole/zero code.
|
|
|
|
--enable-sensdebug
|
|
Debug sensitivity code *SENSDEBUG*.
|
|
|
|
--enable-smltmsdebug
|
|
Debug distortion code *SMALLTIMES*
|
|
|
|
--enable-smoketest
|
|
Enable smoketest compile.
|
|
|
|
--enable-stepdebug
|
|
Turns on debugging of convergence stepping??
|
|
|
|
|
|
2 Compilers and Options
|
|
=====================
|
|
|
|
Some systems require unusual options for compilation or linking that
|
|
the `configure' script does not know about. You can give `configure'
|
|
initial values for variables by setting them in the environment. Using
|
|
a Bourne-compatible shell, you can do that on the command line like
|
|
this:
|
|
CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
|
|
|
|
Or on systems that have the `env' program, you can do it like this:
|
|
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
|
|
|
|
3 Compiling For Multiple Architectures
|
|
====================================
|
|
|
|
You can compile the package for more than one kind of computer at the
|
|
same time, by placing the object files for each architecture in their
|
|
own directory. To do this, you must use a version of `make' that
|
|
supports the `VPATH' variable, such as GNU `make'. `cd' to the
|
|
directory where you want the object files and executables to go and run
|
|
the `configure' script. `configure' automatically checks for the
|
|
source code in the directory that `configure' is in and in `..'.
|
|
|
|
If you have to use a `make' that does not supports the `VPATH'
|
|
variable, you have to compile the package for one architecture at a time
|
|
in the source code directory. After you have installed the package for
|
|
one architecture, use `make distclean' before reconfiguring for another
|
|
architecture.
|
|
|
|
4 Installation Names
|
|
==================
|
|
|
|
By default, `make install' will install the package's files in
|
|
`/usr/local/bin', `/usr/local/man', etc. You can specify an
|
|
installation prefix other than `/usr/local' by giving `configure' the
|
|
option `--prefix=PATH'.
|
|
|
|
You can specify separate installation prefixes for
|
|
architecture-specific files and architecture-independent files. If you
|
|
give `configure' the option `--exec-prefix=PATH', the package will use
|
|
PATH as the prefix for installing programs and libraries.
|
|
Documentation and other data files will still use the regular prefix.
|
|
|
|
In addition, if you use an unusual directory layout you can give
|
|
options like `--bindir=PATH' to specify different values for particular
|
|
kinds of files. Run `configure --help' for a list of the directories
|
|
you can set and what kinds of files go in them.
|
|
|
|
If the package supports it, you can cause programs to be installed
|
|
with an extra prefix or suffix on their names by giving `configure' the
|
|
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
|
|
|
|
When installed on MinGW with MSYS alternative paths are not fully supported.
|
|
See 'How to make ngspice with MINGW and MSYS' below for details.
|
|
|
|
|
|
5 Optional Features
|
|
=================
|
|
|
|
Some packages pay attention to `--enable-FEATURE' options to
|
|
`configure', where FEATURE indicates an optional part of the package.
|
|
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
|
|
is something like `gnu-as' or `x' (for the X Window System). The
|
|
`README' should mention any `--enable-' and `--with-' options that the
|
|
package recognizes.
|
|
|
|
For packages that use the X Window System, `configure' can usually
|
|
find the X include and library files automatically, but if it doesn't,
|
|
you can use the `configure' options `--x-includes=DIR' and
|
|
`--x-libraries=DIR' to specify their locations.
|
|
|
|
6 Specifying the System Type
|
|
==========================
|
|
|
|
There may be some features `configure' can not figure out
|
|
automatically, but needs to determine by the type of host the package
|
|
will run on. Usually `configure' can figure that out, but if it prints
|
|
a message saying it can not guess the host type, give it the
|
|
`--host=TYPE' option. TYPE can either be a short name for the system
|
|
type, such as `sun4', or a canonical name with three fields:
|
|
CPU-COMPANY-SYSTEM
|
|
|
|
See the file `config.sub' for the possible values of each field. If
|
|
`config.sub' isn't included in this package, then this package doesn't
|
|
need to know the host type.
|
|
|
|
If you are building compiler tools for cross-compiling, you can also
|
|
use the `--target=TYPE' option to select the type of system they will
|
|
produce code for and the `--build=TYPE' option to select the type of
|
|
system on which you are compiling the package.
|
|
|
|
7 Sharing Defaults
|
|
================
|
|
|
|
If you want to set default values for `configure' scripts to share,
|
|
you can create a site shell script called `config.site' that gives
|
|
default values for variables like `CC', `cache_file', and `prefix'.
|
|
`configure' looks for `PREFIX/share/config.site' if it exists, then
|
|
`PREFIX/etc/config.site' if it exists. Or, you can set the
|
|
`CONFIG_SITE' environment variable to the location of the site script.
|
|
A warning: not all `configure' scripts look for a site script.
|
|
|
|
8 Operation Controls
|
|
==================
|
|
|
|
`configure' recognizes the following options to control how it
|
|
operates.
|
|
|
|
`--cache-file=FILE'
|
|
Use and save the results of the tests in FILE instead of
|
|
`./config.cache'. Set FILE to `/dev/null' to disable caching, for
|
|
debugging `configure'.
|
|
|
|
`--help'
|
|
Print a summary of the options to `configure', and exit.
|
|
|
|
`--quiet'
|
|
`--silent'
|
|
`-q'
|
|
Do not print messages saying which checks are being made. To
|
|
suppress all normal output, redirect it to `/dev/null' (any error
|
|
messages will still be shown).
|
|
|
|
`--srcdir=DIR'
|
|
Look for the package's source code in directory DIR. Usually
|
|
`configure' can determine that directory automatically.
|
|
|
|
`--version'
|
|
Print the version of Autoconf used to generate the `configure'
|
|
script, and exit.
|
|
|
|
`configure' also accepts some other, not widely useful, options.
|
|
|
|
|
|
|
|
9 NGSPICE COMPILATION UNDER WINDOWS OS
|
|
====================================
|
|
|
|
9.1 How to make ngspice with MINGW and MSYS
|
|
|
|
Creating ngspice with MINGW is a straight forward procedure,
|
|
if you have MSYS/MINGW installed properly. You will need some enhancements
|
|
to the standard install (FLEX and BISON have to be made available in MSYS).
|
|
Some links are given below which describe the procedures.
|
|
|
|
Installing from the tarball, e.g. ngspice-27.tar.gz, is now simple: After
|
|
expanding, you may just run ./compile_min.sh from the ngspice-27 directory.
|
|
|
|
The default installation location of ngspice is the Windows path
|
|
C:\spice. The install path can be altered by passing --prefix=NEWPATH
|
|
as an argument to ./configure during the build process.
|
|
|
|
Put the install path you desire inside "", e.g. "D:/NewSpice". Be
|
|
careful to use forward slashes "/", not backward slashes "\" (something
|
|
still to be fixed). Then add --prefix="D:/NewSpice" as an argument to
|
|
./configure in the normal way.
|
|
|
|
The procedure of compiling a distribution (for example, a tarball from
|
|
the ngspice website), is as follows:
|
|
|
|
$ cd ngspice-27
|
|
$ mkdir release
|
|
$ cd release
|
|
$ ../configure --with-wingui ...and other options
|
|
$ make
|
|
$ make install
|
|
|
|
The most useful options are:
|
|
--enable-xspice
|
|
--enable-cider
|
|
--disable-debug (-O2 optimization, no debug information)
|
|
|
|
A fully featured ngspice on Windows may be obtained with the following commands:
|
|
$ ./autogen.sh --adms
|
|
$ mkdir release
|
|
$ cd release
|
|
$ ../configure --with-wingui --enable-cider --disable-debug --enable-openmp --enable-xspice --enable-adms
|
|
$ make install
|
|
|
|
However, to compile code extracted from the git repository the procedure is
|
|
a little different. Firstly install git, e.g. from http://git-scm.com/download/win
|
|
To obtain ngspice, you may do the following:
|
|
|
|
Open the git command window. Go to a directory of your choice, e.g. D:\Spice
|
|
$ cd /d/Spice
|
|
|
|
Issue the command for downloading ngspice:
|
|
$ git clone git://ngspice.git.sourceforge.net/gitroot/ngspice/ngspice
|
|
|
|
This will create directory /ngspice .
|
|
|
|
Go to directory ngspice
|
|
$ cd /d/Spice/ngspice
|
|
Start compiling, e.g. by calling
|
|
$ ./autogen.sh --adms
|
|
$ ./compile_min.sh
|
|
|
|
Update the ngspice files:
|
|
Go to directory ngspice
|
|
$ cd /d/Spice/ngspice
|
|
Issue command for update
|
|
$ git pull
|
|
|
|
Instead of calling ./compile_min.sh, you may choose to issue
|
|
individual commands like:
|
|
$ cd ngspice
|
|
$ ./autogen.sh
|
|
$ mkdir release
|
|
$ cd release
|
|
$ ../configure --enable-maintainer-mode --with-wingui ...and other options
|
|
$ make
|
|
$ make install
|
|
|
|
MINGW and MSYS can be downloaded from http://www.mingw.org/. The making of
|
|
ngspice and 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 is now superseeded by newer releases (Bison 2.3, see
|
|
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.
|
|
|
|
Installing from git needs more packages to MSYS in advance:
|
|
git, automake, autoconf, libtool
|
|
|
|
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.
|
|
|
|
An alternative compiler setup is available at
|
|
http://tdm-gcc.tdragon.net/
|
|
|
|
|
|
9.2 make ngspice with MS Visual Studio 2008
|
|
|
|
ngspice may be compiled with MS Visual Studio 2015 or newer.
|
|
|
|
CIDER and XSPICE are included, the code models for XSPICE
|
|
(*.cm) are made as well.
|
|
|
|
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 2015.
|
|
Newer Visual Studio versions will translate the project files
|
|
into their compatible format (tested with MS Visual Studio 2017).
|
|
You may however deny the translation and compile in a VS 2015
|
|
compatibility mode.
|
|
|
|
/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 2017 Community with C/C++. For
|
|
example the German edition is available at no cost from
|
|
https://www.visualstudio.com/de/vs/community/.
|
|
|
|
Goto /ngspice/visualc.
|
|
|
|
Start MS Visual Studio 2017 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\
|
|
cmpp.1
|
|
ngmakeidx.1
|
|
ngmultidec.1
|
|
ngnutmeg.1
|
|
ngproc2mod.1
|
|
ngsconvert.1
|
|
ngspice.1
|
|
ngspice\
|
|
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:
|
|
#define NGSPICEBINDIR "C:/Spice/bin"
|
|
#define NGSPICEDATADIR "C:/Spice/share/ngspice"
|
|
to
|
|
#define NGSPICEBINDIR "D:/MySpice/bin"
|
|
#define NGSPICEDATADIR "D:/MySpice/share/ngspice"
|
|
|
|
If the code model files *.cm are not available, you will get warning messages,
|
|
but you may use ngspice in the normal way (of course without XSPICE extensions).
|
|
|
|
|
|
|
|
9.3 make ngspice with pure CYGWIN
|
|
|
|
If you don't have libdl.a you may need to link libcygwin.a
|
|
to libdl.a symbolically.
|
|
|
|
for example:
|
|
|
|
$ cd /lib
|
|
$ ln -s libcygwin.a libdl.a.
|
|
|
|
The procedure of compiling is the same as Linux.
|
|
|
|
|
|
9.4 ngspice console app with MINGW or CYGWIN
|
|
|
|
Omitting the configure flag --with-wingui will yield a console ngspice.
|
|
You then will not have any graphics interface. In CYGWIN you may add --with-x
|
|
for the X11 graphics (not available in mingw). A typical configure command
|
|
may look like
|
|
./configure --enable-adms --enable-xspice --enable-cider --enable-openmp
|
|
--disable-debug CFLAGS=-m32 LDFLAGS=-m32 prefix=C:/Spice
|
|
tested with TDM mingw.
|
|
|
|
|
|
9.5 cross compiling ngspice for Windows from LINUX
|
|
|
|
Two scripts are available in the ngspice directory that allow cross
|
|
compiling for NMS Windows, if you are running LINUX. ngspice.exe or
|
|
ngspice.dll may be made. For details please see cross-compile.sh or
|
|
cross-compile-shared.sh.
|
|
|
|
|
|
10 NGSPICE COMPILATION UNDER macOS
|
|
==================================
|
|
|
|
10.1 Use precompiled binary package
|
|
1. Install an X11 interface (like Xquartz)
|
|
2. Install the downloaded NGSPICE package
|
|
3. Open a terminal window and start using NGSPICE
|
|
|
|
10.2 Compile NGSPICE manually from a tarball
|
|
1. Install an X11 interface (like Xquartz)
|
|
2. Install MacPorts from http://www.macports.org
|
|
3. Execute this command:
|
|
sudo port install bison flex ncurses xorg-libXaw
|
|
4. Configure NGSPICE invoking "./configure". A complete set of feature is:
|
|
./configure --enable-cider --enable-xspice --enable-openmp --enable-pss --enable-debug=no
|
|
5. Compile NGSPICE invoking "make"
|
|
6. Install NGSPICE invoking "make install" or "sudo make install"
|
|
|
|
10.3 Compile NGSPICE manually from git
|
|
1. Install an X11 interface (like Xquartz)
|
|
2. Install MacPorts from http://www.macports.org
|
|
3. Execute this command:
|
|
sudo port install automake autoconf libtool bison flex ncurses xorg-libXaw
|
|
4. Execute this command:
|
|
./autogen.sh or ./autogen.sh --adms (if you want to enable ADMS)
|
|
5. Configure NGSPICE invoking "./configure". A complete set of feature is:
|
|
./configure --enable-cider --enable-xspice --enable-openmp --enable-pss --enable-debug=no
|
|
./configure --enable-adms --enable-cider --enable-xspice --enable-openmp --enable-pss --enable-debug=no (if you want to enable ADMS)
|
|
6. Compile NGSPICE invoking "make"
|
|
7. Install NGSPICE invoking "make install" or "sudo make install"
|