INSTALL 25 KB
Newer Older
1 2 3 4 5
Ngspice installation instructions
=================================

Table of contents

6
  1 Ngspice installation (LINUX)
7
   1.1 Prerequisites
8
   1.2 Install from tarball (e.g. ngspice-30.tar.gz)
9
   1.3 Install from git repository
10
   1.4 Advanced Install
11
    1.4.1 Most useful options
12 13 14
    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
15 16 17 18 19 20 21 22 23
  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
24
   9.2 make ngspice with MS Visual Studio 2015/2017
25
   9.3 make ngspice with pure CYGWIN
26
   9.4 ngspice console app with MINGW or CYGWIN
27 28
   9.5 cross compiling ngspice for Windows from LINUX
  10 NGSPICE COMPILATION UNDER macOS
29 30 31 32

This file describes the procedures to install ngspice from sources.


33
1 Ngspice Installation (LINUX, maybe others)
34 35 36 37
  ====================

1.1 Prerequisites

38
 Ngspice is written in C and thus a complete C compilation environment
39 40
 is needed. Almost any LINUX offers a complete C development environment.
 Ngspice is developed on GNU/Linux with gcc and GNU make.
41

42
 The following software must be installed in your system to compile ngspice:
43
 bison, flex, and X11 headers and libs.
44

45 46
 If you want to compile the source from the git repository you need
 additional software: autoconf, automake, libtool, texinfo, readline.
47 48

 The following software may be needed when enabling additional features:
49
 editline, tcl/tk, adms
50 51

 Please have a look at the actual ngspice manual, downloadable at
52 53 54
 http://ngspice.sourceforge.net/docs.html, which gives you much more
 information on ngspice and its usage.

55

56
1.2 Install from tarball (e.g. ngspice-30.tar.gz)
57 58

 This covers installation from a release distribution (for example
59
 ngspice-27.tar.gz, the so called tar ball).
60

61 62
 After downloading the tar ball to a local directory unpack it using:

63
 $ tar -zxvf ngspice-30.tar.gz
64

65 66 67 68
 Now change directories in to the top-level source directory (where this
 INSTALL file can be found).

 You should be able to do:
69

70 71 72 73 74
 $ mkdir release
 $ cd release
 $ ../configure  --with-x --with-readline=yes --disable-debug
 $ make
 $ sudo make install
75

76
 The default install directory for executables is /usr/local/bin.
77 78 79

 A simple ../configure might be sufficient for a basic ngspice, but the preferred
 arguments to ../configure are
80 81 82
  --with-x --with-readline=yes and --disable-debug
 providing you with a comfortably working ngspice (see section 1.4 for details).

83 84 85 86
 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
87
 compiling and installing ngspice from the tarball.
88

89 90 91
 A fully featured ngspice on LINUX may be obtained with the following commands:
 $ mkdir release
 $ cd release
92
 $ ../configure --with-x --enable-xspice --disable-debug --enable-cider --with-readline=yes --enable-openmp
93 94
 $ make 2>&1 | tee make.log
 $ sudo make install
95

96 97 98
 To remove the executables and libraries from the install directory, you may call
 $ sudo make uninstall

99 100

1.3 Install from the git repository
101

102
     This section describes how to install from source code taken directly
103 104 105 106
 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'.
107

108 109
 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)
110 111 112 113

 Now change directories in to the top-level source directory (where this
 INSTALL file can be found).

114
 The project uses the GNU build process. The compile output should go into a separate
115
 directory, so to e.g. maintain separate debug and release versions.
116 117

 $ ./autogen.sh
118 119
 $ mkdir debug
 $ cd debug
120
 $ ../configure --with-x --with-readline=yes
121 122
 $ make
 $ sudo make install
123 124

 See the section titled 'Advanced Install' for instructions about arguments
125
 that can be passed to ./configure to customise the build and installation.
126

127
 Preferred arguments to ./configure to obtain a comfortably working ngspice may be
128 129 130
 --with-readline=yes and --disable-debug (for a smaller and speed optimized
 executable).

131 132
 A fully featured ngspice on LINUX may be obtained with the following commands:
 $ ./autogen.sh --adms
133 134 135 136
 $ 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
137
 $ sudo make install
138 139 140 141

 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
142
 messages.  Ideally you would have tried to fix the problem yourself first.
143
 If you have fixed the problem then the development team will love to hear
144
 from you.
145

146 147 148 149 150 151 152

1.4 Advanced Install

 Some extra options can be provided to './configure'. To get all available
 options do:

 $ ./configure --help
153

154 155 156 157 158
 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.
159

160
 1.4.1 Most useful options:
161

162
 --enable-adms
163 164
        ADMS is an experimental model compiler that translates
        Verilog-A compact models into C code that can be compiled into
165
        ngspice. This is (as of ngspice-27) still experimental, some
166
        features (e.g. noise) are missing. If you want to use it, please
167
        refer to the ADMS section on ngspice web site.
168

