| 4 | | = Instructions for building under Windows = |
| 5 | | This section gives detailed instructions for how to build |
| 6 | | GHC from source on your Windows machine. Similar instructions for |
| 7 | | installing and running GHC may be found in the user guide. In general, |
| 8 | | Win95/Win98 behave the same, and WinNT/Win2k behave the same. |
| 9 | | |
| 10 | | Make sure you read the preceding section on [wiki:Building/PlatformsScriptsFileNames platforms] |
| 11 | | before reading section. |
| 12 | | You don't need Cygwin or MSYS to ''use'' GHC, |
| 13 | | but you do need one or the other to ''build'' GHC. |
| 14 | | |
| 15 | | == Summary == |
| 16 | | |
| 17 | | 1. [wiki:Building/Prerequisites#PreparingaWindowssystem Get the tools you need for development] |
| 18 | | 2. Get the [wiki:Building/GettingTheSources GHC sources] |
| 19 | | 3. [wiki:Building/Windows/SSH Configure SSH] (if you need it) |
| 20 | | 4. [wiki:Building/Windows#BuildingGHC Do the build] |
| 21 | | |
| 22 | | == Building GHC == |
| 23 | | |
| 24 | | OK! |
| 25 | | Now go read the documentation above on building from source ([wiki:Building/QuickStart Quick start: just building and installing GHC]); |
| 26 | | the bullets below only tell |
| 27 | | you about Windows-specific wrinkles. Also look in the section that immediately follows |
| 28 | | this one for typical failure cases and what do to about them. |
| 29 | | |
| 30 | | * After {{{sh boot}}} run {{{./configure}}} in |
| 31 | | {{{$(TOP)/}}} thus: |
| 32 | | {{{ |
| 33 | | $ ./configure --host=i386-unknown-mingw32 |
| 34 | | --with-gcc=c:/mingw/bin/gcc |
| 35 | | --with-ld=c:/mingw/bin/ld.exe |
| 36 | | }}} |
| 37 | | This is the point at which you specify that you are building GHC-mingw |
| 38 | | (see [wiki:Building/PlatformsScriptsFileNames#MinGW MinGW]). |
| 39 | | [[br]] |
| 40 | | Both these options are important! It's possible to get into |
| 41 | | trouble using the wrong C compiler! |
| 42 | | [[br]] |
| 43 | | |
| 44 | | * You almost certainly want to set |
| 45 | | {{{ |
| 46 | | SplitObjs = NO |
| 47 | | }}} |
| 48 | | in your {{{build.mk}}} configuration file (see [wiki:Building/Using#Gettingthebuildyouwant Getting the build you want]). |
| 49 | | This tells the build system not to split each library into a myriad of little object files, one |
| 50 | | for each function. Doing so reduces binary sizes for statically-linked binaries, but on Windows |
| 51 | | it dramatically increases the time taken to build the libraries in the first place. |
| | 3 | If you're looking for instructions for building GHC on Windows, they are now incorporated in the main [wiki:Building Building Guide]. |