It should be relatively straightforward to compile FFTW even on non-Unix
systems lacking the niceties of a configure
script. Basically,
you need to edit the config.h
header (copy it from
config.h.in
) to #define
the various options and compiler
characteristics, and then compile all the ‘.c’ files in the
relevant directories.
The config.h
header contains about 100 options to set, each one
initially an #undef
, each documented with a comment, and most of
them fairly obvious. For most of the options, you should simply
#define
them to 1
if they are applicable, although a few
options require a particular value (e.g. SIZEOF_LONG_LONG
should
be defined to the size of the long long
type, in bytes, or zero
if it is not supported). We will likely post some sample
config.h
files for various operating systems and compilers for
you to use (at least as a starting point). Please let us know if you
have to hand-create a configuration file (and/or a pre-compiled binary)
that you want to share.
To create the FFTW library, you will then need to compile all of the
‘.c’ files in the kernel
, dft
, dft/scalar
,
dft/scalar/codelets
, rdft
, rdft/scalar
,
rdft/scalar/r2cf
, rdft/scalar/r2cb
,
rdft/scalar/r2r
, reodft
, and api
directories.
If you are compiling with SIMD support (e.g. you defined
HAVE_SSE2
in config.h
), then you also need to compile
the .c
files in the simd-support
,
{dft,rdft}/simd
, {dft,rdft}/simd/*
directories.
Once these files are all compiled, link them into a library, or a shared library, or directly into your program.
To compile the FFTW test program, additionally compile the code in the
libbench2/
directory, and link it into a library. Then compile
the code in the tests/
directory and link it to the
libbench2
and FFTW libraries. To compile the fftw-wisdom
(command-line) tool (see Wisdom Utilities), compile
tools/fftw-wisdom.c
and link it to the libbench2
and FFTW
libraries