169 170 171
 --enable-cider
        Cider is a mixed-level simulator that couples Spice3 and DSIM
        to simulate devices from their technological parameters.
172

173 174
 --enable-xspice
        Enable XSpice enhancements,
175
        A mixed signal simulator built upon spice3 with codemodel
176
        dynamic loading support. See the ngspice manual for details.
177

178 179
 --with-readline=yes
        Enable GNU readline support for the command line interface.
180 181 182

 --enable-openmp
        Compile ngspice for multi-core processors.
183
        Parallelization is done by OpenMP, for MOS models in BSIM3.3.0
184 185
        BSIM4.6.0 and and BSOI4 only. See the ngspice manual for details.

186 187
 --disable-debug
        This option will remove the '-g' option passed to the compiler
188
        and add -O2 optimisation (instead of default O0).
189
        This speeds up simulating significantly, and is recommended for
190
        normal use.
191

192 193 194 195 196 197 198 199
 --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'.

200

201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218
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
219

220
Most of the options now following are not well maintained, are not tested or even maybe obsolete.
221 222

 --enable-capbypass
223
        Bypass calculation of cbd/cbs in the mosfets if the vbs/vbd
224
        voltages are unchanged.
225 226

 --enable-cluster
227 228 229
        Clustering code for distributed simulation. This is a
        contribution never tested. This code comes from TCLspice
        implementation and is implemented for transient analysis only.
230

231
 --enable-expdevices
232 233
        Enable experimental devices. This option is used by developers
        to mask devices under development. Almost useless for users.
234

235 236 237
  --enable-experimental
        define EXPERIMENTAL_CODE to mark experimental parts the code
        (currently not used)
238

239
 --enable-help
240
        Force building nghelp. This is deprecated.
241 242

 --enable-ndev
243 244
        Enable NDEV interface, (experimental, needs updating)
        A TCP/IP interface to external device simulator such as GSS.
245
        For more information, please visit the homepage of GSS at
246
        http://gss-tcad.sourceforge.net
247

248
 --enable-newpred
249
        Enable the NEWPRED symbol in the code.
250 251

 --enable-newtrunc
252
        Enable the newtrunc option
253 254

 --enable-nodelimiting
255
         Experimental damping scheme
256 257

 --enable-nobypass
258
        Don't bypass recalculations of slowly changing variables
259

260
 --enable-predictor
261
         Enable a predictor method for convergence
262

263
 --enable-sense2
264
        Use spice2 sensitivity analysis
265 266

 --enable-xgraph
267 268 269
        Compile the Xgraph plotting program.
        Xgraph is a plotting package for X11 and was once very popular.

270
 --with-editline=yes
271 272
        Enables the use of the BSD editline library (libedit).
        See http://www.thrysoee.dk/editline/
273

274

275
1.4.4 Options Useful for Debugging Ngspice
276 277

 --enable-ansi
278
        Configure will try to find an option for your compiler so that
279
        it expects ansi-C.
280 281

--enable-asdebug
282
        Debug sensitivity code *ASDEBUG*.
283

284 285
 --enable-blktmsdebug
        Debug distortion code *BLOCKTIMES*
286 287

 --enable-checkergcc
288
        Option for compilation with checkergcc.
289 290

 --enable-cpdebug
291
        Enable ngspice shell code debug.
292 293

 --disable-debug
294
        This option will remove the '-g' option passed to the compiler.
295
        This speeds up compilation a *lot*, and is recommended for
296
        normal use.
297 298

 --enable-ftedebug
299
        Enable ngspice frontend debug.
300

301
 --enable-pzdebug
302
        Debug pole/zero code.
303

304 305 306 307
 --enable-sensdebug
                Debug sensitivity code *SENSDEBUG*.

 --enable-smltmsdebug
308
        Debug distortion code *SMALLTIMES*
309 310

 --enable-smoketest
311
        Enable smoketest compile.
312

313
 --enable-stepdebug
314
        Turns on debugging of convergence stepping??
315 316


317 318 319 320 321 322 323 324 325 326 327
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:
328 329
     env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure

330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456
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
457

458
     Creating ngspice with MINGW is a straight forward procedure,
459 460 461 462
 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.

463 464
     Installing from the tarball, e.g. ngspice-30.tar.gz, is now simple: After
 expanding, you may just run ./compile_min.sh from the ngspice-30 directory.
465

466 467 468 469
     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.

470 471 472
     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
473 474 475 476 477
 ./configure in the normal way.

 The procedure of compiling a distribution (for example, a tarball from
 the ngspice website), is as follows:

478
 $ cd ngspice-30
479 480
 $ mkdir release
 $ cd release
481
 $ ../configure --with-wingui ...and other options
482 483 484
 $ make
 $ make install

485
 The most useful options are:
486
 --enable-xspice
487 488
 --enable-cider
 --disable-debug (-O2 optimization, no debug information)
489

490 491
 A fully featured ngspice on Windows may be obtained with the following commands:
 $ ./autogen.sh --adms
