| cannam@95 | 1 <html lang="en"> | 
| cannam@95 | 2 <head> | 
| cannam@95 | 3 <title>Installation on non-Unix systems - FFTW 3.3.3</title> | 
| cannam@95 | 4 <meta http-equiv="Content-Type" content="text/html"> | 
| cannam@95 | 5 <meta name="description" content="FFTW 3.3.3"> | 
| cannam@95 | 6 <meta name="generator" content="makeinfo 4.13"> | 
| cannam@95 | 7 <link title="Top" rel="start" href="index.html#Top"> | 
| cannam@95 | 8 <link rel="up" href="Installation-and-Customization.html#Installation-and-Customization" title="Installation and Customization"> | 
| cannam@95 | 9 <link rel="prev" href="Installation-on-Unix.html#Installation-on-Unix" title="Installation on Unix"> | 
| cannam@95 | 10 <link rel="next" href="Cycle-Counters.html#Cycle-Counters" title="Cycle Counters"> | 
| cannam@95 | 11 <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage"> | 
| cannam@95 | 12 <!-- | 
| cannam@95 | 13 This manual is for FFTW | 
| cannam@95 | 14 (version 3.3.3, 25 November 2012). | 
| cannam@95 | 15 | 
| cannam@95 | 16 Copyright (C) 2003 Matteo Frigo. | 
| cannam@95 | 17 | 
| cannam@95 | 18 Copyright (C) 2003 Massachusetts Institute of Technology. | 
| cannam@95 | 19 | 
| cannam@95 | 20      Permission is granted to make and distribute verbatim copies of | 
| cannam@95 | 21      this manual provided the copyright notice and this permission | 
| cannam@95 | 22      notice are preserved on all copies. | 
| cannam@95 | 23 | 
| cannam@95 | 24      Permission is granted to copy and distribute modified versions of | 
| cannam@95 | 25      this manual under the conditions for verbatim copying, provided | 
| cannam@95 | 26      that the entire resulting derived work is distributed under the | 
| cannam@95 | 27      terms of a permission notice identical to this one. | 
| cannam@95 | 28 | 
| cannam@95 | 29      Permission is granted to copy and distribute translations of this | 
| cannam@95 | 30      manual into another language, under the above conditions for | 
| cannam@95 | 31      modified versions, except that this permission notice may be | 
| cannam@95 | 32      stated in a translation approved by the Free Software Foundation. | 
| cannam@95 | 33    --> | 
| cannam@95 | 34 <meta http-equiv="Content-Style-Type" content="text/css"> | 
| cannam@95 | 35 <style type="text/css"><!-- | 
| cannam@95 | 36   pre.display { font-family:inherit } | 
| cannam@95 | 37   pre.format  { font-family:inherit } | 
| cannam@95 | 38   pre.smalldisplay { font-family:inherit; font-size:smaller } | 
| cannam@95 | 39   pre.smallformat  { font-family:inherit; font-size:smaller } | 
| cannam@95 | 40   pre.smallexample { font-size:smaller } | 
| cannam@95 | 41   pre.smalllisp    { font-size:smaller } | 
| cannam@95 | 42   span.sc    { font-variant:small-caps } | 
| cannam@95 | 43   span.roman { font-family:serif; font-weight:normal; } | 
| cannam@95 | 44   span.sansserif { font-family:sans-serif; font-weight:normal; } | 
| cannam@95 | 45 --></style> | 
| cannam@95 | 46 </head> | 
| cannam@95 | 47 <body> | 
| cannam@95 | 48 <div class="node"> | 
| cannam@95 | 49 <a name="Installation-on-non-Unix-systems"></a> | 
| cannam@95 | 50 <a name="Installation-on-non_002dUnix-systems"></a> | 
| cannam@95 | 51 <p> | 
| cannam@95 | 52 Next: <a rel="next" accesskey="n" href="Cycle-Counters.html#Cycle-Counters">Cycle Counters</a>, | 
| cannam@95 | 53 Previous: <a rel="previous" accesskey="p" href="Installation-on-Unix.html#Installation-on-Unix">Installation on Unix</a>, | 
| cannam@95 | 54 Up: <a rel="up" accesskey="u" href="Installation-and-Customization.html#Installation-and-Customization">Installation and Customization</a> | 
| cannam@95 | 55 <hr> | 
| cannam@95 | 56 </div> | 
| cannam@95 | 57 | 
| cannam@95 | 58 <h3 class="section">10.2 Installation on non-Unix systems</h3> | 
| cannam@95 | 59 | 
| cannam@95 | 60 <p>It should be relatively straightforward to compile FFTW even on non-Unix | 
| cannam@95 | 61 systems lacking the niceties of a <code>configure</code> script.  Basically, | 
| cannam@95 | 62 you need to edit the <code>config.h</code> header (copy it from | 
| cannam@95 | 63 <code>config.h.in</code>) to <code>#define</code> the various options and compiler | 
| cannam@95 | 64 characteristics, and then compile all the ‘<samp><span class="samp">.c</span></samp>’ files in the | 
| cannam@95 | 65 relevant directories. | 
| cannam@95 | 66 | 
| cannam@95 | 67    <p>The <code>config.h</code> header contains about 100 options to set, each one | 
| cannam@95 | 68 initially an <code>#undef</code>, each documented with a comment, and most of | 
| cannam@95 | 69 them fairly obvious.  For most of the options, you should simply | 
| cannam@95 | 70 <code>#define</code> them to <code>1</code> if they are applicable, although a few | 
| cannam@95 | 71 options require a particular value (e.g. <code>SIZEOF_LONG_LONG</code> should | 
| cannam@95 | 72 be defined to the size of the <code>long long</code> type, in bytes, or zero | 
| cannam@95 | 73 if it is not supported).  We will likely post some sample | 
| cannam@95 | 74 <code>config.h</code> files for various operating systems and compilers for | 
| cannam@95 | 75 you to use (at least as a starting point).  Please let us know if you | 
| cannam@95 | 76 have to hand-create a configuration file (and/or a pre-compiled binary) | 
| cannam@95 | 77 that you want to share. | 
| cannam@95 | 78 | 
| cannam@95 | 79    <p>To create the FFTW library, you will then need to compile all of the | 
| cannam@95 | 80 ‘<samp><span class="samp">.c</span></samp>’ files in the <code>kernel</code>, <code>dft</code>, <code>dft/scalar</code>, | 
| cannam@95 | 81 <code>dft/scalar/codelets</code>, <code>rdft</code>, <code>rdft/scalar</code>, | 
| cannam@95 | 82 <code>rdft/scalar/r2cf</code>, <code>rdft/scalar/r2cb</code>, | 
| cannam@95 | 83 <code>rdft/scalar/r2r</code>, <code>reodft</code>, and <code>api</code> directories. | 
| cannam@95 | 84 If you are compiling with SIMD support (e.g. you defined | 
| cannam@95 | 85 <code>HAVE_SSE2</code> in <code>config.h</code>), then you also need to compile | 
| cannam@95 | 86 the <code>.c</code> files in the <code>simd-support</code>, | 
| cannam@95 | 87 <code>{dft,rdft}/simd</code>, <code>{dft,rdft}/simd/*</code> directories. | 
| cannam@95 | 88 | 
| cannam@95 | 89    <p>Once these files are all compiled, link them into a library, or a shared | 
| cannam@95 | 90 library, or directly into your program. | 
| cannam@95 | 91 | 
| cannam@95 | 92    <p>To compile the FFTW test program, additionally compile the code in the | 
| cannam@95 | 93 <code>libbench2/</code> directory, and link it into a library.  Then compile | 
| cannam@95 | 94 the code in the <code>tests/</code> directory and link it to the | 
| cannam@95 | 95 <code>libbench2</code> and FFTW libraries.  To compile the <code>fftw-wisdom</code> | 
| cannam@95 | 96 (command-line) tool (see <a href="Wisdom-Utilities.html#Wisdom-Utilities">Wisdom Utilities</a>), compile | 
| cannam@95 | 97 <code>tools/fftw-wisdom.c</code> and link it to the <code>libbench2</code> and FFTW | 
| cannam@95 | 98 libraries | 
| cannam@95 | 99 | 
| cannam@95 | 100 <!--  --> | 
| cannam@95 | 101    </body></html> | 
| cannam@95 | 102 |