Installing MPFR
===============
0. You first need to install GMP. See .
MPFR requires GMP version 4.1 or later.
1. In the MPFR build directory, to detect your system, type:
./configure
2. To build the library, type:
make
3. To check the built library (runs the test files), type:
make check
4. To install it (default "/usr/local" | see "--prefix" option), type:
make install
Building the documentation
==========================
To build the documentation in various formats, you may first need to
install recent versions of some utilities such as texinfo.
* Type "make info" to produce the documentation in the info format.
* Type "make dvi" to produce the documentation in the DVI format.
* Type "make mpfr.ps" to produce the documentation in the Postscript format.
Building MPFR with internal GMP header files
============================================
MPFR built with internal GMP header files is a bit faster,
so you may want to build it with them. Just do this in step 1:
./configure --with-gmp-build=GMPBUILD
where GMPBUILD is the GMP build directory.
The needed header files are:
gmp-impl.h, longlong.h and all the necessary headers to use them.
./configure options
===================
--prefix=DIR installs MPFR headers and library in DIR/include and
DIR/lib respectively (the default is "/usr/local").
--with-gmp-include=DIR assumes that DIR contains gmp.h [, gmp-impl.h, ...]
--with-gmp-lib=DIR assumes that DIR contains libgmp.a
--with-gmp-build=DIR assumes that DIR contains the source of GMP.
same as --with-gmp-lib=DIR/.libs
and --with-gmp-include=DIR
Try to set CFLAGS to GMP's one.
--with-gmp=DIR assumes that DIR is where you have installed GMP.
same as --with-gmp-lib=DIR/lib
and --with-gmp-include=DIR/include
--enable-assert Build MPFR with assertions.
--with-irix64 Irix64 support.
Run "./configure --help" to see the other options (autoconf default options).
In case of problem
==================
If the "configure" fails, please check that the C compiler and its
options are the same as those for the GMP build (specially the ABI).
You can see the latter with the following:
grep "^CC\|^CFLAGS" GMPBUILD/Makefile
Then type (for example, under a sh-compatible shell):
./configure --with-gmp-include=GMPBUILD --with-gmp-lib=GMPINSTALL/lib \
CC= CFLAGS=
And continue the install.
On some architectures, you should provide further options to match
those used by GMP, for example, on powerpc-aix:
make AR="ar -X64"
On some architectures, try with "gmake" (GNU make) instead of "make".
Problems have been reported with the Tru64 make.
Try to build MPFR with/without GMP internal files.
If the build was ok, but the tests failed to link with GMP, it is usually
because /usr/local/lib is used by the static linker but not by the shared
linker. There are two solutions:
1. setenv LD_LIBRARY_PATH /usr/lib:/usr/local/lib [tcsh]
or export LD_LIBRARY_PATH=/usr/lib:/usr/local/lib [bash]
2. Or run MPFR's configure with "--with-gmp=/usr/local/"
so that libtool is able to fix this problem.
If you can't solve your problem, you could contact us at ,
indicating the machine and operating system used (uname -a), the compiler
and version used (gcc -v if you use gcc), the compile options used if any,
the version of GMP and MPFR used and a description of the problem
encountered. Please send us also a log of the installation (config.log).
Note that even if you can build MPFR with a C++ compiler you can't run
the test suite: C and C++ are not the same language!
You should use a C compiler instead.
Notes on Windows 32
===================
1 - We advise to use mingw (http://www.mingw.org/), which is simpler and
less demanding than Cygwin. Contrary to Cygwin, it also provides native
windows code. The binaries compiled with Cygwin require a dynamic
library (cygwin.dll) to work; there is a Cygwin option -mno-cygwin to
build native code, but it may require some non-portable tricks.
2 - If you just want to make a binary with gcc, there is nothing to do:
GMP, MPFR and the program compile exactly as under Linux.
3 - If you want to make libraries to work under another Windows compiler
like Visual C / C++, the "trick" is that the unix-like *.a files created
by gcc are entirely compatible with the Windows *.lib files. So you just
have to rename the *.a files into *.lib.
With gmp-4.1.3, the only remaining problem seems to be the "alloca" calls
in GMP. Configuring GMP and MPFR with --enable-alloca=malloc-reentrant
should work (if you build MPFR with GMP internal files).
Or you could add the library
"$MINGWIN$/lib/gcc-lib/mingw32/$VERSION$/libgcc.a"
to your project: it contains all the extra-functions needed by a program
compiled by gcc (division of 64 bits integer, bcopy, alloca...).
Of course, include it if and only if your compiler is not gcc.
Notes on Windows 64
===================
MPFR has not been tested on Windows 64.