1 |
WARNING |
2 |
Much of this document is out of date. Please consult the following |
3 |
webpage for the current information. Presently you can build ASCEND |
4 |
with both autotools (cd ~/src/ascend/trunk/base/autotools && autoconf && |
5 |
./reconfig && make) and Jam (cd ~/src/ascend/trunk/base/autotools |
6 |
&& ./reconfig && cd ~/src/ascend/trunk/jam && jam). |
7 |
|
8 |
We now recommend building ASCEND with Tcl/Tk 8.3.5. |
9 |
|
10 |
https://pse.cheme.cmu.edu/wiki/view/Ascend/Jam |
11 |
|
12 |
======================================================================== |
13 |
UNIX Installation |
14 |
======================================================================== |
15 |
|
16 |
These are the instructions for building and installing release 0.9 |
17 |
of the ASCEND IV mathematical modeling environment on a UNIX system. |
18 |
For Windows, you can download precompiled binaries from our web site: |
19 |
http://www.cs.cmu.edu/~ascend/ |
20 |
|
21 |
Executive summary version |
22 |
========================= |
23 |
|
24 |
If your system meets the requirements 2 through 5 below, and if |
25 |
all those pieces lists are installed in the usual places |
26 |
(/usr/local,/usr/bin/,/usr/lang, etc) you can probably build ASCEND by |
27 |
typing at the unix prompt (%): |
28 |
% ./configure |
29 |
% cd ascend4 <--- remember to `cd' |
30 |
% make |
31 |
% bin/ascend4 <--- runs the program if make doesn't die. |
32 |
|
33 |
When ASCEND starts, you will see a lot of startup messages, and |
34 |
finally you should see something like: |
35 |
Reading utilities |
36 |
Interface Loaded. |
37 |
|
38 |
----------------------------------- |
39 |
User data directory is /usr0/ballan/ascdata |
40 |
----------------------------------- |
41 |
|
42 |
If the above does not work, you'll need to |
43 |
% make distclean |
44 |
in the ascend4 directory, then work through the detailed instructions |
45 |
contained in this file. |
46 |
|
47 |
Otherwise, after you've used ASCEND a little bit without |
48 |
experiencing any run-time problems, you can boost its performance by |
49 |
building an optimized version: |
50 |
% cd ascend4 |
51 |
% make distclean |
52 |
% cd .. |
53 |
% ./configure --enable-optimization |
54 |
% cd ascend4 |
55 |
% make |
56 |
% bin/ascend4 |
57 |
|
58 |
In fact, if you're a trusting soul and are *sure* Tk, F77, etc are |
59 |
all installed properly, you can use --enable-optimization from the |
60 |
beginning. |
61 |
|
62 |
Requirements |
63 |
============ |
64 |
|
65 |
To build and run ASCEND, you need |
66 |
1. Some flavor of UNIX. This release of ASCEND has been built on |
67 |
the following platforms: |
68 |
- DEC Alpha running OSF/Digital Unix 3.2, 4.0 |
69 |
- HP9000/700 running HP-UX 9.05, 10.20 |
70 |
- IBM PowerPC running AIX 3.2, 4.2 |
71 |
- Intel x86 running RedHat Linux 4.2, 5.2, 6.1 |
72 |
- Intel x86 running NetBSD 1.1 |
73 |
- SGI Indy running Irix 6.2 |
74 |
- Sun Sparc running SunOS 4.1.x |
75 |
- Sun Sparc running Solaris 2.5 |
76 |
2. An ANSI-C compiler and C libraries that support ANSI C. |
77 |
3. X11. This release of ASCEND has only been built on X11r6. |
78 |
4. Tcl/Tk 8.0.5 built and installed on your system. The official |
79 |
Tcl/Tk 8.0 web site is off of the Scriptics Home Page: |
80 |
http://www.scriptics.com/ |
81 |
To download Tcl/Tk 8.0 or patches, visit |
82 |
http://www.scriptics.com/download/8.0.html |
83 |
Tcl/Tk 8.1 is still an alpha release, and we have not tested |
84 |
ASCEND with that preliminary release of Tcl/Tk 8.1. |
85 |
5. Tktable v2.5 built and installed on your system, which is |
86 |
available from the ASCEND web site and from |
87 |
http://www.hobbs.wservice.com/tcl/capp/tkTable |
88 |
or indirectly from |
89 |
ftp://ftp.cs.uoregon.edu/pub/tcl/tkTable/tkTable1.80.tar.gz |
90 |
http://www.scriptics.com in the |
91 |
Resources / Extensions section. |
92 |
6. yacc or bison. |
93 |
Recommend (but not required) tools are |
94 |
7. The flex lexer, version 2.4.1 or later. |
95 |
8. A FORTRAN compiler (You can build ASCEND without a FORTRAN |
96 |
compiler, but you may lose some functionality. See below.) |
97 |
9. xgraph, a graphing program; available from the ASCEND web site. |
98 |
|
99 |
ASCEND comes with a `configure' script to help you build ASCEND on |
100 |
your favorite platform. However, the configure script is not perfect |
101 |
and UNIX systems vary widely, so take some time to read through this |
102 |
file to see what you must do to have ASCEND successfully build on your |
103 |
machine. |
104 |
|
105 |
The `configure' shell script attempts to guess correct values for |
106 |
various system-dependent variables used during compilation. It uses |
107 |
those values to create a `Makefile' in each directory of the ASCEND |
108 |
source tree and a `ConfigAscend' file in the ascend4 directory. Also, |
109 |
it creates a shell script `config.status' that you can run in the future |
110 |
to recreate the current configuration of Makefiles, and a file |
111 |
`config.log' containing compiler output (useful mainly for debugging |
112 |
`configure'). |
113 |
|
114 |
The file `configure.in' is used to create `configure' by a program |
115 |
called `autoconf'. You only need `configure.in' if you want to change |
116 |
it or regenerate `configure' using a newer version of `autoconf'. The |
117 |
`configure.in' that comes with ASCEND was designed to use version 2.12 |
118 |
of `autoconf'. 2.13 is known not to work with configure.in. |
119 |
|
120 |
The following instructions assume you have down loaded the files |
121 |
ascend4-0.9.tar.Z |
122 |
tkTable2.5.tar.gz |
123 |
from the ASCEND web site into the directory where you plan to build |
124 |
ASCEND; we'll call that directory BUILD_DIR. |
125 |
These instructions also assume you have down loaded the files |
126 |
tcl8.0.5.tar.gz |
127 |
tk8.0.5.tar.gz |
128 |
from http://www.scriptic.com into the directory where you plan to build |
129 |
ASCEND, OR that you work on a system where tcl/tk 8.0.5 is installed, |
130 |
such as Redhat Linux 6.x or late 5.x. |
131 |
Unpacking all the above files in the build directory creates the directories |
132 |
ascendiv-0.9/ |
133 |
tcl8.0.5/ |
134 |
tk8.0.5/ |
135 |
Tktable2.5/ |
136 |
|
137 |
The simplest way to compile this package is: |
138 |
|
139 |
1. Build and install Tcl v8.0.5. If Tcl v8.0.5 is already |
140 |
installed, go to the next step; otherwise obtain the Tcl v8.0.5 |
141 |
distribution, unpack it, and build it following the directions |
142 |
in the distribution. A summary of the steps to build Tcl are: |
143 |
1a. `cd' into the `tcl8.0/unix' directory. |
144 |
1b. Type `./configure' to configure Tcl's Makefile. If you want |
145 |
to install Tcl in a directory other than `/usr/local', pass |
146 |
that directory in the `--prefix' argument to `configure'. For |
147 |
example: |
148 |
./configure --prefix=/full/install/path |
149 |
If you do not plan to install ASCEND, a reasonable value for |
150 |
the `--prefix' option is the ascend4 directory in the ASCEND |
151 |
distribution, i.e., |
152 |
./configure --prefix=BUILD_DIR/ascendiv-0.9/ascend4 |
153 |
1c. Type `make' to build Tcl. |
154 |
1d. Type `make test' to test Tcl (optional). |
155 |
1e. Type `make install' to install Tcl into the directory you |
156 |
specified in the `--prefix' argument. If you do not want to |
157 |
install the man pages, issue the command |
158 |
make install-binaries install-libraries |
159 |
to install only the binaries, the header file, and the *.tcl |
160 |
files. |
161 |
1f. Do NOT `make clean' until after you have made the Tk library. |
162 |
1g. If you run into problems building Tcl, please consult the Tcl |
163 |
distribution. |
164 |
|
165 |
2. Build and install Tk v8.0.5. If Tk v8.0.5 is already installed, |
166 |
go to the next step; otherwise obtain the Tk v8.0.5 |
167 |
distribution, unpack it, and build it following the directions |
168 |
in the distribution. A summary of the steps to build Tk are: |
169 |
2a. `cd' into the `tk8.0/unix' directory. |
170 |
2b. Type `./configure' to configure Tk's Makefile. You should use |
171 |
the same value for `--prefix' here as you did when building |
172 |
Tcl. |
173 |
2c. Type `make' to build Tk. |
174 |
2d. Type `make test' to test Tk (optional). |
175 |
2e. Type `make install' to install Tk into the directory you |
176 |
specified with the `--prefix' argument. If you do not want to |
177 |
install the man pages, issue the command |
178 |
make install-binaries install-libraries |
179 |
to install only the binaries, the header file, and the *.tcl |
180 |
files. |
181 |
2f. You can now `make clean' to remove the object files, library, |
182 |
and executable. You can also `cd' into the `tcl8.0/unix' |
183 |
directory and `make clean' there. |
184 |
2g. If you run into problems building Tk, please consult the Tk |
185 |
distribution. |
186 |
|
187 |
3. Build and install TkTable v2.5. If TkTable v2.5 is already |
188 |
installed, go to the next step; otherwise obtain the TkTable |
189 |
v2.5 distribution, unpack it, and build it following the |
190 |
directions in the distribution, except as noted below. A summarya |
191 |
of the steps to build TkTable are: |
192 |
3a. `cd' into the `Tktable2.5/src' directory. |
193 |
3b. Type `./configure' to configure TkTable's Makefile. You |
194 |
should use the same value for `--prefix' here as you did when |
195 |
building Tcl and Tk. If you are using a stock redhat linux where |
196 |
tcl/tk are installed in /usr instead of /usr/local, type |
197 |
`./configure --prefix=/usr --with-tcl=/usr/lib --with-tk=/usr/lib' |
198 |
3c. Type `make clean; make' to build TkTable. |
199 |
3d. Type `make install' to install TkTable into the directory you |
200 |
specified with the `--prefix' argument. You may need to su to root. |
201 |
3e. You can now `make clean' to remove the object files, and |
202 |
library. |
203 |
3f. If you run into problems building TkTable, please consult the |
204 |
TkTable distribution. |
205 |
|
206 |
4. `cd' to the `ascendiv-0.9' directory and type `./configure' to |
207 |
configure ASCEND for your system. If you're using `csh' on an |
208 |
old version of System V, you might need to type `sh ./configure' |
209 |
instead to prevent `csh' from trying to execute `configure' |
210 |
itself. |
211 |
|
212 |
Running `configure' takes awhile. While running, it prints some |
213 |
messages telling which features it is checking for. |
214 |
|
215 |
See below for arguments to pass to `configure' and for |
216 |
explanations of the and error messages `configure' may produce. |
217 |
|
218 |
5. `cd' into the `ascend4' directory and type `make'. This will |
219 |
build any FORTRAN libraries that `configure' didn't find |
220 |
(assuming `configure' found a FORTRAN compiler) before it builds |
221 |
ASCEND. |
222 |
|
223 |
6. Once `make' successfully completes, typing `bin/ascend4' should |
224 |
start ASCEND. Note that your `DISPLAY' environment variable |
225 |
will need to be set to run ASCEND. |
226 |
|
227 |
In the `Script' window you will see the License and Warranty for |
228 |
ASCEND. Please read it. |
229 |
|
230 |
7. If you have built ASCEND for your personal use, you can continue |
231 |
to run ASCEND from the build directory. If you want to install |
232 |
ASCEND elsewhere so that others may use it or to free disk |
233 |
space, type `make install' which will install the ascend binary |
234 |
(ascend4), the ASCEND tcl support files (found in the TK |
235 |
directory), and the ASCEND models (found in the models |
236 |
directory). |
237 |
|
238 |
8. You can remove the program binaries and object files from the |
239 |
source code directory by typing `make clean'. To also remove |
240 |
the files that `configure' created (so you can compile the |
241 |
package for a different kind of computer), type |
242 |
`make distclean'. |
243 |
|
244 |
Compilers and Options |
245 |
===================== |
246 |
|
247 |
Some systems require unusual options for compilation or linking that |
248 |
the `configure' script does not know about. You can give `configure' |
249 |
initial values for variables by setting them in the environment. Using |
250 |
a Bourne-compatible shell, you can do that on the command line like |
251 |
this: |
252 |
CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure |
253 |
|
254 |
Or on systems that have the `env' program, you can do it like this: |
255 |
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure |
256 |
|
257 |
Some systems (notably newer egcs-based systems) require a little |
258 |
manual intervention to find the right f77 support library. You may need |
259 |
to give configure the full path for libf2c/libg2c depending on what you |
260 |
have installed. This can happen even if configure found f77/g77 ok. |
261 |
For additional help with FORTRAN, see section "Warnings and Errors |
262 |
Generated by Configure." You may also need to set (for the build only) |
263 |
the environment variable CC with the value so that configure picks up |
264 |
the C compiler that matches your f77. |
265 |
|
266 |
Warnings and Errors Generated by Configure |
267 |
========================================== |
268 |
|
269 |
Most of the time `configure' will work properly and no intervention |
270 |
is needed. We have developed `configure' to work around common |
271 |
problems, in which case it prints a warning and goes on. These common |
272 |
problems include: |
273 |
|
274 |
* You do not have a recent version of the `flex' lexer. |
275 |
In this case, `configure' will set up the Makefiles to use |
276 |
pregenerated C files instead of running `flex' on the input files |
277 |
ascend4/compiler/scanner.l and ascend4/interface/typelex.l. If |
278 |
you have `flex' version 2.4.1 or newer and `configure' cannot find |
279 |
it, set the `LEX' environment variable to the full path of your |
280 |
`flex' program and run `configure' again. |
281 |
|
282 |
* You do not have a FORTRAN77 compiler. |
283 |
For this case, `configure' disables use of the LSODE integrator, |
284 |
so you will not be able to integrate with ASCEND. If you have a |
285 |
Fortran compiler that `configure' is not finding, re-run |
286 |
`configure' with the option --with-fortran=COMPILER,LIBRARIES |
287 |
where COMPILER is your Fortran compiler and LIBRARIES are any |
288 |
libraries it needs. For example, under SunOS: |
289 |
configure --with-fortran='/usr/lang/f77,-L/usr/lang/lib -lF77 -lM77' |
290 |
If you have GNU Fortran compiler installed as `g77', configure |
291 |
should do the right thing. If you have it installed as `f77', |
292 |
configure may become confused because it look for the wrong set of |
293 |
libraries. In this case, run configure with the argument |
294 |
configure --with-fortran='g77,-lf2c' |
295 |
If you have an old redhat f77 or f2c, you may want something like: |
296 |
configure \ |
297 |
--with-fortran='f77,-L/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.90.29 -lf2c' |
298 |
|
299 |
* Cannot find CONOPT library nor source code. |
300 |
CONOPT is proprietary, so we cannot distribute it, but we do |
301 |
distribute an interface to it. To build with CONOPT, run |
302 |
`configure' with the option --with-conopt=CONOPTLIB where |
303 |
CONOPTLIB is the location of your CONOPT library. For example: |
304 |
configure --with-conopt=/export/conopt/lib/libconsub.a |
305 |
|
306 |
There are problems which `configure' lists as fatal errors because |
307 |
these problems prevent you from building ASCEND. Those problems are: |
308 |
|
309 |
* Cannot find ANSI C compiler. |
310 |
We have written ASCEND in ANSI C; you'll need a compiler that |
311 |
understands ANSI C and C libraries that implement ANSI C features |
312 |
in order to build ASCEND. If you have an ANSI compiler that |
313 |
`configure' is not finding, set the `CC' environment variable to |
314 |
its location and run configure again. If you still get the error, |
315 |
please make sure your compiler understands ANSI C and send us mail |
316 |
so we can fix `configure'. Note that `gcc' understands ANSI C, so |
317 |
run `configure' with the `--enable-gcc' argument which allows |
318 |
`configure' the search for `gcc'. Also note when using `gcc' |
319 |
under SunOS 4.1.x the link phase will fail, since the standard |
320 |
SunOS 4.1.x setup does not provide ANSI C libraries. |
321 |
|
322 |
* Cannot find compatible Tcl/Tk library or header. |
323 |
ASCEND needs Tcl v8.0 and Tk v8.0 compatible library files and |
324 |
header files. If you have built and installed Tcl and Tk 8.0 and |
325 |
`configure' cannot find them, run configure again with the |
326 |
arguments `--with-tcl=TCL_LIB,TCL_HEADER' where TCL_LIB is the |
327 |
location of the Tcl library, and TCL_HEADER is the location of the |
328 |
Tcl header file; a similar `--with-tk' argument exists. For |
329 |
example, |
330 |
configure --with-tcl='-L/usr/local/lib -ltcl,/usr/local/include/tcl.h' \ |
331 |
--with-tk='-L/usr/local/lib -ltk,/usr/local/include/tk.h' |
332 |
|
333 |
|
334 |
ASCEND Specific Options for Configure |
335 |
===================================== |
336 |
|
337 |
`configure' accepts several options. Type `configure --help' for a |
338 |
full list. Options of particular interest when building ASCEND are: |
339 |
--enable-gcc |
340 |
By default, `configure' uses the environment variable `CC', then |
341 |
`cc', `c89', `xlf', and `acc' when searching for an ANSI C |
342 |
compiler. This option tells `configure' to use the environment |
343 |
variable `CC', next to look for `gcc', and then to consider the |
344 |
other compilers as listed above when it is trying to locate an |
345 |
ANSI C compiler. |
346 |
--enable-optimization |
347 |
By default, `configure' sets `CFLAGS' such that the C files are |
348 |
built with debugging information (-g). This option turns off |
349 |
debugging and turns on optimization and NDEBUG (-O -DNDEBUG=1). |
350 |
--without-models |
351 |
If `configure' finds the `models' source directory, it will |
352 |
descend into it and create Makefiles. With this option, |
353 |
`configure' does not create Makefiles in the `models' directory. |
354 |
If there is no `models' source directory, this option has no |
355 |
effect. The only purpose for the Makefiles in the `models' |
356 |
directory is to allow the `make install' target to work. |
357 |
--without-TK |
358 |
Same as the `--without-models' option except is applies to the |
359 |
`TK' subdirectory. |
360 |
|
361 |
Compiling For Multiple Architectures |
362 |
==================================== |
363 |
|
364 |
You can compile ASCEND for more than one kind of computer at |
365 |
the same time, by placing the object files for each architecture in |
366 |
their own directory. To do this, you must use a version of `make' that |
367 |
supports the `VPATH' variable, such as GNU `make'. `cd' to the |
368 |
directory where you want the object files and executables to go and run |
369 |
the `configure' script. `configure' automatically checks for the source |
370 |
code in the directory that `configure' is in and in `..'. |
371 |
|
372 |
If you have to use a `make' that does not support the `VPATH' |
373 |
variable, you have to compile the package for one architecture at a time |
374 |
in the source code directory. After you have installed the package for |
375 |
one architecture, use `make distclean' before reconfiguring for another |
376 |
architecture. |
377 |
|
378 |
Installation Names |
379 |
================== |
380 |
|
381 |
By default, `make install' will install the package's files in |
382 |
`/usr/local/bin', `/usr/local/man', etc. You can specify an |
383 |
installation prefix other than `/usr/local' by giving `configure' the |
384 |
option `--prefix=PATH'. |
385 |
|
386 |
You can specify separate installation prefixes for architecture- |
387 |
specific files and architecture-independent files. If you give |
388 |
`configure' the option `--exec-prefix=PATH', the package will use PATH |
389 |
as the prefix for installing programs and libraries. Documentation and |
390 |
other data files will still use the regular prefix. |
391 |
|
392 |
In addition, if you use an unusual directory layout you can give |
393 |
options like `--bindir=PATH' to specify different values for particular |
394 |
kinds of files. Run `configure --help' for a list of the directories |
395 |
you can set and what kinds of files go in them. |
396 |
|
397 |
Note that you should use the final `apparent' resting place of the |
398 |
files as the arguments to `--prefix' and `--exec_prefix' since these |
399 |
options often set variables that get compiled into the binaries. When |
400 |
you actually do `make install' to install the program, pass the `actual' |
401 |
resting place on the `make' line. For example, if ascend appears to |
402 |
live in /usr/local/bin/ascend but that is actually a symbolic link to |
403 |
/afs/cs/local/ascend/@sys/omega/bin/ascend, you should: |
404 |
configure --prefix=/usr/local |
405 |
make |
406 |
make install prefix=/afs/cs/local/ascend/@sys/omega |
407 |
|
408 |
Optional Features |
409 |
================= |
410 |
|
411 |
For packages that use the X Window System, `configure' can usually |
412 |
find the X include and library files automatically, but if it doesn't, |
413 |
you can use the `configure' options `--x-includes=DIR' and |
414 |
`--x-libraries=DIR' to specify their locations. |
415 |
|
416 |
Specifying the System Type |
417 |
========================== |
418 |
|
419 |
There may be some features `configure' can not figure out |
420 |
automatically, but needs to determine by the type of host the package |
421 |
will run on. Usually `configure' can figure that out, but if it prints |
422 |
a message saying it can not guess the host type, give it the |
423 |
`--host=TYPE' option. TYPE can either be a short name for the system |
424 |
type, such as `sun4', or a canonical name with three fields: |
425 |
CPU-COMPANY-SYSTEM |
426 |
|
427 |
See the file `config/config.sub' for the possible values of each field. |
428 |
If `config/config.sub' isn't included in this package, then this package |
429 |
doesn't need to know the host type. |
430 |
|
431 |
Sharing Defaults |
432 |
================ |
433 |
|
434 |
If you want to set default values for `configure' scripts to share, |
435 |
you can create a site shell script called `config.site' that gives |
436 |
default values for variables like `CC', `cache_file', and `prefix'. |
437 |
`configure' looks for `PREFIX/share/config.site' if it exists, then |
438 |
`PREFIX/etc/config.site' if it exists. Or, you can set the |
439 |
`CONFIG_SITE' environment variable to the location of the site script. |
440 |
A warning: not all `configure' scripts look for a site script. |
441 |
|
442 |
Operation Controls |
443 |
================== |
444 |
|
445 |
`configure' recognizes the following options to control how it |
446 |
operates. |
447 |
|
448 |
`--help' |
449 |
Print a summary of the options to `configure', and exit. |
450 |
|
451 |
`--quiet' |
452 |
`--silent' |
453 |
`-q' |
454 |
Do not print messages saying which checks are being made. |
455 |
|
456 |
`--srcdir=DIR' |
457 |
Look for the package's source code in directory DIR. Usually |
458 |
`configure' can determine that directory automatically. |
459 |
|
460 |
`--version' |
461 |
Print the version of Autoconf used to generate the `configure' |
462 |
script, and exit. |
463 |
|
464 |
`configure' also accepts some other, not widely useful, options. |
465 |
|
466 |
|
467 |
======================================================================== |
468 |
Getting Help |
469 |
======================================================================== |
470 |
|
471 |
To get help in building ASCEND, please send email to |
472 |
ascend+build@edrc.cmu.edu or fill in the form on the contact page off |
473 |
our home page: http://www.cs.cmu.edu/~ascend/ |
474 |
If your mailer can't cope with the + in the address, send the |
475 |
information requested on the form to ascend-www@vagu.edrc.cmu.edu. |
476 |
|
477 |
|
478 |
======================================================================== |
479 |
Administrivia |
480 |
======================================================================== |
481 |
|
482 |
$Revision: 1.8 $ |
483 |
$Date: 2000/01/25 02:13:24 $ |
484 |
$Source: /afs/cs.cmu.edu/project/ascend/Repository/INSTALL,v $ |
485 |
|
486 |
Local Variables: |
487 |
mode: text |
488 |
fill-column: 72 |
489 |
indent-tabs-mode: nil |
490 |
End: |