X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=INSTALL;h=bfa4bdd97c9f14a45d0ca35fde0667eb9a748beb;hp=aee07da74f0abe5517a6b1d5808b8e89d47a8d7b;hb=d8b5a1f3ff5a6b7e89f4dd00b92779f178089299;hpb=dc99ad9cf2df9460d5d7e1cf96ccdd5f4055b798 diff --git a/INSTALL b/INSTALL index aee07da7..bfa4bdd9 100644 --- a/INSTALL +++ b/INSTALL @@ -1,39 +1,61 @@ PREREQUISITES ============= -GiNaC requires the CLN library by Bruno Haible, available at either -one of the following FTP-sites: - * , - * or - * . -You will also need a decent ANSI-compliant C++-compiler. We use -`post-EGCS' GCC, i.e GCC >= 2.95 for development so if you have a -different compiler you are on your own. Note that you may have to use -the same compiler you compiled CLN with because of differing +GiNaC requires the CLN library by Bruno Haible installed on your system. +It is available from . + +You will also need a decent ANSI-compliant C++-compiler. We recommend the +C++ compiler from the GNU compiler collection, GCC >= 3.4. If you have a +different or older compiler you are on your own. Note that you may have to +use the same compiler you compiled CLN with because of differing name-mangling schemes. -Optionally, GiNaC may work together with Masaharu Goto's C++ -interpreter cint (which requires that you register for commercial -use). You may obtain it from - * . -Install it by following the instructions included in Cint's -distribution before trying to compile GiNaC-cint. (See section -`Working with the Cint C++ interpreter' below.) +The pkg-config utility is required for configuration, it can be downloaded +from . + +To build the GiNaC tutorial and reference manual the doxygen utility +(it can be downloaded from http://www.stack.nl/~dimitri/doxygen) and +TeX are necessary. + +Known to work with: + - Linux on x86 and x86_64 using + - GCC 3.4, 4.0, 4.1, 4.2, 4.3.x (x >= 1), 4.4, 4.5, and 4.6 + - Clang 2.8 + - Windows on x86 using GCC 3.4 (MinGW) + +Known not to work with: + - Clang 2.7 and earlier due to poor C++ support. + - GCC 4.3.0 due to the compiler bug, + see . + - GCC 2.96 or earlier because proper exception and standard library support + is missing there. + +If you install from git, you also need GNU autoconf (>=2.59), automake (>=1.8), +libtool (>= 1.5), bison (>= 2.3), flex (>= 2.5.33) to be installed. INSTALLATION ============ -As with any autoconfiguring GNU software, installation is as easy as this: +To install from a source .tar.bz2 distribution: $ ./configure $ make - $ make check -[become root if necessary] - $ make install + [become root if necessary] + # make install -Known to work with: - - Linux/x86, EGCS-1.1.2 or GCC 2-95.1/2-95.2 +To build the GiNaC tutorial and reference manual in HTML, DVI, PostScript, +or PDF formats, use one of + + $ make html + $ make dvi + $ make ps + $ make pdf + +To compile and run GiNaC's test and benchmark suite and check whether the +library works correctly you can use + + $ make check The "configure" script can be given a number of options to enable and disable various features. For a complete list, type: @@ -47,22 +69,45 @@ A few of the more important ones: --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [defaults to the value given to --prefix] --disable-shared suppress the creation of a shared version of libginac + --disable-static suppress the creation of a static version of libginac More detailed installation instructions can be found in the documentation, in the doc/ directory. -The time the "make" step takes depends heavily on optimization levels. -Large amounts of memory (>128MB) will be required by the compiler, -also depending on optimization. To give you a rough idea of what you -have to expect the following table may be helpful. It was measured on -a P-III/500MHz with "enough" memory: +The time the "make" step takes depends on optimization levels. To give you +a rough idea of what you have to expect the following table may be helpful. +It was measured on an Athlon X2/3GHz with 4Gb of RAM. + +step | GCC optimization | comment + | -O1 | -O2 | +--------------+---------+---------+---------------------------------------- +make | ~1m | ~2m | shared library only (--disable-static), + | | | parallel compilation (MAKEFLAGS=-j2) +make check | ~6m | ~6m | largely due to compilation + -step: | GCC optimization level: | comment: - | -O0 | -O1 | -O2 | ---------------+--------+--------+--------+------------------------------- -make | ~4m | ~6m | ~10m | building shared and static lib -make check | ~2m | ~2m | ~7m | mostly due to compilation +To install from git +=================== +First, download the code: + $ git clone git://www.ginac.de/ginac.git ginac + $ cd ginac + +Secondly, make sure all required software is installed. This is *really* +important step. If some package is missing, the `configure' script might +be misgenerated, see e.g. this discussion: + + +Finally, run + + $ autoreconf -i + +to generate the `configure' script, and proceed in a standard way, i.e. + + $ ./configure + $ make + [become root if necessary] + # make install COMMON PROBLEMS =============== @@ -70,43 +115,33 @@ COMMON PROBLEMS Problems with CLN ----------------- -You should use at least CLN V1.0.3, since during the development of -GiNaC various bugs have been discovered and fixed in earlier versions. -To protect you, the "configure" script checks for a feature that was -added in V1.0.3 so it won't continue with earlier versions anyhow. -Please install CLN properly on your system before continuing with -GiNaC. - -Problems with building ginsh ----------------------------- - -The most common reason why this doesn't succeed is the absence of -libreadline and/or the corresponding header files. Depending on what -your system/distribution is, you will have to install a package called -libreadline and maybe libreadline-dev. If your system's vendor -doesn't supply such packages, go to -and compile it yourself. After that it should work fine. - -If you want to build a completely static ginsh and your compiler still -complains about unresolved objects try linking with libncurses, too. - - -Working with the Cint C++ interpreter -===================================== - -The interface to the Cint C++ interpreter is currently in an alpha -state. Please see to learn about -Cint and install it before installing ginaccint. For the tool -makecint to work properly it must know where Cint has its system -directory. This is usually done by exporting $CINTSYSDIR to point to -the proper place. With GiNaC you may either try to export that -variable and type - $ ./configure --with-cint -or specify it on the command line saying - $ ./configure --with-cint=/my/path/to/cintsysdir -Good luck! - - Known to work with: | Known not to work with: ------------------------+---------------------------- - Cint 5.14.25 | Cint 5.14.24 - Cint 5.14.26 | Cint 5.14.29 +You should use at least CLN-1.2.2, since during the development of GiNaC +various bugs have been discovered and fixed in earlier versions. Please +install CLN properly on your system before continuing with GiNaC. + +Problems building ginsh +----------------------- + +The GiNaC interactive shell, ginsh, makes use of GNU readline to provide +command line editing and history. If readline library and/or headers are +missing on your system, the configure script will issue a warning. In this +case you have two options: + +1) (the easiest) If you don't intend to use ginsh (i.e. if you need GiNaC +library to compile some piece of software), ignore it. ginsh builds just +fine without readline (obviously, it won't support the command line history +and editing). + +2) Install GNU readline and run the configure script once again. Depending on +what your system/distribution is, you will have to install a package called +libreadline and libreadline-dev (or readline-devel). If your system's vendor +doesn't supply such packages, go to and +compile it yourself. Note that non-GNU versions of libreadline (in particular +one shipped with Mac OS X) are not supported at the moment. + +Problems with missing standard header files +------------------------------------------- + +Building GiNaC requires many standard header files. If you get a configure +error complaining about such missing files your compiler and library are +probably not up to date enough and it's no worth continuing.