492 493
 $ mkdir release
 $ cd release
494
 $ ../configure --with-wingui --enable-cider --disable-debug --enable-openmp --enable-xspice --enable-adms
495
 $ make install
496 497 498 499 500 501

 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
502 503 504
 $ cd /d/Spice

 Issue the command for downloading ngspice:
505 506 507
 $ git clone git://ngspice.git.sourceforge.net/gitroot/ngspice/ngspice

 This will create directory /ngspice .
508

509 510
 Go to directory ngspice
 $ cd /d/Spice/ngspice
511 512 513 514 515
 Start compiling, e.g. by calling
 $ ./autogen.sh --adms
 $ ./compile_min.sh

 Update the ngspice files:
516 517
 Go to directory ngspice
 $ cd /d/Spice/ngspice
518
 Issue command for update
519
 $ git pull
520

521
 Instead of calling  ./compile_min.sh, you may choose to issue
522
 individual commands like:
523
 $ cd ngspice
524
 $ ./autogen.sh
525 526
 $ mkdir release
 $ cd release
527
 $ ../configure --enable-maintainer-mode --with-wingui ...and other options
528 529 530
 $ make
 $ make install

531 532
 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
533
 and FLEX to MSYS. A typical installation was tested with:
534

535 536 537 538 539
 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

540
 Bison 2.0 is now superseeded by newer releases (Bison 2.3, see
541 542
 http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=67879)

543
 The last three are from
544 545
 http://sourceforge.net/project/showfiles.php?group_id=23617.

546 547 548 549
 Installing from git needs more packages to MSYS in advance:
 git, automake, autoconf, libtool

 You may also look at
550 551 552
 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.
553 554

 An alternative compiler setup is available at
555
 http://tdm-gcc.tdragon.net/
556

557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604
 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



605

606
9.2 make ngspice with MS Visual Studio 2015/17
607

608
 ngspice may be compiled with MS Visual Studio 2015 or newer.
609

610 611
 CIDER and XSPICE are included, the code models for XSPICE
 (*.cm) are made as well.
612

613 614 615
 There is currently no installation procedure provided, you may
 however install the executable manually as described in the
 installation tree below.
616 617

     The directory (visualc) with its files
618 619
 vngspice.sln (project starter) and
 vngspice.vcproj (project contents)
620
 allows to compile and link ngspice with MS Visual Studio 2015.
621
 Newer Visual Studio versions will translate the project files
622 623 624
 into their compatible format (tested with MS Visual Studio 2017).
 You may however deny the translation and compile in a VS 2015
 compatibility mode.
625

626 627 628
 /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.
629

630 631 632
 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/.
633 634 635

 Goto  /ngspice/visualc.

636
 Start MS Visual Studio 2017 by double click onto vngspice.sln.
637 638

 After MS Visual Studio has opened up, select debug or release version
639
 by checking 'Erstellen' , 'Konfigurations-Manager' 'Debug' or 'Release'.
640 641

 Start making ngspice (called vngspice.exe) by selecting 'Erstellen' and
642
 'vngspice neu erstellen'.
643

644 645
 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.
646

647 648
 An installation tree (as provided with MINGW make install) and also used by
 vngspice is (maybe created manually):
649

650
 C:\Spice64\
651 652 653 654 655 656 657 658 659 660
    bin\
        ngspice.exe
    lib\
        spice\
            analog.cm
            digital.cm
            spice2poly.cm
            extradev.cm
            extravt.cm
    share\
661
        ngspice\
662 663
            scripts\
                spinit
664

665 666 667
 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"
668
 #define NGSPICEDATADIR "C:/Spice/share/ngspice"
669 670
 to
 #define NGSPICEBINDIR "D:/MySpice/bin"
671 672
 #define NGSPICEDATADIR "D:/MySpice/share/ngspice"

673
 If the code model files *.cm are not available, you will get warning messages,
674 675
 but you may use ngspice in the normal way (of course without XSPICE extensions).

676 677 678 679


9.3 make ngspice with pure CYGWIN

680
 If you don't have libdl.a you may need to link libcygwin.a
681 682 683 684 685 686 687 688 689 690
 to libdl.a symbolically.

 for example:

 $ cd /lib
 $ ln -s libcygwin.a libdl.a.

 The procedure of compiling is the same as Linux.


691
9.4 ngspice console app with MINGW or CYGWIN
692 693 694

 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
695 696
 for the X11 graphics (not available in mingw). A typical configure command
 may look like
697
 ./configure --enable-adms --enable-xspice --enable-cider --enable-openmp
698
 --disable-debug CFLAGS=-m32 LDFLAGS=-m32 prefix=C:/Spice
699
 tested with TDM mingw.
700

701 702

9.5 cross compiling ngspice for Windows from LINUX
703

704 705 706 707
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.
708 709


710
10 NGSPICE COMPILATION UNDER macOS
711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739
   ==================================

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"