Add docs for how to compile on Windows, with a list of complete instructions
authorNeil Mitchell <ndmitchell@gmail.com>
Thu, 3 Mar 2016 20:52:50 +0000 (20:52 +0000)
committerNeil Mitchell <ndmitchell@gmail.com>
Thu, 3 Mar 2016 20:52:50 +0000 (20:52 +0000)
doc/windows.md [new file with mode: 0644]

diff --git a/doc/windows.md b/doc/windows.md
new file mode 100644 (file)
index 0000000..2d823e7
--- /dev/null
@@ -0,0 +1,26 @@
+# Compiling on Windows\r
+\r
+Here are a list of instructions to compile GHC, from source, on Windows. I tested these instructions on a clean machine using the [free Windows 10 VirtualBox image](https://dev.windows.com/en-us/microsoft-edge/tools/vms/windows/) (I bumped the VM CPUs to 4, and RAM to 4096Mb). These instructions are not currently the official GHC building instructions, but might be simpler and more robust than those.\r
+\r
+The first step is to [install Stack](https://www.stackage.org/stack/windows-x86_64-installer) (I just accepted all the defaults), then open a command prompt and run:\r
+\r
+       stack setup\r
+       stack install happy alex\r
+       stack exec -- pacman -S gcc binutils git automake-wrapper tar make patch autoconf --noconfirm\r
+       stack exec -- git clone --recursive git://git.haskell.org/ghc.git\r
+       cd ghc\r
+       stack exec -- git clone git://github.com/snowleopard/shaking-up-ghc shake-build\r
+       stack build --stack-yaml=shake-build/stack.yaml --only-dependencies\r
+       stack exec -- perl boot\r
+       stack exec -- bash configure --enable-tarballs-autodownload\r
+       stack exec --stack-yaml=shake-build/stack.yaml -- shake-build/build.bat -j\r
+\r
+The entire process should take about an hour.\r
+\r
+#### Future ideas\r
+\r
+Here are some alternatives that have been considered, but not yet tested. Use the instructions above.\r
+\r
+* Use `shake-build/build.bat --setup` to replace `boot` and `configure`.\r
+* The `pacman` install of `gcc` is probably not necessary, but it does pull in a lot of tools, some of which probably are necessary. Ideally thin the list down.\r
+* Can Happy/Alex be installed by adding them as tool dependencies to the Stack file?\r