-
Notifications
You must be signed in to change notification settings - Fork 42
/
Copy pathMakefile.sample
230 lines (201 loc) · 7.71 KB
/
Makefile.sample
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
#######################################################################
# Top level Makefile for XicTools.
#######################################################################
# Configuration
# The tools will be installed under $(PREFIX)/$(TOOLROOT) where by
# default PREFIX = /usr/local and TOOLROOT = xictools. This can be
# changed below. If you want to install to a special location (that
# may not require root permissions, for example), you can change this
# variable. Most packages are relocatable, meaning that the final
# destination can be set when installing from packages (macOS and
# Debian/Ubuntu don't allow relocation).
#
PREFIX = --prefix=/usr/local
# The traditional way to build and install XicTools is to build a set
# of packages, and then install the packages. "make install" is
# actually prevented from installing directly to the default
# installation location, since typically packages and direct
# installation don't mix well, confusing the package management
# program. If this variable is set to "yes", installation to the
# PREFIX/TOOLROOT location is allowed. This is for users who wish to
# skip the packaging step. Package installers may require root
# permission to run, so users can avoid this and keep all files in
# their local space with the PREFIX variable set appropriately and
# this variable set to "yes" instead of "no".
#
ITOPOK = --enable-itopok=no
# Graphics package. The programs can build with GTK2, GTK3, Qt5, and
# Qt6. GTK2 is still the reference graphics system and is recommended
# for actual work. Qt support is in "beta test" and will replace GTK.
# Ignore GTK3, it can build but has serious flaws. Virtually all GTK
# functionality has been ported to Qt and at present fine tuning and
# bug fixing is being done. Bug reports and comments would be
# appreciated!
#
# If this variable is not set, the programs will be built without a
# GUI toolkit. Mozy will not build in this case, Xic can be used in
# server-mode only, and WRspice will be command-line only.
#
# To select a graphics library, uncomment exactly one of the examples
# below, or create your own assignment appropriate for your computer.
# Most of the time this variable can be set to something like
# "--enable-gtk2=yes", which should always be true for GTK if the
# pkg-config utility is working. If can be set to the directory
# containing pkg-config for GTK. Otherwise, the value can be the
# installation location for Qt5/6. If the qmake program is in your
# search path "yes" should work here as well.
#
# For Windows (MSYS2/MinGW64)
#GFXLOC = --enable-qt6=/mingw64
#GFXLOC = --enable-gtk2=/mingw64/bin
#
# For macOS
#GFXLOC = --enable-qt6=/opt/local/libexec/qt6
#GFXLOC = --enable-gtk2=yes
#
# For CentOS/RedHat/Rocky/AlmaLinux (7 or 8), OpenSuSE 15, Fedora 40 Linux
#GFXLOC = --enable-qt5=/usr/lib64/qt5
#GFXLOC = --enable-gtk2=yes
#
# For Ubuntu-22.04, Debian 11
#GFXLOC = --enable-qt5=/usr/lib/qt5
#GFXLOC = --enable-gtk2=yes
# Windows setup. UNCOMMENT for Windows! Currently, the programs are
# built under the MinGW64 environment in MSYS2. Set this to the
# mingw64 root and uncomment.
#
#MINGW = --enable-mingw=/mingw64
# The system will attempt to set the paths to Python and Tcl, but
# this may not be reliable. These can be uncommented and set to
# provide the correct paths on your system.
#
#PYTHON = --enable-pylib="/usr/lib64 -lpython2.7" --enable-pyinc="-I/usr/include/python2.7"
#TCL = --enable-tcllib=no --enable-tclinc=no
#TK = --enable-tklib=no --enable-tkinc=no
# The licensing system for Xic and WRspice is disabled by default, but
# can be enabled by uncommenting the assignment below. The code for
# the license server and related is provided as it might be useful to
# someone, but shouldn't be needed for Xic and WRspice as open-source.
#
#HVSECURE = --enable-secure=yes
# Uncomment this to NOT include the Mozy help system, http file
# transfer, screen dumps, and package management. This was used to
# avoid the GNU-licensed code when building commercial packages.
# Since the tools are now open-source this is not an issue. There
# presently is other GNU-licensed code within the tools, users need to
# be aware of the license restrictions this imposes for non-open
# source applications, which are allowed by the Apache license but not
# GNU.
#
#NOMOZY = --enable-nomozy=yes
# Force 32-bit build on x86_64 Linux systems. This may not work
# anymore, and in any case requires 32-bit versions of all libraries
# to be present.
#
#32BIT = --enable-force32=yes
# OpenAccess support, Linux only.
# If you have an OpenAccess source tree, specify its location in this
# variable and uncomment. This enables OpenAccess support in Xic.
#
#OALOC = --enable-oa=/usr/local/cad/OA-22.04
# If enabled and set to the installed location of the PyCellStudio
# from Synopsys, the Python plug-in will link to the Python supplied
# with PyCellStudio. OpenAccess above must point to a version "close
# to" that provided in PyCellStudio, but we need the source for the
# include files not provided with PyCellStudio.
#
#CNILOC = \
# --enable-cni=/global/apps/customcompiler_2021.09-2/linux64/PyCellStudio
# PSF support in WRspice (for Cadence ADE integration), Linux RHEL6/7
# only. If you have this Cadence product, PSF file support can be
# enabled by setting and uncommenting this variable.
#
#KITLOC = --enable-psf=/home/stevew/cadence/oasis-kit/tools.lnx86
# If you don't want to build all the tools, you can choose what to
# build below. The xt_base is required for everything, other
# dependencies are represented by the two lines below. You can change
# SUBDIRS to list only the tools you need.
WRSPICE = adms KLU vl wrspice
XIC = mrouter xic
ifdef HVSECURE
SECURE = secure
endif
ifndef NOMOZY
ifdef GFXLOC
MOZY = mozy
endif
endif
SUBDIRS = xt_base $(SECURE) $(MOZY) $(WRSPICE) $(XIC) fastcap fasthenry
# END of user configuration section.
#
#######################################################################
CFARGS = $(PREFIX) $(TOOLROOT) $(ITOPOK) $(HVSECURE) $(NOMOZY) $(32BIT) \
$(OALOC) $(CNILOC) $(KITLOC) $(MINGW) $(GFXLOC) $(PYTHON) $(TCL) $(TK)
FLAGFILE = .configured
config:
@if [ ! -f $(FLAGFILE) ]; then \
command -v autoconf; \
if [ $$? = 0 ]; then \
(cd xt_base; autoconf; ./configure $(CFARGS)); \
if [ $$? != 0 ]; then exit 1; fi; \
else \
command -v autoconf-2.69; \
if [ $$? = 0 ]; then \
(cd xt_base; autoconf-2.69; ./configure $(CFARGS)); \
if [ $$? != 0 ]; then exit 1; fi; \
else \
echo \
" Error: the autoconf program (autoconf-2.69 in Cygwin) is not found"; \
echo " and is required."; \
exit 1; \
fi; \
fi; \
touch $(FLAGFILE); \
(${MAKE} depend); \
fi
reconfig:
-@rm -f $(FLAGFILE)
$(MAKE) config
all: config
-@for a in $(SUBDIRS); do \
if [ -d $$a ]; then \
(cd $$a; $(MAKE)); \
fi; \
done
packages: all
-@for a in $(SUBDIRS); do \
if [ -d $$a -a -d $$a/packages ]; then \
(cd $$a; $(MAKE) package); \
fi; \
done
quick_pkgs: all
-@export quick_pkgs=1; for a in $(SUBDIRS); do \
if [ -d $$a -a -d $$a/packages ]; then \
(cd $$a; $(MAKE) package); \
fi; \
done
install: all
-@for a in $(SUBDIRS); do \
if [ -d $$a -a -d $$a/packages ]; then \
(cd $$a; $(MAKE) install); \
fi; \
done
uninstall::
-@for a in $(SUBDIRS); do \
if [ -d $$a -a -d $$a/packages ]; then \
(cd $$a; $(MAKE) uninstall); \
fi; \
done
depend clean:
-@for a in $(SUBDIRS); do \
if [ -d $$a ]; then \
(cd $$a; $(MAKE) $@); \
fi; \
done
distclean:
-@rm -f $(FLAGFILE)
-@for a in $(SUBDIRS); do \
if [ -d $$a ]; then \
(cd $$a; $(MAKE) $@); \
fi; \
done