### 10.2 Installation on non-Unix systems ¶

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