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.