aboutsummaryrefslogtreecommitdiff
path: root/doc/build-windows.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/build-windows.md')
-rw-r--r--doc/build-windows.md41
1 files changed, 37 insertions, 4 deletions
diff --git a/doc/build-windows.md b/doc/build-windows.md
index 129774491b..044356830a 100644
--- a/doc/build-windows.md
+++ b/doc/build-windows.md
@@ -1,13 +1,45 @@
WINDOWS BUILD NOTES
====================
-Some notes on how to build Bitcoin Core for Windows.
+Below are some notes on how to build Bitcoin Core for Windows.
Most developers use cross-compilation from Ubuntu to build executables for
Windows. This is also used to build the release binaries.
-Building on Windows itself is possible (for example using msys / mingw-w64),
-but no one documented the steps to do this. If you are doing this, please contribute them.
+While there are potentially a number of ways to build on Windows (for example using msys / mingw-w64),
+using the Windows Subsystem For Linux is the most straight forward. If you are building with
+an alternative method, please contribute the instructions here for others who are running versions
+of Windows that are not compatible with the Windows Subsystem for Linux.
+
+Compiling with the Windows Subsystem For Linux
+-------------------
+
+With Windows 10, Microsoft has released a new feature named the
+[Windows Subsystem for Linux](https://msdn.microsoft.com/commandline/wsl/about). This feature allows you to run a bash shell directly on Windows in an Ubuntu based
+environment. Within this environment you can cross compile for Windows without the need for a separate Linux VM or Server.
+
+This feature is not supported in versions of Windows prior to Windows 10 or on Windows Server SKUs.
+
+To get the bash shell, you must first activate the feature in Windows.
+
+1. Turn on Developer Mode
+ * Open Settings -> Update and Security -> For developers
+ * Select the Developer Mode radio button
+ * Restart if necessary
+2. Enable the Windows Subsystem for Linux feature
+ * From Start, search for "Turn Windows features on or off" (type 'turn')
+ * Select Windows Subsystem for Linux (beta)
+ * Click OK
+ * Restart if necessary
+3. Complete Installation
+ * Open a cmd prompt and type "bash"
+ * Accept the license
+ * Create a new UNIX user account (this is a separate account from your Windows account)
+
+After the bash shell is active, you can follow the instructions below for Windows 64-bit Cross-compilation.
+When building dependencies within the 'depends' folder, you may encounter an error building
+the protobuf dependency. If this occurs, re-run the command with sudo. This is likely
+a bug with the Windows Subsystem for Linux feature and may be fixed with a future update.
Cross-compilation
-------------------
@@ -27,6 +59,7 @@ To build executables for Windows 32-bit:
cd depends
make HOST=i686-w64-mingw32 -j4
cd ..
+ ./autogen.sh # not required when building from tarball
./configure --prefix=`pwd`/depends/i686-w64-mingw32
make
@@ -35,8 +68,8 @@ To build executables for Windows 64-bit:
cd depends
make HOST=x86_64-w64-mingw32 -j4
cd ..
+ ./autogen.sh # not required when building from tarball
./configure --prefix=`pwd`/depends/x86_64-w64-mingw32
make
For further documentation on the depends system see [README.md](../depends/README.md) in the depends directory.
-