subs() and normal() use maps instead of lists, resulting in a huge performance
[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 recommend
10 the C++ compiler from the GNU compiler collection, GCC >= 3.0.  If you
11 have a different or older compiler you are on your own.  Note that you
12 may have to use the same compiler you compiled CLN with because of
13 differing name-mangling schemes.
14
15
16 INSTALLATION
17 ============
18
19 As with any autoconfiguring GNU software, installation is as easy as this:
20
21  $ ./configure
22  $ make
23  $ make check
24 [become root if necessary]
25  # make install
26
27 Known to work with:
28   - Linux on x86, Alpha and Sparc using GCC 3.0.x, 3.1 and 3.2.
29 Known not to work with:
30   - GCC 2.96 or earlier because proper exception and standard library support
31     is missing there.
32
33 The "configure" script can be given a number of options to enable and
34 disable various features. For a complete list, type:
35
36  $ ./configure --help
37
38 A few of the more important ones:
39
40  --prefix=PREFIX        install architecture-independent files in PREFIX
41                         [defaults to /usr/local]
42  --exec-prefix=EPREFIX  install architecture-dependent files in EPREFIX
43                         [defaults to the value given to --prefix]
44  --disable-shared       suppress the creation of a shared version of libginac
45
46 More detailed installation instructions can be found in the documentation,
47 in the doc/ directory.
48
49 The time the "make" step takes depends heavily on optimization levels.
50 Large amounts of memory (>128MB) will be required by the compiler,
51 also depending on optimization.  To give you a rough idea of what you
52 have to expect the following table may be helpful.  It was measured on
53 an Athlon/800MHz with "enough" memory:
54
55 step          | GCC optimization  | comment
56               |   -O1   |   -O2   |
57 --------------+---------+---------+----------------------------------------
58 make          |   ~6m   |   ~8m   | shared and static library
59 make check    |   ~8m   |  ~12m   | largely due to compilation
60
61
62 COMMON PROBLEMS
63 ===============
64
65 Problems with CLN
66 -----------------
67
68 You should use at least CLN-1.1, since during the development of
69 GiNaC various bugs have been discovered and fixed in earlier versions.
70 Please install CLN properly on your system before continuing with
71 GiNaC.
72
73 Problems with building ginsh
74 ----------------------------
75
76 The most common reason why this doesn't succeed is the absence of
77 libreadline and/or the corresponding header files.  Depending on what
78 your system/distribution is, you will have to install a package called
79 libreadline and maybe libreadline-dev.  If your system's vendor
80 doesn't supply such packages, go to <ftp://ftp.gnu.org/gnu/readline/>
81 and compile it yourself.
82
83 Problems with missing standard header files
84 -------------------------------------------
85
86 Building GiNaC requires many standard header files.  If you get a
87 configure error complaining about such missing files your compiler and
88 library are probably not up to date enough and it's no worth
89 continuing.