- config.guess config.sub ltconfig ltmain.sh: updated from FSF.
[ginac.git] / INSTALL
1 PREREQUISITES
2 =============
3
4 GiNaC requires the CLN library by Bruno Haible, available from 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 free C++
16 interpreter Cint.  You may obtain it from
17   * <ftp://root.cern.ch/root/>.
18 Install it by following the instructions included in Cint's
19 distribution before trying to compile GiNaC-cint.  (See section
20 `Working with the Cint C++ interpreter' below.)
21
22
23 INSTALLATION
24 ============
25
26 As with any autoconfiguring GNU software, installation is as easy as this:
27
28  $ ./configure
29  $ make
30  $ make check
31 [become root if necessary]
32  $ make install
33
34 Known to work with:
35   - Linux/x86, EGCS-1.1.x and GCC 2-95.x
36 Known not to work with:
37   - GCC 2.7.x or earlier because proper exception support is missing there.
38
39 The "configure" script can be given a number of options to enable and
40 disable various features. For a complete list, type:
41
42  $ ./configure --help
43
44 A few of the more important ones:
45
46  --prefix=PREFIX        install architecture-independent files in PREFIX
47                         [defaults to /usr/local]
48  --exec-prefix=EPREFIX  install architecture-dependent files in EPREFIX
49                         [defaults to the value given to --prefix]
50  --disable-shared       suppress the creation of a shared version of libginac
51
52 More detailed installation instructions can be found in the documentation,
53 in the doc/ directory.
54
55 The time the "make" step takes depends heavily on optimization levels.
56 Large amounts of memory (>128MB) will be required by the compiler,
57 also depending on optimization.  To give you a rough idea of what you
58 have to expect the following table may be helpful.  It was measured on
59 a P-III/500MHz with "enough" memory:
60
61 step:         | GCC optimization level:  | comment:
62               |  -O0   |  -O1   |  -O2   |
63 --------------+--------+--------+--------+-------------------------------
64 make          |  ~4m   |  ~6m   |  ~10m  | building shared and static lib
65 make check    |  ~3m   |  ~3m   |  ~7m   | mostly due to compilation
66
67
68 COMMON PROBLEMS
69 ===============
70
71 Problems with CLN
72 -----------------
73
74 You should use at least CLN V1.0.3, since during the development of
75 GiNaC various bugs have been discovered and fixed in earlier versions.
76 To protect you, the "configure" script checks for a feature that was
77 added in V1.0.3 so it won't continue with earlier versions anyhow.
78 Please install CLN properly on your system before continuing with
79 GiNaC.
80
81 Problems with building ginsh
82 ----------------------------
83
84 The most common reason why this doesn't succeed is the absence of
85 libreadline and/or the corresponding header files.  Depending on what
86 your system/distribution is, you will have to install a package called
87 libreadline and maybe libreadline-dev.  If your system's vendor
88 doesn't supply such packages, go to <ftp://ftp.gnu.org/gnu/readline/>
89 and compile it yourself.
90
91
92 Working with the Cint C++ interpreter
93 =====================================
94
95 Please see <http://root.cern.ch/root/Cint.html> to learn about Cint
96 and install it prior to installing ginaccint.  For the interpreter-
97 compiler `makecint' to work properly, the Makefiles need to know where
98 Cint has its system directory.  This is usually done by exporting
99 $CINTSYSDIR to point to the proper place.  With GiNaC you may either
100 try to export that variable and type
101  $ ./configure --with-cint
102 or specify it directly on the command line by saying
103  $ ./configure --with-cint=/my/path/to/cintsysdir
104 Enjoy!
105
106 Here is an overview to gives you an idea if you can expect GiNaCcint 
107 to compile, install and work properly:
108
109  Cint version |   is known to work with   |  is known not to work with
110 --------------+---------------------------+-----------------------------
111  < 5.14.37    |                           | (incompatible with GiNaC)
112    5.14.38    | egcs 1.1.1 (problematic)  | gcc.2.95.2
113    5.14.39    | egcs 1.1.1, gcc.2.95.2    | gcc <= 2.7.2.3
114    5.14.40    | egcs 1.1.1, gcc.2.95.2    | gcc <= 2.7.2.3