[msys2]: http://msys2.github.io
[pacman]: https://wiki.archlinux.org/index.php/pacman

Lean for Windows
----------------

A native Lean binary for Windows can be generated using [msys2].
It is easy to install all dependencies, it produces native
64/32-binaries, and supports a C++11 compiler.


## Installing dependencies

Lean requires Python2 or Python3. If you do not have a Python installation on your machine, 
please download and install one from [Python.org](https://www.python.org/downloads/windows).
Also please make sure that your `PATH` environment variable includes the installed 
Python directory (i.e. `C:\Python27`).

[The official webpage of msys2][msys2] provides one-click installers.
We assume that you install [msys2][msys2] at `c:\msys64`.
Once installed it, you can run msys2 shell from the start menu.
It has a package management system, [pacman][pacman], which is used in Arch Linux.

Here are the commands to install all dependencies needed to compile Lean on your machine.

```bash
# Install gcc (4.9.1)
pacman -S mingw-w64-x86_64-gcc

# Install mpfr, gmp, lua
pacman -S mingw-w64-x86_64-mpfr mingw-w64-x86_64-gmp mingw-w64-x86_64-lua

# Install ninja, cmake
pacman -S mingw-w64-x86_64-ninja mingw-w64-x86_64-cmake

# Install git
pacman -S git
```

Close the msys2 shell and add `c:\msys64\mingw64\bin` into the `PATH`
environment variable.

 - Windows 7/8: Control Panel > System and Security > System > Advanced
   System Settings > Environment Variables... > Edit User variable
   `Path`

## Build Lean

In the [msys2] shell, execute the following commands.

```bash
cd /c/
git clone https://github.com/leanprover/lean
cd lean
mkdir build && cd build
cmake -D CMAKE_CXX_COMPILER=g++.exe -G Ninja ../src
ninja
```

## Build Lean using Boost

To install Boost in the [msys2] shell, use the following command:

```bash
pacman -S mingw-w64-x86_64-boost
```

In the [msys2] shell, execute the following commands.

```bash
cd /c/
git clone https://github.com/leanprover/lean
cd lean
mkdir build && cd build
cmake -D CMAKE_CXX_COMPILER=g++.exe -D BOOST=ON -G Ninja ../src
ninja
```