Next: , Previous: , Up: Top   [Index]


2 Installing GNU MPC

To build GNU MPC, you first have to install GNU MP (version 4.3.2 or higher) and GNU MPFR (version 2.4.2 or higher) on your computer. You need a C compiler; GCC version 4.4 or higher is recommended, since GNU MPC may trigger a bug in previous versions, see the thread at http://lists.gforge.inria.fr/pipermail/mpc-discuss/2011-February/000823.html. And you need a standard Unix ‘make’ program, plus some other standard Unix utility programs.

Here are the steps needed to install the library on Unix systems:

  1. tar xzf mpc-1.0.3.tar.gz
  2. cd mpc-1.0.3
  3. ./configure

    if GMP and GNU MPFR are installed into standard directories, that is, directories that are searched by default by the compiler and the linking tools.

    ./configure --with-gmp=<gmp_install_dir>

    is used to indicate a different location where GMP is installed. Alternatively, you can specify directly GMP include and GMP lib directories with ‘./configure --with-gmp-lib=<gmp_lib_dir> --with-gmp-include=<gmp_include_dir>’.

    ./configure --with-mpfr=<mpfr_install_dir>

    is used to indicate a different location where GNU MPFR is installed. Alternatively, you can specify directly GNU MPFR include and GNU MPFR lib directories with ‘./configure --with-mpf-lib=<mpfr_lib_dir> --with-mpfr-include=<mpfr_include_dir>’.

    Another useful parameter is ‘--prefix’, which can be used to specify an alternative installation location instead of /usr/local; see ‘make install’ below.

    To enable checking for memory leaks using valgrind during make check, add the parameter --enable-valgrind-tests.

    If for debugging purposes you wish to log calls to GNU MPC functions from within your code, add the parameter ‘--enable-logging’. In your code, replace the inclusion of mpc.h by mpc-log.h and link the executable dynamically. Then all calls to functions with only complex arguments are printed to stderr in the following form: First, the function name is given, followed by its type such as ‘c_cc’, meaning that the function has one complex result (one ‘c’ in front of the ‘_’), computed from two complex arguments (two ‘c’ after the ‘_’). Then, the precisions of the real and the imaginary part of the first result is given, followed by the second one and so on. Finally, for each argument, the precisions of its real and imaginary part are specified and the argument itself is printed in hexadecimal via the function mpc_out_str (see String and Stream Input and Output). The option requires a dynamic library, so it may not be combined with --disable-shared.

    Use ‘./configure --help’ for an exhaustive list of parameters.

  4. make

    This compiles GNU MPC in the working directory.

  5. make check

    This will make sure GNU MPC was built correctly.

    If you get error messages, please report them to ‘mpc-discuss@lists.gforge.inria.fr’ (See Reporting Bugs, for information on what to include in useful bug reports).

  6. make install

    This will copy the file mpc.h to the directory /usr/local/include, the file libmpc.a to the directory /usr/local/lib, and the file mpc.info to the directory /usr/local/share/info (or if you passed the ‘--prefix’ option to configure, using the prefix directory given as argument to ‘--prefix’ instead of /usr/local). Note: you need write permissions on these directories.

2.1 Other ‘make’ Targets

There are some other useful make targets:

2.2 Known Build Problems

On AIX, if GMP was built with the 64-bit ABI, before building and testing GNU MPC, it might be necessary to set the ‘OBJECT_MODE’ environment variable to 64 by, e.g.,

export OBJECT_MODE=64

This has been tested with the C compiler IBM XL C/C++ Enterprise Edition V8.0 for AIX, version: 08.00.0000.0021, GMP 4.2.4 and GNU MPFR 2.4.1.

Please report any other problems you encounter to ‘mpc-discuss@lists.gforge.inria.fr’. See Reporting Bugs.


Next: , Previous: , Up: Top   [Index]