GNU Info

Info Node: (fftw.info)Installation on Unix

(fftw.info)Installation on Unix


Next: Installation on non-Unix Systems Prev: Installation and Customization Up: Installation and Customization
Enter node , (file) or (file)node

Installation on Unix
====================

   FFTW comes with a `configure' program in the GNU style.
Installation can be as simple as:

     ./configure
     make
     make install

   This will build the uniprocessor complex and real transform libraries
along with the test programs.  We strongly recommend that you use GNU
`make' if it is available; on some systems it is called `gmake'.  The
"`make install'" command installs the fftw and rfftw libraries in
standard places, and typically requires root privileges (unless you
specify a different install directory with the `--prefix' flag to
`configure').  You can also type "`make check'" to put the FFTW test
programs through their paces.  If you have problems during
configuration or compilation, you may want to run "`make distclean'"
before trying again; this ensures that you don't have any stale files
left over from previous compilation attempts.

   The `configure' script knows good `CFLAGS' (C compiler flags) for a
few systems.  If your system is not known, the `configure' script will
print out a warning.  (1)  In this case, you can compile FFTW with the
command
     make CFLAGS="<write your CFLAGS here>"
   If you do find an optimal set of `CFLAGS' for your system, please
let us know what they are (along with the output of `config.guess') so
that we can include them in future releases.

   The `configure' program supports all the standard flags defined by
the GNU Coding Standards; see the `INSTALL' file in FFTW or
the GNU web page (http://www.gnu.org/prep/standards_toc.html).  Note
especially `--help' to list all flags and `--enable-shared' to create
shared, rather than static, libraries.  `configure' also accepts a few
FFTW-specific flags, particularly:

   * `--enable-float' Produces a single-precision version of FFTW
     (`float') instead of the default double-precision (`double').
     Note: Installing FFTW in both single and double precision.

   * `--enable-type-prefix' Adds a `d' or `s' prefix to all installed
     libraries and header files to indicate the floating-point
     precision.  Note: Installing FFTW in both single and double
     precision.  (`--enable-type-prefix=<prefix>' lets you add an
     arbitrary prefix.)  By default, no prefix is used.

   * `--enable-threads' Enables compilation and installation of the FFTW
     threads library (Note: Multi-threaded FFTW.), which provides a
     simple interface to parallel transforms for SMP systems.  (By
     default, the threads routines are not compiled.)

   * `--enable-mpi' Enables compilation and installation of the FFTW MPI
     library (Note: MPI FFTW.), which provides parallel transforms for
     distributed-memory systems with MPI.  (By default, the MPI
     routines are not compiled.)

   * `--disable-fortran' Disables inclusion of Fortran-callable wrapper
     routines (Note: Calling FFTW from Fortran.) in the standard FFTW
     libraries.  These wrapper routines increase the library size by
     only a negligible amount, so they are included by default as long
     as the `configure' script finds a Fortran compiler on your system.

   * `--with-gcc' Enables the use of `gcc'.  By default, FFTW uses the
     vendor-supplied `cc' compiler if present.  Unfortunately, `gcc'
     produces slower code than `cc' on many systems.

   * `--enable-i386-hacks'  Note: gcc and Pentium hacks, below.

   * `--enable-pentium-timer'  Note: gcc and Pentium hacks, below.

   To force `configure' to use a particular C compiler (instead of the
default, usually `cc'), set the environment variable `CC' to the name
of the desired compiler before running `configure'; you may also need
to set the flags via the variable `CFLAGS'.

   ---------- Footnotes ----------

   (1) Each version of `cc' seems to have its own magic incantation to
get the fastest code most of the time--you'd think that people would
have agreed upon some convention, e.g. "`-Omax'", by now.


automatically generated by info2www version 1.2.2.9