summaryrefslogtreecommitdiff
path: root/NgspiceChanges.md
blob: 5bf5afb357ef7675ffac2e4d9f753cc2c57e900d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# Changes for Ngspice version upgrade

1. Manually add the GHDL server close patch (header files and “close_server” function at the appropriate location) in the outitf.c which comes with the new Ngspice version
>Refer to previous version of NGHDL outitf.c file for reference

call this function [ close_server(); ] in outitf.c before the line
```c
fprintf(stdout, "\nNo. of Data Rows : %d\n", run->pointCount);
```
Which occurs in two functions in outitf.c (may not be same in the future), in functions named
```c
    static void fileEnd(runDesc *run)
```
and
```c
    static void plotEnd(runDesc *run)
```
**--- Do not replace old outitf.c with the outitf.c in the new ngspice version.\
--- Make sure to maintain OS independence of the code, that is same code file for Windows and Linux.** 

2. Similarly manually add patch for identification of Mingw and linking of libws2_32.a to makedefs.in at */ngspice/src/xspice/icm* **after the line `LIBS = -lm`** (important)
```make
ISMINGW = $(shell uname | grep -c "MINGW64")
ifeq ($(ISMINGW), 1)
  LIBS = -lm -lws2_32
endif
 
ISMINGW = $(shell uname | grep -c "MINGW32")
ifeq ($(ISMINGW), 1)
  LIBS = -lm -lws2_32
endif
 
ISMINGW = $(shell uname | grep -c "MSYS")
ifeq ($(ISMINGW), 1)
  LIBS = -lm -lws2_32
endif
```

3. Add patch for linking libws2_32.a in Windows at Makefile.in at */ngspice/src/* by modifying the line
```make
@WINGUI_TRUE@am__append_19 = -lpsapi -lShlwapi 
```
To
```make
@WINGUI_TRUE@am__append_19 = -lpsapi -lShlwapi -lws2_32
```


4. Add patch for addition of GHDL codemodel to the spinit.in file at */ngspice/src/* as an addition to the section
```make
* The other codemodels
```
with the line
```make
@XSPICEINIT@ codemodel @pkglibdir@/ghdl.cm
```
and in GNUmakefile.in at */ngspice/src/xspice/icm* by replacing the line
```make
CMDIRS = spice2poly digital analog xtradev xtraevt table
```
with
```make
CMDIRS = spice2poly digital analog xtradev xtraevt table ghdl
```
5. Create a **`ghdl folder`** with two empty files named `modpath.lst` and `udnpath.lst` at the location */ngspice/src/xspice/icm/*