Commit 780bcdaf authored by Andrey Mokhov's avatar Andrey Mokhov Committed by Ben Gamari

Hadrian: Update instructions for building on Windows

The `hadrian/doc/windows.md` file has falled out of date. In particular
it still points to the old GitHub repository, and uses incorrect path
to GHC. This patch fixes it.
parent 86734329
......@@ -262,7 +262,7 @@ projects), as well as Well-Typed.
[issues]: https://github.com/snowleopard/hadrian/issues
[ghc-preparation]: https://ghc.haskell.org/trac/ghc/wiki/Building/Preparation
[ghc-windows-quick-build]: https://ghc.haskell.org/trac/ghc/wiki/Building/Preparation/Windows#AQuickBuild
[windows-build]: https://github.com/snowleopard/hadrian/blob/master/doc/windows.md
[windows-build]: https://gitlab.haskell.org/ghc/ghc/blob/master/hadrian/doc/windows.md
[ghc-split-objs-bug]: https://ghc.haskell.org/trac/ghc/ticket/11315
[test-issue]: https://github.com/snowleopard/hadrian/issues/197
[validation-issue]: https://github.com/snowleopard/hadrian/issues/187
......
# Building GHC on Windows
[![Windows status](https://img.shields.io/appveyor/ci/snowleopard/hadrian/master.svg?label=Windows)](https://ci.appveyor.com/project/snowleopard/hadrian)
Here is how you can build GHC, from source, on Windows with minimal requirements.
We only assume that `git` and `stack` are installed (see
[prerequisites](https://github.com/snowleopard/hadrian/blob/master/doc/windows.md#prerequisites)).
Here is how you can build GHC, from source, on Windows. We assume that `git` and `stack` are installed
(see [prerequisites](https://github.com/snowleopard/hadrian/blob/master/doc/windows.md#prerequisites)).
```sh
# Get GHC and Hadrian sources; git core.autocrlf should be set to false (see Prerequisites section)
```
# Get GHC sources; git core.autocrlf should be set to false (see Prerequisites section)
git clone --recursive git://git.haskell.org/ghc.git
cd ghc
git clone git://github.com/snowleopard/hadrian
# Download and install the bootstrapping GHC and MSYS2
cd hadrian
......@@ -27,30 +25,33 @@ stack exec hadrian -- --directory ".." -j --flavour=quickest --configure
# Test GHC
cd ..
inplace\bin\ghc-stage2 -e 1+2
_build\stage1\bin\ghc -e 1+2
```
The entire process should take about 20 minutes. Note, this will build GHC without
optimisations. If you need an optimised GHC, drop the `--flavour=quickest` flag from
the build command line (this will slow down the build to about an hour).
The entire process should take about 20 minutes. Note, this will build GHC
without optimisations. If you need an optimised GHC, drop the `--flavour=quickest`
flag from the build command line (this will slow down the build to about an hour).
These are currently not the
[official GHC building instructions](https://ghc.haskell.org/trac/ghc/wiki/Building/Preparation/Windows),
but are much simpler and may also be more robust.
The `stack build` and `stack exec hadrian` commands can be replaced by an invocation
of Hadrian's Stack-based build script: `build.stack.bat -j --flavour=quickest`. Use this
script if you plan to work on Hadrian and/or rebuild GHC often.
The `stack build` and `stack exec hadrian` commands can be replaced by an
invocation of Hadrian's Stack-based build script:
`build.stack.bat -j --flavour=quickest`. Use this script if you plan to work on
Hadrian and/or rebuild GHC often.
## Prerequisites
The above works on a clean machine with `git` and `stack` installed (tested with default
installation settings), which you can get from https://git-scm.com/download/win and
The above works on a clean machine with `git` and `stack` installed (tested with
default installation settings), which you can get from
https://git-scm.com/download/win and
https://www.stackage.org/stack/windows-x86_64-installer.
Note that `git` should be configured to check out Unix-style line endings. The default behaviour
of `git` on Windows is to check out Windows-style line endings which can cause issues during the
build. This can be changed using the following command:
Note that `git` should be configured to check out Unix-style line endings. The
default behaviour of `git` on Windows is to check out Windows-style line endings
which can cause issues during the build. This can be changed using the following
command:
git config --global core.autocrlf false
......@@ -61,10 +62,10 @@ If you would like to restore the default behaviour later run:
## Testing
These instructions have been tested on a clean Windows 10 machine using the
[free VirtualBox image](https://dev.windows.com/en-us/microsoft-edge/tools/vms/windows/),
and are also routinely tested on
[Hadrian's AppVeyor CI instance](https://ci.appveyor.com/project/snowleopard/hadrian/history).
[free VirtualBox image](https://dev.windows.com/en-us/microsoft-edge/tools/vms/windows/).
**TODO:** It would be useful to test the instructions routinely on CI.
## Notes
Beware of the [current limitations of Hadrian](https://github.com/snowleopard/hadrian#current-limitations).
Beware of the [current limitations of Hadrian](https://gitlab.haskell.org/ghc/ghc/blob/master/hadrian/README.md#current-limitations).
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment