n2n/doc/Windows.md

74 lines
2.2 KiB
Markdown
Raw Normal View History

# Build on Windows
2019-03-01 20:16:24 +01:00
## Requirements
2019-03-01 20:16:24 +01:00
In order to build on Windows the following tools should be installed:
2019-03-01 20:16:24 +01:00
- Visual Studio. For a minimal install, the command line only build tools can be
downloaded and installed from https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2017
- Cmake
- (optional) The OpenSSL library. Prebuild binaries can be downloaded from https://slproweb.com/products/Win32OpenSSL.html .
The full version is required (not the "Light" version). The Win32 version of it is usually required for a standard build.
2019-03-01 20:16:24 +01:00
NOTE: in order to skip OpenSSL compilation, edit CMakeLists.txt and replace
2019-03-01 20:16:24 +01:00
```plaintext
OPTION(N2N_OPTION_AES "USE AES" ON)
with
OPTION(N2N_OPTION_AES "USE AES" OFF)
```
2019-03-01 20:16:24 +01:00
NOTE: to static link OpenSSL, add the `-DOPENSSL_USE_STATIC_LIBS=true` option to the cmake command
2019-03-01 20:16:24 +01:00
In order to run n2n:
- The TAP drivers should be installed into the system. They can be installed from
http://build.openvpn.net/downloads/releases (search for "tap-windows")
- If OpenSSL has been linked dynamically, the corresponding .dll file should be available
into the target computer
2019-03-01 20:16:24 +01:00
## Build (CLI)
2019-03-01 20:16:24 +01:00
In order to build from the command line, open a terminal window and run the following commands:
```batch
2019-03-01 20:16:24 +01:00
md build
cd build
cmake ..
MSBuild edge.vcxproj /t:Build /p:Configuration=Release
MSBuild supernode.vcxproj /t:Build /p:Configuration=Release
```
NOTE: if cmake has problems finding the installed OpenSSL library, try to download the official cmake and invoke it with:
`C:\Program Files\CMake\bin\cmake`
2019-03-01 20:16:24 +01:00
The compiled exe files should now be available under the Release directory.
## Run
The `edge.exe` program reads the `edge.conf` file located into the current directory if no option is provided.
Here is an example `edge.conf` file:
```plaintext
-c=mycommunity
-k=mysecretkey
# supernode IP address
-l=1.2.3.4:5678
# edge IP address
-a=192.168.100.1
```
The `supernode.exe` program reads the `supernode.conf` file located into the current directory if no option is provided.
Here is an example `supernode.conf` file:
```plaintext
-l=5678
```
See `edge.exe --help` and `supernode.exe --help` for a list of supported options.