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