# The Automatic (but unsupported) Way: winstrap

The winstrap tool is used by the Go project to turn a fresh Windows VM image into a Windows builder. It installs all necessary dependencies. It's sometimes out of date, though, as it's only updated when we need to update the Windows base image for the Go continuous build.

It will download some installers to your desktop, which you should run. Just click through; all the defaults are fine.

Then it will check out Go and place it in c:Users\%USER%goroot and build it.

That's it.

Note however that winstrap is not supported. It's considered an internal tool used for occasional setup of new Windows builder images and is not actively maintained until we need it ourselves.

# The Manual Way

## Install MinGW/MSYS

Download and save the latest version of the automated MinGW installer executable (exe) file from SourceForge.

http://sourceforge.net/projects/mingw/files/OldFiles/mingw-get-inst/

Open and run the saved automated MinGW installer executable file, which is named mingw-get-inst-yyyymmdd.exe, where yyyymmdd is the version date stamp. For example, mingw-get-inst-20110530.exe.

The MinGW Setup Wizard window will open with the title "Setup - MinGW-Get". Except for the following, accept the setup defaults, unless it's necessary to change them.

For Select Components, the MinGW Compiler Suite, the C Compiler box is automatically checked. Scroll down to the bottom of the list and check the MinGW Developer Toolkit box, which includes the MSYS Basic System.

For Ready to Install, review and verify the installation settings, which should look similar this:

    Installing:
mingw-get
pkginfo
C Compiler
MSYS Basic System
MinGW Developer Toolkit
Destination location:
C:\MinGW

When the installation settings are correct, Install.

The MSYS terminal window may be opened by opening and running the C:\MinGW\msys\1.0\msys.bat batch file.

## Build

git clone https://go.googlesource.com/go
cd go\src
all.bat


## 64-bit Notes

1. Ensure you are able to compile a working 32-bit Go first.
2. Grab the latest zip from http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Automated%20Builds/ and extract it over the MinGW directory, so that for example the .exe files end up in the same location as the 32-bit ones.
3. Replace gcc.exe and ar.exe with their 64-bit counterparts.
4. Set GOARCH=amd64 and away you go!

Last update: March 1, 2022