655 lines
22 KiB
Plaintext
655 lines
22 KiB
Plaintext
Ngspice installation instructions
|
|
=================================
|
|
|
|
Important notice: If you upgrade, it
|
|
is not sufficient to only re-make the main executable,
|
|
you will have to compile and install the code models as well.
|
|
|
|
Table of contents
|
|
|
|
1 Ngspice installation (LINUX)
|
|
1.1 Prerequisites
|
|
1.2 Install from tarball (e.g. ngspice-38.tar.gz)
|
|
1.3 Install from git repository
|
|
1.4 ngspice as a shared library
|
|
1.5 Advanced Install
|
|
1.5.1 Most useful options
|
|
1.5.2 Options Specific to Enable Ngspice as a shared library
|
|
1.5.3 Options Useful for Debugging Ngspice
|
|
1.6 Installation on Red Hat, Oracle or CentOS Linux
|
|
2 Compilers and Options
|
|
3 NGSPICE COMPILATION UNDER WINDOWS OS
|
|
3.1 How to make ngspice with MINGW and MSYS
|
|
3.2 make ngspice with MS Visual Studio 2022
|
|
3.3 make ngspice with pure CYGWIN
|
|
3.4 ngspice console app with MINGW or CYGWIN
|
|
3.5 cross compiling ngspice for Windows from LINUX
|
|
4 NGSPICE COMPILATION UNDER macOS M1 - M4
|
|
4.1 Prerequisites
|
|
4.2 Compile scripts for the bash terminal
|
|
5 NGSPICE COMPILATION UNDER macOS (tested with Intel CPUs)
|
|
5.1 Use precompiled binary package
|
|
5.2 Compile NGSPICE manually from a tarball
|
|
5.3 Compile NGSPICE manually from git
|
|
5.4 About compilers
|
|
|
|
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.
|
|
|
|
Ngspice may be compiled in three different variants, each with its own
|
|
configure settings. Standard ngsoice executable, ngspice as a shared
|
|
library and ngspice as a tcl/tk library.
|
|
|
|
Compilation to 64 bit is recommended and available per default in
|
|
the ./compile_linux_new.sh compile script. 32 bit might be possible,
|
|
but is not tested.
|
|
|
|
The following software must be installed in your system to compile
|
|
ngspice as a standard executable (command-line input, file and graphics
|
|
output):
|
|
bison, flex, X11 headers and libs, Xaw, Xmu, Xext, Xft, FontConfig,
|
|
Xrender, freetype headers and readline.
|
|
Typically one needs the headers (e.g. libX11-devel) and the libs (e.g. libX11-6)
|
|
of the packages mentioned above.
|
|
|
|
ngspice as a shared library (no graphics and no command-line interfaces)
|
|
will need bison and flex only.
|
|
|
|
If libfftw is detected on your system, it will be used instead of the
|
|
internal fft algorithms.
|
|
|
|
If you want to compile the source from the git repository, or if you want to
|
|
use the compile script ./compile_linux_new.sh, you will need additional software:
|
|
autoconf, automake, libtool.
|
|
|
|
The following software may be needed when enabling additional features:
|
|
editline (as a replacement for readline), tcl/tk (when compiling tclspice).
|
|
|
|
Please have a look at the current ngspice manual, downloadable at
|
|
http://ngspice.sourceforge.net/docs.html, which gives you much more
|
|
information on ngspice and its usage.
|
|
|
|
For compiling ngspice as a shared library, see section 1.4.
|
|
|
|
|
|
1.2 Install from tarball (e.g. ngspice-44.tar.gz)
|
|
|
|
This covers installation from a release distribution (for example
|
|
ngspice-44.tar.gz, the so called tar ball).
|
|
|
|
After downloading the tar ball to a local directory, unpack it by command:
|
|
|
|
$ tar -zxvf ngspice-44.tar.gz
|
|
|
|
Now change directories in to the top-level source directory (where this
|
|
INSTALL file can be found).
|
|
|
|
The most comfortable way to compile ngspice is running the compile script
|
|
compile_linux.sh within the terminal window by ./compile_linux_new.sh. The
|
|
script has to be declared as 'executable', and admin
|
|
rights are required to allow the installation of ngspice.
|
|
|
|
CentOS users may need to add -std=c99 to the CFLAGS in the ../configure
|
|
statement.
|
|
|
|
If you want to compile ngspice manually, you should be able to do:
|
|
|
|
$ mkdir release
|
|
$ cd release
|
|
$ ../configure --with-x
|
|
$ make
|
|
$ sudo make install
|
|
|
|
The default install directory for executables is /usr/local/bin, the XSPICE
|
|
code models will be installed in /usr/local/lib/ngspice. Some distros use lib64
|
|
instead. The following options are now included automatically: readline, openmp,
|
|
osdi, xspice. Only CIDER has to be selected as an extra option.
|
|
|
|
A fully featured ngspice on LINUX may be obtained with the following commands:
|
|
$ mkdir release
|
|
$ cd release
|
|
$ ../configure --with-x --enable-cider --enable-predictor
|
|
$ 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
|
|
|
|
To disable one of the already inlcuded options, you may call --with-readline=no, or
|
|
--disable-openmp, --disable-osdi, --disable-xspice
|
|
|
|
|
|
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 https://ngspice.sourceforge.io/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.
|
|
|
|
The most comfortable way to compile ngspice is running the compile script
|
|
compile_linux_new.sh within the terminal window by ./compile_linux_new.sh. Admin
|
|
rights are required to allow the installation included in the script.
|
|
|
|
If you want to copile ngspice manually, you may run
|
|
|
|
$ ./autogen.sh
|
|
$ mkdir debug
|
|
$ cd debug
|
|
$ ../configure --with-x
|
|
$ make
|
|
$ sudo make install
|
|
|
|
See the section 1.5 titled 'Advanced Install' for instructions about arguments
|
|
that can be passed to ./configure to customize 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
|
|
$ mkdir release
|
|
$ cd release
|
|
$ ../configure --with-x --enable-cider --enable-predictor
|
|
$ make 2>&1 | tee make.log
|
|
$ sudo make install
|
|
|
|
The bash script compile_linux.sh includes all the useful options,
|
|
compiling and installation procedures.
|
|
|
|
|
|
1.4 ngspice as a shared library
|
|
|
|
The relevant configure options for the ngspice shared library are:
|
|
$ --with-ngshared --enable-cider
|
|
|
|
Typically the two aliases libngspice.so, libngspice.so.0 and the compiled
|
|
library libngspice.so.0.0.1 are made. The install locations depend on
|
|
the Linux distribution and may be set by the --prefix configure flag.
|
|
|
|
Again there is a bash script compile_linux_shared.sh with all useful options,
|
|
compiling and installation procedures.
|
|
|
|
libtool versioning is available and may be set in configure.ac, if relevant
|
|
changes to the source code have been made.
|
|
|
|
|
|
1.5 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.5.1 Most useful options:
|
|
|
|
(the following are already included)
|
|
|
|
--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.
|
|
|
|
--enable-osdi
|
|
Add the OSDI interface to ngspice. This interface allow to dynamically
|
|
load compiled Veriloag-A compact models. Compiling is done with
|
|
OpenVAF. Thus for the first time ngspice has access to modern
|
|
device models like BSOMBULK or BSIM_CMG.
|
|
|
|
|
|
(the following have to be selected explicitely to become available)
|
|
|
|
--enable-cider
|
|
Cider is a mixed-level simulator that couples Spice3 and DSIM
|
|
to simulate devices from their technological parameters.
|
|
|
|
--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'.
|
|
|
|
--with-editline=yes
|
|
Enables the use of the BSD editline library (libedit) instead
|
|
of readline.
|
|
See https://www.thrysoee.dk/editline/
|
|
(requires --with-readline=no)
|
|
|
|
--enable-shortcheck
|
|
Enables a 'make check' with strongly reduced runtime. Besides some
|
|
regression tests only BSIM3 and BSM4 devices are checked.
|
|
|
|
|
|
1.5.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 interface 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.5.3 Options Useful for Debugging ngspice (but not used often)
|
|
|
|
--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-sp
|
|
Disable S Parameter Analysis
|
|
|
|
--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??
|
|
|
|
|
|
If a problem is found with the build process, please submit a report
|
|
to the ngspice development team using the ngspice discussion forum at
|
|
https://sourceforge.net/p/ngspice/discussion/133842/. Please provide
|
|
information about your system and any ./configure arguments you are
|
|
using, together with any error messages. If you have fixed the
|
|
problem yourself, then the development team will love to hear from you.
|
|
|
|
|
|
1.6 Installation on Red Hat, Oracle or CentOS
|
|
|
|
These OSs, widely distributed among commercial users, but offering
|
|
only an old gcc compiler, e.g. version 4.8, will require some
|
|
special considerations. There is an extra document, "NGSPICE on Red
|
|
Hat Like Distributions.pdf", provided by Justin Fisher, available with
|
|
the ngspice distribution.
|
|
|
|
CentOS users may need to add -std=c99 to the CFLAGS in their ../configure
|
|
statement.
|
|
|
|
|
|
2 Compilers and Options
|
|
=====================
|
|
|
|
On CentOS with older GCC it might be necessary to add -std=c99
|
|
to the CFLAGS in ./compile_linux.sh .
|
|
|
|
|
|
3 NGSPICE COMPILATION UNDER WINDOWS OS
|
|
====================================
|
|
|
|
3.1 How to make ngspice with MINGW and MSYS2
|
|
|
|
Creating ngspice with MINGW is a straight forward procedure,
|
|
if you have MSYS2/MINGW installed properly. A modern environment is
|
|
offered by MSYS2 (https://www.msys2.org/). An installation procedure for
|
|
gcc in MSYS2 is decribed in
|
|
https://github.com/orlp/dev-on-windows/wiki/Installing-GCC--&-MSYS2
|
|
You will need some enhancements to the standard install (git, autoconf,
|
|
automake, libtool, FLEX and BISON, all available with pacman in MSYSS2).
|
|
Some links are given below which describe the procedures.
|
|
|
|
Unfortunately compiling with MINGW is slow. Compiling with Visual Studio
|
|
may be more than 10 times faster!
|
|
|
|
Installing from the tarball, e.g. ngspice-44.tar.gz, is simple: After
|
|
expanding, you may just run ./compile_min.sh from the ngspice 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), if you don't want to use the script named above
|
|
is as follows:
|
|
|
|
$ cd ngspice
|
|
$ mkdir release
|
|
$ cd release
|
|
$ ../configure --with-wingui ...and other options
|
|
$ make
|
|
$ make install
|
|
|
|
A fully featured ngspice on Windows may be obtained with the following commands:
|
|
$ ./autogen.sh
|
|
$ mkdir release
|
|
$ cd release
|
|
$ ../configure --with-wingui --enable-cider --disable-debug
|
|
$ make install
|
|
|
|
However, to compile code extracted from the git repository the procedure is
|
|
a little different. Firstly install git, e.g. from https://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
|
|
$ ./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
|
|
|
|
The install tree generated during 'make install' is:
|
|
|
|
C:\Spice64\
|
|
bin\
|
|
ngspice.exe
|
|
cmpp.exe
|
|
lib\
|
|
spice\
|
|
analog.cm
|
|
digital.cm
|
|
spice2poly.cm
|
|
extradev.cm
|
|
extravt.cm
|
|
share\
|
|
man\
|
|
man1\
|
|
cmpp.1
|
|
ngspice.1
|
|
ngspice\
|
|
scripts\
|
|
ciderinit
|
|
devaxis
|
|
devload
|
|
setplot
|
|
spectrum
|
|
spinit
|
|
|
|
The scripts in directory ngspice/scripts are somewhat outdated
|
|
(except for spinit, the basic ngspice initialization script),
|
|
but may give some hints how to use the ngspice control language.
|
|
|
|
A bash script compile_min.sh is available including all useful options,
|
|
compiling and installation procedures.
|
|
|
|
The shared library libngspice-0.dll may be created by using the
|
|
script compile_min_shared.sh.
|
|
|
|
|
|
3.2 make ngspice with MS Visual Studio 2022
|
|
|
|
ngspice may be compiled with MS Visual Studio 2022 or newer.
|
|
|
|
CIDER and XSPICE are included, the code models for XSPICE
|
|
(*.cm) are made as well.
|
|
|
|
ngspice is installed into C:\Spice64\ (release version) or
|
|
C:\Spice64d\ (debug version).
|
|
|
|
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 2022.
|
|
|
|
/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 2022 Community with C/C++. For
|
|
example, the German edition is available at no cost from
|
|
https://www.visualstudio.com/de/vs/community/.
|
|
|
|
Install flex/bison from https://github.com/lexxmark/winflexbison/releases.
|
|
When the ngspice sources are installed in D:\myspices\ngspice, then
|
|
create a directory D:\myspices\flex-bison and expand the contents from
|
|
https://github.com/lexxmark/winflexbison/releases/download/v2.5.24/win_flex_bison-2.5.24.zip
|
|
into this directory.
|
|
|
|
Goto /ngspice/visualc.
|
|
|
|
Start MS Visual Studio 2022 by double click onto vngspice.sln.
|
|
|
|
After MS Visual Studio has opened up, select debug or release version
|
|
by checking 'Build' , 'Configuration Manager', 'Debug' or 'ReleaseOmp'.
|
|
32 bit compilation (x86) is possible, but deprecated and will be removed
|
|
in the near future. 64 bit (x64) is the preferred option.
|
|
|
|
Start making ngspice (called vngspice.exe) by selecting 'Build' and
|
|
'Rebuild vngspice'.
|
|
|
|
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:/Spice64/bin"
|
|
#define NGSPICEDATADIR "C:/Spice64/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).
|
|
|
|
The ngspice.dll shared library may be made by selecting sharedspice.sln from
|
|
ngspice/visualc. Code models are not made (see above how to generate them), and
|
|
ngspice.dll is not installed to anywhere, but (for release) may be found in
|
|
ngspice\visualc\sharedspice\ReleaseOMP.x64.
|
|
|
|
|
|
3.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 with OS Linux.
|
|
|
|
|
|
3.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-cider --disable-debug CFLAGS=-m64 LDFLAGS=-m64 prefix=C:/Spice64
|
|
|
|
|
|
3.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.
|
|
|
|
|
|
4 NGSPICE COMPILATION UNDER macOS M1 - M4
|
|
=======================================
|
|
(tested on a mac mini with Sonoma 13.2.1 and M2 CPU)
|
|
|
|
4.1 Prerequisites
|
|
1. Install xcode command line tools
|
|
2. Install Homebrew
|
|
All installs following are via Homebrew (except for OpenMP)
|
|
3. Install ngspice (this will add a lot of dependencies useful
|
|
also for compilation)
|
|
4 Install gnuplot (plotting externally, or creating ps or png)
|
|
5. Install XQuartz, libtool, autoconf, automake, readline, ncurses
|
|
6. Install OpenMP from mac.r-project.org (a sufficiently modern OpenMP,
|
|
required by the ngspice OSDI interface).
|
|
|
|
4.2 Compile scripts for the bash terminal
|
|
1. standard ngspice executable
|
|
compile_macos_clang_M2.sh
|
|
2. ngspice as a shared library
|
|
compile_macos_clang_M2_shared.sh
|
|
|
|
|
|
5 NGSPICE COMPILATION UNDER macOS (tested with Intel CPUs)
|
|
========================================================
|
|
|
|
5.1 Use precompiled binary package
|
|
1. Install an X11 interface (like Xquartz)
|
|
2. Packages are available from Homebrew or MacPorts
|
|
Install the downloaded NGSPICE package
|
|
It may happen though that a package has been compiled without graphics support
|
|
3. Open a terminal window and start using NGSPICE
|
|
|
|
5.2 Compile NGSPICE manually from a tarball
|
|
1. Install an X11 interface (like Xquartz)
|
|
2. Install MacPorts from https://www.macports.org
|
|
3. Execute this command:
|
|
sudo port install autoconf automake libtool bison flex ncurses
|
|
readline fontconfig freetype libomp xorg-libXaw
|
|
4. Use one of the scripts provided: compile_macos_clang.sh or compile_macos_gcc.sh
|
|
gcc may be installed from Homebre at https://formulae.brew.sh/formula/gcc, with the
|
|
advantage that it supports OpenMP.
|
|
5. Or run the commands manually: Configure NGSPICE invoking "./configure".
|
|
A complete set of features is:
|
|
./configure --with-x --enable-cider --disable-debug
|
|
6. Compile NGSPICE invoking "make -j4"
|
|
7. Install NGSPICE invoking "make install" or "sudo make install"
|
|
|
|
5.3 Compile NGSPICE manually from git
|
|
1. Install an X11 interface (like Xquartz)
|
|
2. Install MacPorts from https://www.macports.org
|
|
3. Execute this command:
|
|
sudo port install automake autoconf libtool bison flex ncurses xorg-libXaw
|
|
readline fontconfig freetype libomp SM ICE
|
|
4. Execute this command:
|
|
./autogen.sh
|
|
5. Configure NGSPICE invoking "./configure". A complete set of feature is:
|
|
./configure --enable-cider --disable-debug
|
|
6. Compile NGSPICE invoking "make -j4"
|
|
7. Install NGSPICE invoking "make install" or "sudo make install"
|
|
|
|
Resulting dependencies of ngspice
|
|
/usr/local/opt/ncurses/lib/libncursesw.6.dylib
|
|
/usr/local/opt/gcc/lib/gcc/11/libstdc++.6.dylib
|
|
/usr/local/opt/fftw/lib/fftw3.3.dylib
|
|
/usr/local/opt/readline/lib/libreadline.8.dylib
|
|
/opt/local/lib/libXaw.7.dylib
|
|
/opt/local/lib/libXmu.6.dylib
|
|
/opt/local/lib/libXt.6.dylib
|
|
/opt/local/lib/libXext.6.dylib
|
|
/opt/local/lib/libX11.6.dylib
|
|
/opt/local/lib/libfontconfig.1.dylib
|
|
/opt/local/lib/libXrender.1.dylib
|
|
/opt/local/lib/libfreetype.6.dylib
|
|
/opt/local/lib/libSM.6.dylib
|
|
/opt/local/lib/libICE.6.dylib
|
|
/usr/local/opt/gcc/lib/gcc/11/libgomp.1.dylib
|
|
/usr/lib/libSystem.B.dylib
|
|
/usr/local/lib/gcc/11/libgcc_s.1.dylib
|
|
|
|
5.4 About compilers
|
|
A compile script compile_macos_clang.sh contains all necessary steps for compiling
|
|
with the Xcode clang/llvm compiler. This compiler however does not support -fopenmp.
|
|
Therefore you may download and install gcc, e.g. from Homebrew and run the new
|
|
compile script compile_macos_gcc.sh. OpenMp enables parallel processing of
|
|
BSIM3/4 model evaluation, thus speeding up simulation.
|
|
|