c47aa470fa4b97de16adcaa809e8226d2e52631c
[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.x and GCC 2-95.x
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 Please see <http://root.cern.ch/root/Cint.html> to learn about Cint
98 and install it prior to installing ginaccint.  For the interpreter-
99 compiler `makecint' to work properly, the Makefiles need to know where
100 Cint has its system directory.  This is usually done by exporting
101 $CINTSYSDIR to point to the proper place.  With GiNaC you may either
102 try to export that variable and type
103  $ ./configure --with-cint
104 or specify it directly on the command line by saying
105  $ ./configure --with-cint=/my/path/to/cintsysdir
106 Enjoy!
107
108 Here is an overview to gives you an idea if you can expect GiNaCcint 
109 to compile, install and work properly:
110
111  Cint version |   is known to work with   |  is known not to work with
112 --------------+---------------------------+-----------------------------
113  < 5.14.37    |                           | (incompatible with GiNaC)
114    5.14.38    | egcs 1.1.1 (problematic)  | gcc.2.95.2
115    5.14.39    | egcs 1.1.1, gcc.2.95.2    | gcc <= 2.7.2.3