summaryrefslogtreecommitdiff
path: root/Windows/spice/docs/INSTALL
diff options
context:
space:
mode:
Diffstat (limited to 'Windows/spice/docs/INSTALL')
-rw-r--r--Windows/spice/docs/INSTALL739
1 files changed, 0 insertions, 739 deletions
diff --git a/Windows/spice/docs/INSTALL b/Windows/spice/docs/INSTALL
deleted file mode 100644
index ab16b64b..00000000
--- a/Windows/spice/docs/INSTALL
+++ /dev/null
@@ -1,739 +0,0 @@
-Ngspice installation instructions
-=================================
-
-Table of contents
-
- 1 Ngspice installation (LINUX)
- 1.1 Prerequisites
- 1.2 Install from tarball (e.g. ngspice-31.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-31.tar.gz)
-
- This covers installation from a release distribution (for example
- ngspice-31.tar.gz, the so called tar ball).
-
- After downloading the tar ball to a local directory unpack it using:
-
- $ tar -zxvf ngspice-31.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.
-
- --enable-oldapps
- The old apllications ngsconvert ngproc2mod ngmultidec and ngmakeidx
- are made only per user request, by adding this flag.
-
- --with-fftw3=no
- Disable using fftw fast fourier transform library. Use internal
- fft instead. Default is 'yes'.
-
-
-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
- define EXPERIMENTAL_CODE to mark experimental parts the code
- (currently not used)
-
- --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-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-31.tar.gz, is now simple: After
- expanding, you may just run ./compile_min.sh from the ngspice-31 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-31
- $ 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/
-
- A modern environment is offered by MSYS2 (https://www.msys2.org/).
-
- The install tree generated during 'make install' is:
-
- 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
-
-
-
-
-9.2 make ngspice with MS Visual Studio 2015/17/19
-
- 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 2019 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 2019 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:\Spice64\
- bin\
- ngspice.exe
- lib\
- spice\
- analog.cm
- digital.cm
- spice2poly.cm
- extradev.cm
- extravt.cm
- share\
- ngspice\
- scripts\
- 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"