ViewVC logotype

Contents of /trunk/INSTALL

Parent Directory Parent Directory | Revision Log Revision Log

Revision 146 - (show annotations) (download)
Thu Dec 22 04:10:02 2005 UTC (18 years, 6 months ago) by johnpye
File size: 22815 byte(s)
Updating INSTALL instructions somehwhat
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).
8 We now recommend building ASCEND with Tcl/Tk 8.3.5.
10 https://pse.cheme.cmu.edu/wiki/view/Ascend/Jam
12 ========================================================================
13 UNIX Installation
14 ========================================================================
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/
21 Executive summary version
22 =========================
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.
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.
38 -----------------------------------
39 User data directory is /usr0/ballan/ascdata
40 -----------------------------------
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.
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
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.
62 Requirements
63 ============
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.
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.
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').
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.
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/
137 The simplest way to compile this package is:
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.
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.
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.
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.
212 Running `configure' takes awhile. While running, it prints some
213 messages telling which features it is checking for.
215 See below for arguments to pass to `configure' and for
216 explanations of the and error messages `configure' may produce.
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
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.
227 In the `Script' window you will see the License and Warranty for
228 ASCEND. Please read it.
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).
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'.
244 Compilers and Options
245 =====================
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
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
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.
266 Warnings and Errors Generated by Configure
267 ==========================================
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:
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.
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'
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
306 There are problems which `configure' lists as fatal errors because
307 these problems prevent you from building ASCEND. Those problems are:
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.
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'
334 ASCEND Specific Options for Configure
335 =====================================
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.
361 Compiling For Multiple Architectures
362 ====================================
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 `..'.
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.
378 Installation Names
379 ==================
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'.
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.
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.
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
408 Optional Features
409 =================
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.
416 Specifying the System Type
417 ==========================
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:
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.
431 Sharing Defaults
432 ================
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.
442 Operation Controls
443 ==================
445 `configure' recognizes the following options to control how it
446 operates.
448 `--help'
449 Print a summary of the options to `configure', and exit.
451 `--quiet'
452 `--silent'
453 `-q'
454 Do not print messages saying which checks are being made.
456 `--srcdir=DIR'
457 Look for the package's source code in directory DIR. Usually
458 `configure' can determine that directory automatically.
460 `--version'
461 Print the version of Autoconf used to generate the `configure'
462 script, and exit.
464 `configure' also accepts some other, not widely useful, options.
467 ========================================================================
468 Getting Help
469 ========================================================================
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.
478 ========================================================================
479 Administrivia
480 ========================================================================
482 $Revision: 1.8 $
483 $Date: 2000/01/25 02:13:24 $
484 $Source: /afs/cs.cmu.edu/project/ascend/Repository/INSTALL,v $
486 Local Variables:
487 mode: text
488 fill-column: 72
489 indent-tabs-mode: nil
490 End:

ViewVC Help
Powered by ViewVC 1.1.22