beta-0.89.2
[luatex.git] / source / libs / mpfr / mpfr-3.1.3 / INSTALL
blob442ff3f943648a511bcebaee9386c93922e51e3e
1 Copyright 1999-2015 Free Software Foundation, Inc.
2 Contributed by the AriC and Caramel projects, INRIA.
4 This file is part of the GNU MPFR Library.
6 The GNU MPFR Library is free software; you can redistribute it and/or modify
7 it under the terms of the GNU Lesser General Public License as published by
8 the Free Software Foundation; either version 3 of the License, or (at your
9 option) any later version.
11 The GNU MPFR Library is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
14 License for more details.
16 You should have received a copy of the GNU Lesser General Public License
17 along with the GNU MPFR Library; see the file COPYING.LESSER.  If not, see
18 http://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
19 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
23                         Installing GNU MPFR
24                         ===================
26 Note: In case of problem, please read this INSTALL file carefully before
27 reporting a bug, in particular Section "In case of problem" below. Some
28 problems are due to bad configuration on the user side (not specific to
29 MPFR).
31 0. You first need to install GMP. See <http://www.gnu.org/software/gmp/>.
32    MPFR requires GMP version 4.1 or later.
34 1. Extract the files from the archive.
36 2. It is strongly advised to apply the latest patches if this has
37    not been done yet and if patches are available. You can check
38    on the release page:
40      http://www.mpfr.org/mpfr-3.1.3/
42    which may have additional information. The patches can be applied
43    with commands like:
45      wget http://www.mpfr.org/mpfr-3.1.3/allpatches
46      patch -N -Z -p1 < allpatches
48    or
50      curl http://www.mpfr.org/mpfr-3.1.3/allpatches | patch -N -Z -p1
52    (Those instructions are for the GNU patch command, for example
53    /usr/bin/gpatch on Solaris.)
55 3. In the MPFR directory, to detect your system, type:
56      ./configure
57    possibly with options (see below, in particular if this step or
58    one of the following fails). You should also check whether WARNING
59    lines have been output (such a problem may cause a failure in one
60    of the following steps).
61    Note: paths provided in configure options must always be absolute
62    (relative paths are not supported).
64 4. To build the library, type:
65      make
67    [optional] if you want to tune MPFR for your specific architecture, see
68    the section "Tuning MPFR" below. Note that for most common architectures,
69    MPFR includes some default tuning parameters which should be near from
70    optimal.
72 5. To check the built library (runs the test files), type:
73      make check
75    Note: If any test fails, information about this failure can be found in
76    the tests/test-suite.log file; you should provide this file in your bug
77    reports (in addition to other useful information, as mentioned later).
78    If you want the contents of this file to be automatically output in case
79    of failure, you can set the VERBOSE environment variable to 1 before
80    running "make check", for instance by typing:
81      VERBOSE=1 make check
83 6. To install it (default "/usr/local" | see "--prefix" option), type:
84      make install
86 If you installed MPFR (header and library) in directories that are
87 not searched by default by the compiler and/or linking tools, then,
88 like with other libraries, you may need to set up some environment
89 variables such as C_INCLUDE_PATH (to find the header mpfr.h),
90 LIBRARY_PATH (to find the library), and if the shared library has
91 been installed, LD_LIBRARY_PATH (before execution) or LD_RUN_PATH
92 (before linking); this list is not exhaustive and some environment
93 variables may be specific to your system. "make install" gives some
94 instructions; please read them. You can also find more information
95 in the manuals of your compiler and linker. The MPFR FAQ may also
96 give some information.
98 Remember that if you have several MPFR (or GMP) versions installed
99 (e.g., one with the system, and one, newer, by you), you will not
100 necessarily get a compilation/linking error if a wrong library is
101 used (e.g., because LD_LIBRARY_PATH has not been set correctly).
102 But unexpected results may occur.
104 Under Mac OS X, if the shared library was not installed and you use
105 Apple's linker (this is the default), you will also need to provide
106 the -search_paths_first linker flag ("-Wl,-search_paths_first" when
107 you link via gcc) to make sure that the right library is selected,
108 as by default, Apple's linker selects a shared library preferably,
109 even when it is farther in the library paths. We recall that if a
110 wrong library is selected due to this behavior, unexpected results
111 may occur.
114 Building the documentation
115 ==========================
117 To build the documentation in various formats, you may first need to
118 install recent versions of some utilities such as texinfo.
120 * Type "make info" to produce the documentation in the info format.
122 * Type "make pdf" to produce the documentation in the PDF format.
124 * Type "make dvi" to produce the documentation in the DVI format.
126 * Type "make ps" to produce the documentation in the Postscript format.
128 * Type "make html" to produce the documentation in the HTML format
129   (in several pages); if you want only one output HTML file, then
130   type "makeinfo --html --no-split mpfr.texi" from the doc directory
131   instead.
134 Building MPFR with internal GMP header files
135 ============================================
137 MPFR built with internal GMP header files is a bit faster, so you may want
138 to build it with them. Just do this in step 1:
140   ./configure --with-gmp-build=GMPBUILD
142 where GMPBUILD is the GMP build directory. The needed header files are:
143 gmp-impl.h, longlong.h and all the necessary headers to use them, which
144 may be located either in the GMP source directory or in the GMP build
145 directory, in case they are different (MPFR takes care of that, as of
146 MPFR 3.1.0).
148 Warning: the library obtained in this way may use some internal GMP
149 symbols, and thus dynamically linking your software with a different
150 version of GMP might fail, even though it is declared as compatible
151 by Libtool's versioning system.
154 Tuning MPFR
155 ===========
157 For this, you need to build MPFR with a GMP build directory (see above).
158 In the GMP build directory, you also need to go into the "tune" subdirectory
159 and type "make speed". This will build the GMP speed library, which is used
160 by the MPFR tuning mechanism.
162 Then go back to the MPFR build directory, go into the "tune" subdirectory and
163 type "make tune". This will build an optimized file "mparam.h" for your
164 specific architecture.
167 ./configure options
168 ===================
170 --prefix=DIR            installs MPFR headers and library in DIR/include and
171                         DIR/lib respectively (the default is "/usr/local").
173 --with-gmp-include=DIR  assumes that DIR contains gmp.h
174 --with-gmp-lib=DIR      assumes that DIR contains the GMP library
175 --with-gmp=DIR          assumes that DIR is where you have installed GMP.
176                         same as --with-gmp-lib=DIR/lib
177                         and     --with-gmp-include=DIR/include
178                         (use either --with-gmp alone or one or both of
179                         --with-gmp-lib/--with-gmp-include)
180                         Warning! Do not use these options if you have
181                         CPPFLAGS and/or LDFLAGS containing a -I or -L
182                         option with a directory that contains a GMP
183                         header or library file, as these options just
184                         add -I and -L options to CPPFLAGS and LDFLAGS
185                         *after* the ones that are currently declared,
186                         so that DIR will have a lower precedence. Also,
187                         this may not work if DIR is a system directory
188                         (typically /usr or /usr/local); see below.
190 --with-gmp-build=DIR    assumes that DIR contains the GMP build directory,
191                         and enables the use of GMP internals (see above).
192                         Warning! This option and the group of options
193                         --with-gmp are mutually exclusive.
195 --enable-assert         build MPFR with assertions.
197 --enable-thread-safe    build MPFR as thread safe, using compiler-level
198                         Thread Local Storage (TLS). Note: TLS support is
199                         roughly tested by configure. If configure detects
200                         that TLS does not work (because of the compiler,
201                         linker or system libraries), it will output an
202                         error message, telling you to build MPFR without
203                         thread safe. For instance, though Mac OS X uses
204                         GCC, it may not currently support GCC's __thread
205                         storage class.
207 --disable-thread-safe   build MPFR without TLS. By default, TLS support
208                         is detected automatically, and MPFR is built as
209                         thread safe if supported. However this detection
210                         is only a heuristic: TLS can be detected as
211                         supported while its support is incomplete or
212                         buggy (MPFR tests may fail). In such a case,
213                         this option is useful.
215 --enable-gmp-internals  allows the MPFR build to use GMP's undocumented
216                         functions (not from the public API). Note that
217                         library versioning is not guaranteed to work if
218                         this option is used. Thus it must not be used in
219                         binary distributions.
221 Note: By default, the configure script tries to set CC/CFLAGS to GMP's
222 ones (this feature needs GMP 4.3.0 or later, or the --with-gmp-build
223 option). However this is not guaranteed to work as the configure script
224 does some compiler tests earlier, and the change may be too late. Also,
225 the values obtained from GMP may be incorrect if GMP has been built
226 on a different machine. In such a case, the user may need to specify
227 CC/CFLAGS as explained below.
229 Run "./configure --help" to see the other options (autoconf default options).
232 If 'gmp.h' and 'libgmp' do not match
233 ====================================
235 Under some circumstances, the configure script may output a message
236 saying:
238   'gmp.h' and 'libgmp' seem to have different versions or
239   we cannot run a program linked with GMP (if you cannot
240   see the version numbers above). [...]
242 Even though the configure script does not fail in such a case, this
243 message most often indicates a real error, which needs to be avoided.
244 Possible causes are:
246 * The wanted GMP library does not have the same ABI as the one chosen
247   to build MPFR. The consequences may be:
249     - A different GMP library (with the correct ABI) has been found,
250       but does not have the same version as 'gmp.h'.
252     - No other GMP libraries have been found (in this case, no version
253       numbers should be printed above the warning message).
255   This is incorrect and one of the following steps (make, make check)
256   will probably fail. GMP (actually gmp.h) now provides CC and CFLAGS
257   information to select the correct ABI, so that this problem should
258   no longer occur; but if GMP was provided by a binary package, such
259   information may not be valid. See the
261     checking for CC and CFLAGS in gmp.h...
263   line in the configure output (about the 11th line) and the following
264   few ones for more information. You may need to reinstall GMP or to
265   provide your own CC and/or CFLAGS. See also the remaining of this
266   INSTALL file.
268 * A configure option like --with-gmp or --with-gmp-include was used
269   with a system include directory, e.g. one of the following:
271     --with-gmp=/usr
272     --with-gmp=/usr/local
273     --with-gmp-include=/usr/include
274     --with-gmp-include=/usr/local/include
276   GCC (and possibly other compilers) will ignore such a directive for
277   include directories (but this rule is not applied for the library
278   itself!). This means that the library search paths will be reordered
279   as declared, but the specified include directory will still be near
280   the end of the include search paths (thus with a low precedence).
281   This is not a problem if only one GMP version is installed, but
282   otherwise, a wrong gmp.h may be chosen, so that the versions of
283   gmp.h and libgmp may not match. The suggestions are the following:
285     - If you want to use the GMP version under /usr, then you should
286       uninstall all the other GMP versions (header and library files)
287       that may be seen in the search paths, in particular those under
288       /usr/local.
290     - If you want to use the GMP version under /usr/local, then you
291       should uninstall all the other GMP versions (header and library
292       files) that may be seen in the search paths, but *NOT* the one
293       under /usr (the version under /usr is provided by the OS vendor,
294       and changing/removing anything related to it may break your
295       system, and /usr should have a lower precedence than /usr/local
296       anyway).
298   To find where GMP versions have been installed:
300     $ locate libgmp  (if you have a locate database)
302   and if the compiler is GCC:
304     $ gcc -print-file-name=libgmp.so     (under most systems)
305     $ gcc -print-file-name=libgmp.dylib  (under Mac OS X)
307   and if this does not work, you may try:
309     $ gcc -print-search-dirs
311 * An official GCC version was used under Debian GNU/Linux. Problems
312   may come from the fact that Debian chose a different convention
313   for library search paths concerning 32-bit and 64-bit libraries.
314   A possible problem can be, for instance:
316   [Debian's GCC, correct library path]
317   $ gcc -print-file-name=libgmp.so
318   /home/vlefevre/gmp/athlon64/lib/../lib/libgmp.so
320   [Official GCC, incorrect library path]
321   $ gcc-4.3.1 -print-file-name=libgmp.so
322   /usr/lib/../lib64/libgmp.so
324   The solution: use a GCC provided by Debian or add symbolic links
325   such as lib64 -> lib (on 64-bit machines) for your library paths.
327 * The problem may also be temporary and only due to the fact that
328   libtool could not be used at this time. This is unlikely, though.
331 In case of problem
332 ==================
334 First, look for any warning message in the configure output.
336 Several documents may help you to solve the problem:
337   * this INSTALL file, in particular information given below;
338   * the FAQ (either the FAQ.html file distributed with MPFR, or the
339     on-line version <http://www.mpfr.org/faq.html>, which may be more
340     up-to-date);
341   * the MPFR web page for this version <http://www.mpfr.org/mpfr-3.1.3/>,
342     which lists bugs found in this version and provides some patches.
344 If the "configure" fails, please check that the C compiler and its
345 options are the same as those for the GMP build (specially the ABI).
346 You can see the latter with the following command:
348   grep "^CC\|^CFLAGS" GMPBUILD/Makefile
350 if the GMP build directory is available. Then type:
352   ./configure <configure options> CC=<C compiler> CFLAGS="<compiler options>"
354 (quotes are needed when there are spaces or other special characters
355 in the CC/CFLAGS value) and continue the install. On some platforms,
356 you should provide further options to match those used by GMP, or set
357 some environment variables. For instance, see the "Notes on AIX/PowerPC"
358 section below.
360 Warning! Do NOT use optimization options that can change the semantics
361 of math operations, such as GCC's -ffast-math or Sun CC's -fast.
362 Otherwise conversions from/to double's may be incorrect on infinities,
363 NaN's and signed zeros. Since native FP arithmetic is used in a few
364 places only, such options would not make MPFR faster anyway.
366 If some "make check" tests fail, you can try the --disable-thread-safe
367 configure option (see the configure options above): it has been reported
368 that some platforms have buggy TLS support. Before trying this option,
369 you may want to check in the configure output whether MPFR was built
370 with TLS support; if yes, you will have a line:
371   checking for TLS support... yes
372 Alternatively "grep MPFR_USE_THREAD_SAFE config.log" will show that
373 MPFR_USE_THREAD_SAFE is defined to 1. If it is "no" (or the variable
374 is not defined), the --disable-thread-safe option would be useless.
376 Some tests failure may be due to other compiler bugs, in particular
377 in optimization code. You can try to build MPFR without compiler
378 optimizations by giving -O0 (letter O, digit 0) in CFLAGS. If the
379 MPFR tests no longer fail, this was probably due to a compiler bug,
380 though we cannot exclude a bug in MPFR. You may want to contact us
381 (see below), possibly after looking at:
382   http://www.loria.fr/~zimmerma/software/compilerbugs.html
384 On some platforms, try with "gmake" (GNU make) instead of "make".
385 Problems have been reported with the Tru64 make.
387 If the configure script reports that gmp.h version and libgmp version
388 are different, or if the build was OK, but the tests failed to link
389 with GMP or gave an error like
391   undefined reference to `__gmp_get_memory_functions'
393 meaning that the GMP library was not found or a wrong GMP library was
394 selected by the linker, then your library search paths are probably
395 not correctly set (some paths are missing or they are specified in an
396 incorrect order).
398 Such problems commonly occur under some GNU/Linux machines, where the
399 default header and library search paths may be inconsistent: GCC is
400 configured to search /usr/local/include and /usr/local/lib by default,
401 while the dynamic linker ignores /usr/local/lib. If you have a GMP
402 version installed in /usr (provided by the OS vendor) and a new one
403 installed in /usr/local, then the header of the new GMP version and
404 the library of the old GMP version will be used! The best solution
405 is to make sure that the dynamic linker configuration is consistent
406 with GCC's behavior, for instance by having /usr/local/lib in
407 /etc/ld.so.conf or in some file from /etc/ld.so.conf.d (as Debian
408 did: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=395177). See
409 also https://gcc.gnu.org/ml/gcc-help/2010-01/msg00171.html for more
410 information. Alternatively you can use:
411   * environment variables. This may sometimes be necessary. If DIR
412     is the installation directory of GMP, add DIR/include to your
413     CPATH or C_INCLUDE_PATH (for compilers other than GCC, please
414     check the manual of your compiler), and add DIR/lib to your
415     LIBRARY_PATH and LD_LIBRARY_PATH (and/or LD_RUN_PATH);
416   * --with-gmp* configure options (described above), e.g.
417     --with-gmp=/opt/local (to use /opt/local/include for headers and
418     /opt/local/lib for libraries), but other software that uses GMP
419     and/or MPFR will need correct paths too, and environment variables
420     allow one to set such search paths in a global way.
421     Note about "--with-gmp=/usr/local". This option may appear to
422     solve the above inconsistency problem, but does not work as you
423     expect. Indeed it affects the library search path, in particular,
424     the one used by the dynamic linker (thus adding the missing
425     /usr/local/lib directory as wanted), but since /usr/local/include
426     is a "standard system include directory" for GCC, the include
427     search patch is not changed; this is often not a problem in this
428     particular case because usually, /usr/local/include is already
429     last in the include search patch, but this may fail under some
430     occasions and may trigger obscure errors.
432 For instance, under Unix, where paths are separated by a colon:
434   * With POSIX sh-compatible shells (e.g. sh, ksh, bash, zsh):
435     export C_INCLUDE_PATH="/usr/local/include:/other/path/include"
436     export LIBRARY_PATH="/usr/local/lib:/other/path/lib"
437     export LD_LIBRARY_PATH="$LIBRARY_PATH"
439   * With csh or tcsh:
440     setenv C_INCLUDE_PATH "/usr/local/include:/other/path/include"
441     setenv LIBRARY_PATH "/usr/local/lib:/other/path/lib"
442     setenv LD_LIBRARY_PATH "$LIBRARY_PATH"
444 If you can't solve your problem, you should contact us via the MPFR
445 mailing-list <mpfr@inria.fr>, indicating the machine and operating system
446 used (uname -a), the compiler and version used (gcc -v if you use gcc),
447 the configure options used if any (including variables such as CC and
448 CFLAGS), the version of GMP and MPFR used, and a description of the
449 problem encountered, in particular the tests/test-suite.log file if
450 "make check" failed. Please send us also the log of the "configure"
451 (config.log).
453 Note that even if you can build MPFR with a C++ compiler, you can't run
454 the test suite: C and C++ are not the same language! You should use a C
455 compiler instead.
458 Notes about ABI
459 ===============
461 On 64-bit computers, it may happen that the default ABI (Application Binary
462 Interface) chosen by MPFR does not correspond to the default one chosen by
463 the compiler.
465 In particular, this kind of message may indicate the problem:
466 /usr/bin/ld: skipping incompatible mpfr/src/.libs/libmpfr.a when searching for -lmpfr
468 In fact, since MPFR relies on GMP, it uses the same ABI as GMP.
469 To be sure that your program compiles and links correctly, use the same
470 compiler flags as MPFR does (look for CFLAGS in config.log).
472 You might also recompile GMP with a different ABI, with for example
473 ./configure ABI=32.
476 Notes on Mac OS X
477 =================
479 If you get an error of the form
481   ld: pointer in read-only segment not allowed in slidable image...
483 this can mean that the link is done against a static (GMP) library.
484 In such a case, you should configure MPFR with --disable-shared to
485 disable the build of the shared library.
488 Notes on FreeBSD 4.3
489 ====================
491 FreeBSD 4.3 is provided with an incorrect <float.h> header file, and
492 MPFR tests related to long double's may fail. If you cannot upgrade
493 the system, you can still use MPFR with FreeBSD 4.3, but you should
494 not use conversions with the long double type.
497 Notes on AIX/PowerPC
498 ====================
500 The following has been tested on AIX 5.3 (powerpc-ibm-aix5.3.0.0) with
501 gcc 3.3.2 and GMP 4.2.1.
503 If GMP was built with the 64-bit ABI, before building and testing MPFR,
504 you should set the OBJECT_MODE environment variable to 64, e.g., with:
506   export OBJECT_MODE=64
508 (in a sh-compatible shell). But you should also provide a correct CFLAGS
509 value to the "configure" script: using --with-gmp-build is not sufficient
510 due to the early compiler tests, as gcc will not compile any program if
511 OBJECT_MODE is 64 and the -maix64 option is not provided.
514 MPFR for use with 32-bit Windows Applications (win32)
515 =====================================================
517 There are several ways of building MPFR on Windows, the most appropriate
518 approach depending on how you intend to use the resulting libraries.
520 a. Using MinGW
521 ==============
523 1 - We advise to use MinGW (http://www.mingw.org/), which is simpler and
524     less demanding than Cygwin. Contrary to Cygwin, it also provides native
525     Windows code.
527 2 - If you just want to make a binary with gcc, there is nothing to do:
528     GMP, MPFR and the program compile exactly as under Linux.
529     But if you want to generate a library for MinGW from a Cygwin
530     environment, you may need the -mno-cygwin gcc option (otherwise
531     a typical error is _P_WAIT being undeclared).
533 3 - If you want to make libraries work under another Windows compiler
534     like Visual C / C++, since the unix-like *.a library files are compatible
535     with Windows *.lib files, you can simply rename all *.a libraries to *.lib.
537     With gmp-4.1.3, the only remaining problem seems to be the "alloca" calls
538     in GMP. Configuring GMP and MPFR with --enable-alloca=malloc-reentrant
539     should work (if you build MPFR with GMP internal files).
541     Or you could add the library
542      "$MINGWIN$/lib/gcc-lib/mingw32/$VERSION$/libgcc.a"
543     to your project: it contains all the extra-functions needed by a program
544     compiled by gcc (division of 64-bit integer, bcopy, alloca...).
545     Of course, include it if and only if your compiler is not gcc.
547 4 - On Windows32 / MinGW, if all the tests fail, try to run the test suite
548     with "make check EXEEXT=".
550 5 - To avoid using the Microsoft runtime (which might not be conform to ISO C),
551     you can use the MinGW runtime package (which is an integral part of MinGW).
552     For example, with MinGW versions 3.15 and later you can get an
553     ISO-compliant printf() if you compile your application with either
554     '-ansi', '-posix' or '-D__USE_MINGW_ANSI_STDIO'. For example, you can
555     compile and test MPFR with CC="gcc -D__USE_MINGW_ANSI_STDIO".
557     For example under Win32, the following problem has been experienced with
558     MPFR 2.4.0 RC1 and the MSVC runtime (msvcrt.dll):
560        Error in mpfr_vsprintf (s, "%.*Zi, %R*e, %Lf%n", ...);
561        expected: "00000010610209857723, -1.2345678875e+07, 0.032258"
562        got:      "00000010610209857723, -1.2345678875e+07, -0.000000"
563        FAIL: tsprintf.exe
565     This error is due to the MSVC runtime not supporting the L length modifier
566     for formatted output (e.g. printf with %Lf). You can check this with the
567     following program:
569        #include <stdio.h>
570        int main (void)
571        {
572          long double d = 1. / 31.;
573          printf ("%Lf\n", d);
574          return 0;
575        }
577     The expected output is 0.032258.
579     Note: The L modifier has been standard for a long time (it was added
580     in ISO C89).
582     Note 2: this now works correctly with Visual C++ 2008 and 2010
583     (tested on Microsoft (R) 32-bit C/C++ Optimizing Compiler Version
584      15.00.21022.08 for 80x86, Microsoft (R) C/C++ Optimizing Compiler
585      Version 15.00.21022.08 for x64, Microsoft (R) 32-bit C/C++ Optimizing
586      Compiler Version 16.00.30319.01 for 80x86, Microsoft (R) C/C++ Optimizing
587      Compiler Version 16.00.30319.01 for x64).
589 b. Using Cygwin
590 ===============
592 This build should be similar to that for MinGW except that the resulting
593 library depends on the Cygwin DLL and cannot therefore be used with
594 Visual Studio as with MinGW. Indeed, the binaries compiled with Cygwin
595 require a dynamic library (cygwin.dll) to work; there is a Cygwin option
596 -mno-cygwin to build native code, but it may require some non-portable tricks.
598 In case of failure, you may need to pass LDFLAGS='-shared-libgcc' at the
599 end of the configure line due to a bug in GCC. Otherwise, if threading
600 support is not needed, you can configure MPFR with --disable-thread-safe.
602 c. Using Visual C++ 2008/2010
603 =============================
605 Win32 versions of the MPFR library can be built using Microsoft Visual
606 C++ 2008 or 2010 using the build projects available here:
608 http://gladman.plushost.co.uk/oldsite/computing/gmp4win.php
610 These build projects contain both win32 and x64 builds but the latter
611 will give errors if your version of Visual C++ lacks the 64-bit
612 compiler and tools.   The 32-bit build projects should however work
613 on Visual C++ 2008, Visual C++ Express 2008 (SP1), Visual C++ 2010
614 and Visual C++ Express 2010.
616 MPFR for use with 64-bit Windows Applications (x64)
617 ===================================================
619 There are two ways of building MPFR for use with 64-bit Windows
620 applications.
622 a. Using MinGW64
623 ================
625 The MinGW64 version of the GCC compiler is now available here:
627 https://sourceforge.net/projects/mingw-w64/
629 It can build both GMP and MPFR for 64-bit Windows applications.
631 b. Using Visual C++ 2008/2010
632 =============================
634 x64 versions of the MPFR library can be built using Microsoft Visual
635 C++ 2008 or 2010 using the build projects available here:
637 http://gladman.plushost.co.uk/oldsite/computing/gmp4win.php
639 These build projects contain both win32 and x64 builds but the latter
640 can only be built if your version of Visual C++ contains the 64-bit
641 compiler and tools.  On Visual C++ 2008, the 64-bit tools are an
642 option during installation so if you don't have them you will need
643 to start the Visual Studio installer and add them to your IDE
644 configuration.  On Visual C++ 2010 they are installed by default.
646 As delivered, Visual C++ Express 2008 SP1 cannot build x64 projects
647 but the Windows SDK can be added to it to allow this. The IDE then
648 needs to be configured as described here:
650 http://msdn.microsoft.com/en-us/library/9yb4317s(VS.80).aspx
652 to allow x64 builds.
654 Visual C++ Express 2010 requires the Windows 7 SDK to be installed
655 in order to build x64 projects. This SDK is available here:
657 http://tinyurl.com/25zz8r6
659 In this case, once this SDK has been installed, Visual C++ Express 2010
660 will build x64 projects without further changes.