Installation Instructions For gSpiceUI vSACAMOS
------------------------------------------------

This file is part of SACAMOS, cable models for EMI simulations in SPICE.
It was developed by the University of Nottingham and the Netherlands Aerospace
Centre (NLR) for ESA under contract number 4000112765/14/NL/HK.

Copyright (C) 2015-2017 University of Nottingham

SACAMOS is free software: you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
Foundation, either version 3 of the License, or (at your option) any later
version.

SACAMOS is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.

A copy of the GNU General Public License version 3 can be found in the
file GNU_GPL_v3 in the root or at <http:www.gnu.org/licenses/>.

The University of Nottingham can be contacted at: ggiemr@nottingham.ac.uk

Contents
========
1. Introduction
2. Requirements
3. Installation:
    i)    wxWidgets on Linux
    ii)   wxWidgets on MS Windows
    iii)  gSpiceUI vSACAMOS on Linux
    iv)   gSpiceUI vSACAMOS on MS Windows
    v)    installation note on Ngspice for MS Windows
    
1. Introduction
===============

gSpiceUI vSACAMOS (version SACAMOS) is a lightly modified version of gSpiceUI 
authored by Mike Waters (https://sourceforge.net/projects/gspiceui/). The 
modifications do not alter the intended functionality of the original project 
but simply add an additional set of menu commands, which guide the user through 
the steps required to utilise the Spice sub-circuits generated by SACAMOS, i.e.:

    i)    Import the symbols generated by SACAMOS into gschem
    ii)   Launch gschem to design a schematic
    iii)  Generate the netlist against which ro run the Ngspice solver
    iv)   View the results using gnuplot
    

2. Requirements
===============
gSpiceUI vSACAMOS is reliant on the following:

i.   compilation : wxWidgets library (essential to compile gSpiceUI vSACAMOS)
ii.  gschem      : schematic capture component of gEDA
iii. gnetlist    : netlist generation component of gEDA
iv.  Ngspice     : circuit simulator
v.   gnuplot     : graphing utility


3. Installation
===============
The software can be compiled on Linux, MS Windows and OSX platforms. For the 
most part pre-built binaries of the requisite software are available for all of 
these platforms and it is recommended that these be used where available.

This document will not cover the installation of the gEDA suite or gnuplot. 
However it will outline the steps neccessary to install wxWidgets and 
gSpiceUI vSACAMOS. At the time of writing the gEDA suite could be found here:

for Linux/MAC OSX: 
    
    http://wiki.geda-project.org/geda:download

and Windows: 
    
    http://www.delorie.com/pcb/geda-windows/
    
Snapshots of the necessary installation material taken at the time of writing 
can be found here:

    http://www.sacamos.org

NOTE: gSpiceUI vSACAMOS relies on the location of all the requirements being 
included in the 'PATH' of the OS. Therefore ensure the location of all the 
relevant binary files are added to you system PATH. i.e.add locations of gschem,
gnetlist, Ngspice and gnuplot binary executable to your system PATH.

i. Installation of wxWidgets on Linux
-------------------------------------

Download and extract the wxWidgets library from:

    http://www.wxWidgets.org/
    
Version 3.0.2 had been used throughout the development of SACAMOS. For full 
information refer to the installation guide(s) on the website or with the 'docs'
folder of the download. The simplest approach is to enter the root folder of the
extracted download and do:

    mkdir buildgtk
    cd buildgtk
    ../configure --with-gtk
    make
    su <type root password>
    make install
    ldconfig
    [if you get "ldconfig: command not found", try using "/sbin/ldconfig"]
 


ii. Installation of wxWidgets on MS Windows
-------------------------------------------
The following has been tested on MS Windows 7 & 10. The installation of 
wxWidgets on MS Windows make use of MinGW ("Minimalist GNU for Windows") and 
MSYS ("Minimal SYStem") to build native windows applications via a command line 
environment. To install wxWidgets you therefore need to install MinGW/MSYS.

i. Install MinGW and MSYS:
 
