- Updated the timings.
[ginac.git] / INSTALL
1 PREREQUISITES
2 =============
3
4 GiNaC requires the CLN library by Bruno Haible, available at either
5 one of the following FTP-sites:
6   * <ftp://ftp.santafe.edu/pub/gnu/>,
7   * <ftp://ftp.ilog.fr/pub/Users/haible/gnu/> or
8   * <ftp://ftpthep.physik.uni-mainz.de/pub/gnu/>.
9 You will also need a decent ANSI-compliant C++-compiler.  We use
10 `post-EGCS' GCC, i.e GCC >= 2.95 for development so if you have a
11 different compiler you are on your own.  Note that you may have to use
12 the same compiler you compiled CLN with because of differing
13 name-mangling schemes.
14
15 Optionally, GiNaC may work together with Masaharu Goto's C++
16 interpreter cint (which requires that you register for commercial
17 use).  You may obtain it from
18   * <ftp://root.cern.ch/root/>.
19 Install it by following the instructions included in Cint's
20 distribution before trying to compile GiNaC-cint.  (See section
21 `Working with the Cint C++ interpreter' below.)
22
23
24 INSTALLATION
25 ============
26
27 As with any autoconfiguring GNU software, installation is as easy as this:
28
29  $ ./configure
30  $ make
31  $ make check
32 [become root if necessary]
33  $ make install
34
35 Known to work with:
36   - Linux/x86, EGCS-1.1.2 or GCC 2-95.1/2-95.2
37
38 The "configure" script can be given a number of options to enable and
39 disable various features. For a complete list, type:
40
41  $ ./configure --help
42
43 A few of the more important ones:
44
45  --prefix=PREFIX        install architecture-independent files in PREFIX
46                         [defaults to /usr/local]
47  --exec-prefix=EPREFIX  install architecture-dependent files in EPREFIX
48                         [defaults to the value given to --prefix]
49  --disable-shared       suppress the creation of a shared version of libginac
50
51 More detailed installation instructions can be found in the documentation,
52 in the doc/ directory.
53
54 The time the "make" step takes depends heavily on optimization levels.
55 Large amounts of memory (>128MB) will be required by the compiler,
56 also depending on optimization.  To give you a rough idea of what you
57 have to expect the following table may be helpful.  It was measured on
58 a P-III/500MHz with "enough" memory:
59
60 step:         | GCC optimization level:  | comment:
61               |  -O0   |  -O1   |  -O2   |
62 --------------+--------+--------+--------+-------------------------------
63 make          |  ~4m   |  ~6m   |  ~10m  | building shared and static lib
64 make check    |  ~3m   |  ~3m   |  ~7m   | mostly due to compilation
65
66
67 COMMON PROBLEMS
68 ===============
69
70 Problems with CLN
71 -----------------
72
73 You should use at least CLN V1.0.3, since during the development of
74 GiNaC various bugs have been discovered and fixed in earlier versions.
75 To protect you, the "configure" script checks for a feature that was
76 added in V1.0.3 so it won't continue with earlier versions anyhow.
77 Please install CLN properly on your system before continuing with
78 GiNaC.
79
80 Problems with building ginsh
81 ----------------------------
82
83 The most common reason why this doesn't succeed is the absence of
84 libreadline and/or the corresponding header files.  Depending on what
85 your system/distribution is, you will have to install a package called
86 libreadline and maybe libreadline-dev.  If your system's vendor
87 doesn't supply such packages, go to <ftp://ftp.gnu.org/gnu/readline/>
88 and compile it yourself.  After that it should work fine.  
89
90 If you want to build a completely static ginsh and your compiler still
91 complains about unresolved objects try linking with libncurses, too.
92
93
94 Working with the Cint C++ interpreter
95 =====================================
96
97 The interface to the Cint C++ interpreter is currently in an alpha
98 state.  Please see <http://root.cern.ch/root/Cint.html> to learn about
99 Cint and install it before installing ginaccint.  For the tool
100 makecint to work properly it must know where Cint has its system
101 directory.  This is usually done by exporting $CINTSYSDIR to point to
102 the proper place.  With GiNaC you may either try to export that
103 variable and type
104  $ ./configure --with-cint
105 or specify it on the command line saying
106  $ ./configure --with-cint=/my/path/to/cintsysdir
107 Good luck!
108
109   Known to work with:  |  Known not to work with:
110 -----------------------+----------------------------
111   Cint 5.14.31         |  Cint before 5.14.29
112