Download the installer (mingw-get-setup.exe) from: http://www.mingw.org/. Run 
the installer and select as a minimum the components C & C++ and MSYS. Install 
these components by selecting 'Apply Changes' from the Installation menu.
 
Note: Installation in the root of your hard drive is recommended.
 
Once installed Ensure that the file C:\MinGW\msys\1.0\etc\fstab and contains at 
least the following line itself followed by an empty line (this is generally 
already the case):
    
    C:\MinGW   /mingw
 
Navigate to C:\mingw\msys\1.0 and run msys.bat. to create your 'home' directory 
at C:\mingw\msys\1.0\home\[your user name] Once run create a shortcut to 
msys.bat and copy it to your desktop. Double clicking this will now open a 
terminal/shell and out you within your home directory.

ii. Install wxWidgets

Download and extract the wxWidgets library from:

    http://www.wxWidgets.org/
    
For example download 'xWidgets-3.0.2.zip' and extract this to a folder in the 
root of your hard drive e.g.

C:\wxWidgets-3.0.2

Open a MSYS shell and navigate to the wxWidgets folder, e.g:

    cd c:\wxWidgets\wxWidgets-3.0.2
    
Create a build folder and change directory into it, e.g.
    mkdir build-msw
    cd build-msw

Run the wxWidgets configure script (for full options refer to the installation 
instructions bu the following is known to work):

    ../configure --build=x86-winnt-mingw32 --disable-shared --disable-threads

Build wxWidgets:

    make MONOLITHIC=1 SHARED=0 UNICODE=1 BUILD=release DEBUG_FLAG=0

Install wxWidgets:

    make install
    
iii. Installation of gSpiceUI on Linux
--------------------------------------
Download the gSpiceUI vSACAMOS source (for Linux) from:
    
    http://www.sacamos.org/downloads
    
Extract the archive into a folder within your home directory e.g.

    C\home\[you user name]\gSpiceUI_vSACAMOS
    
Open a terminal and navigate to the gSpiceUI_vSACAMOS folder, e.g:

    cd gSpiceUI_vSACAMOS
    
Build gSpiceUI_vSACAMOS

    make
    
Install gSpiceUI_vSACAMOS

    su <type root password>
    make install
    
iv. Installation of gSpiceUI on MS Windows
------------------------------------------
Download the gSpiceUI vSACAMOS source (for Windows) from:
    
    http://www.sacamos.org/downloads
    
Extract the archive into a folder within your MSYS home directory e.g.

    C:\MinGW\msys\1.0\home\user\gSpiceUI_vSACAMOS
    
Open a MSYS shell and navigate to the gSpiceUI_vSACAMOS folder, e.g:

    cd gSpiceUI_vSACAMOS
    
Build gSpiceUI_vSACAMOS

    make
    
and all being well that sound be it and the binary executable can be found in 
the \bin folder.

v. Installation note for Ngpice on MS Windows
---------------------------------------------
Download the Ngspice source code from:

    http://ngspice.sourceforge.net/download.html
    
For example download 'ngspice-26_140112.zip' and extract this to a folder in 
your MSYS home directtory, e.g:
    
    C:\MinGW\msys\1.0\home\[your user name]\Ngspice-26

Open a MSYS shell and navigate to the Ngspice folder, e.g:

    cd ngspice-26
    mkdir release
    cd release
    
Note: As opposed to the installation instruction for MS Windows in the Ngspice 
documentation you do not want to build Ngspice with GUI support (this is taken 
care of now by gSpiceUI_vSACAMOS), so omit the '--with-wingui' option, but do 
include XSpice enhancements i.e.

    ../configure --enable-xspice ...and other options
    make
    make install
    
NOTE: gSpiceUI vSACAMOS relies on the location of all the requirements being 
included in the 'PATH' of the OS. Therfore ensure the location of all the 
relevant binary files are added to you system PATH. i.e. add locations of 
gschem, gnetlist, Ngspice and gnuplot binary executable to your system PATH.