Changes between Version 94 and Version 95 of BuildingOnWindows


Ignore:
Timestamp:
06/28/11 08:41:29 (13 years ago)
Author:
Samuli Seppänen
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • BuildingOnWindows

    v94 v95  
    33= Introduction =
    44
    5 The traditional way to build OpenVPN for Windows is using autotools, either in a [http://www.mingw.org/ MinGW] environment or by cross-compiling the Windows binary on *NIX. This works, but does not allow signing the TUN/TAP driver, which is required for Windows Vista/7 and later. Due to this a new, relatively simple Python-based build system was written. This new build system allows building OpenVPN on Windows more easily, but some parts of the build may require a commercial version of the Visual Studio development environment. Fortunately the new build system only uses Visual Studio tools (nmake, compiler, linker, etc.), so learning VS's graphical user interface is not necessary. Full integration with Visual Studio ''should'' be possible, too.
     5The traditional way to build OpenVPN for Windows is using autotools, either in a [http://www.mingw.org/ MinGW] environment or by cross-compiling the Windows binary on *NIX. This works, but was found to be laborius to maintain. Due to this a new, relatively simple Python-based build system was written. This new build system allows building OpenVPN on Windows more easily, but some parts of the build may require a commercial version of the Visual Studio development environment. Fortunately the new build system only uses Visual Studio tools (nmake, compiler, linker, etc.), so learning VS's graphical user interface is not necessary. Full integration with Visual Studio ''should'' be possible, too.
    66
    77'''IMPORTANT:''' Most of the ''build dependencies'' have been pre-packaged for your convenience and are available [http://build.openvpn.net/downloads/build-dependencies here].
     
    99= Installing prequisites =
    1010
    11 == Visual Studio 2008 Professional ==
    12 
    13 Visual Studio 2008 Professional is used to build OpenVPN on Windows. Note that the free Express edition might not work. Also make sure you select "Typical installation", not "Full installation". Full installation installs ''x86 cross-tools'' which may cause nasty, hard to debug issues. See ''Troubleshooting'' section for details.
    14 
    15 == Windows Software Development Kit ==
    16 
    17 [http://msdn.microsoft.com/en-us/windows/bb980924.aspx Windows Software Development Kit] ([http://en.wikipedia.org/wiki/Microsoft_Windows_SDK Wikipedia page]) ''may'' be necessary to build OpenVPN (verify this).
    18 
    19 == Windows Driver Kit ==
    20 
    21 [http://www.microsoft.com/whdc/devtools/WDK/default.mspx Windows Driver Kit] ([http://en.wikipedia.org/wiki/Windows_Driver_Kit Wikipedia page]) is required to build the TUN/TAP driver.
    22 
    23 == Python ==
    24 
    25 The new Windows build system is written in [http://www.python.org Python]. The Windows installer does not seem to add the ''python.exe'' to the PATH, so you need to do it [http://vlaurie.com/computers2/Articles/environment.htm manually].
    26 
    27 == WinRAR ==
    28 
    29 [http://www.rarlab.com WinRAR] or some other tool capable of extracting .tar.gz and .tar.bz2 archives is necessary to extract the LZO and OpenSSL release archives. Note that if you install [http://code.google.com/p/gitextensions/ GitExtensions], you will get ''Git Bash'' which has ''tar.exe'' you can use.
    30 
    31 == !ActivePerl ==
    32 
    33 [http://www.activestate.com/activeperl ActivePerl] is required to build OpenSSL, which in turn is required to build OpenVPN. Look [http://ehsanakhgari.org/blog/2008-05-04/compiling-openvpn-windows here] for details. Probably a [http://www.perl.org/get.html standard Perl installation] would also do the trick.
    34 
    35 = Installing Git support (optional) =
    36 
    37 Git support is needed if you want to conveniently build the latest development code. You don't need Git support if you fetch the sources from another computer and copy them over, or use source code from release tar.gz or zip files.
    38 
    39 == !GitExtensions ==
    40 
    41 [http://code.google.com/p/gitextensions/ GitExtensions] is a GUI designed to make working with Git easier on Windows. Not only that, but it bundles together many Git components:
    42 
    43  * [http://code.google.com/p/msysgit Git for Windows] (msysgit). This component includes ''Git Bash'' which allows running Git (and other GNU tools) from a Bash command-line.
    44  * [http://kdiff3.sourceforge.net Kdiff3]
    45  * Visual Studio 2008 plugin
    46  * Windows explorer integration
    47 
    48 == Git Source Control Provider (optional) ==
    49 
    50 [http://gitscc.codeplex.com/ Git Source Control Provider] is a Visual Studio 2008/2010 plugin. It can also be used to launch ''Git for Windows'' and ''!GitExtensions'' from within Visual Studio.
     11'''Common prequisites'''
     12
     13 * [http://msdn.microsoft.com/en-us/windows/bb980924.aspx Windows Software Development Kit] ([http://en.wikipedia.org/wiki/Microsoft_Windows_SDK Wikipedia page]) ''may'' be necessary to build OpenVPN (verify!)
     14 * [http://www.microsoft.com/whdc/devtools/WDK/default.mspx Windows Driver Kit] ([http://en.wikipedia.org/wiki/Windows_Driver_Kit Wikipedia page]) is required to build the TUN/TAP driver.
     15 * [http://www.rarlab.com WinRAR] or some other tool capable of extracting .tar.gz and .tar.bz2 archives is necessary to extract the LZO and OpenSSL release archives. Note that if you install [http://code.google.com/p/gitextensions/ GitExtensions], you will get ''Git Bash'' which has ''tar.exe'' you can use.
     16 * [http://code.google.com/p/gitextensions/ GitExtensions] is a GUI designed to make working with Git easier on Windows. Not only that, but it bundles together many Git components. It includes Git Bash, which gives you the most common *NIX tools on your Windows box. Git support is only needed if you want to use the latest development code.
     17
     18'''Prequisites for the Python-based buildsystem'''
     19
     20 * ''Visual Studio 2008 Professional'' is used to build OpenVPN on Windows. Note that the free Express edition might not work. Also make sure you select "Typical installation", not "Full installation". Full installation installs ''x86 cross-tools'' which may cause nasty, hard to debug issues. See ''Troubleshooting'' section for details.
     21 * [http://www.python.org Python] is required to build OpenVPN using the new buildsystem. The Windows installer does not seem to add the ''python.exe'' to the PATH, so you need to do it [http://vlaurie.com/computers2/Articles/environment.htm manually].
     22 * [http://www.activestate.com/activeperl ActivePerl] is required to build OpenSSL, which in turn is required to build OpenVPN. Look [http://ehsanakhgari.org/blog/2008-05-04/compiling-openvpn-windows here] for details. Probably a [http://www.perl.org/get.html standard Perl installation] would also do the trick.
     23
     24'''Prequisites for the MinGW buildsystem'''
    5125
    5226= Building pkcs11-helper =
     
    381355  * [http://weblogs.asp.net/kennykerr/archive/2007/07/10/manifest-view-1-0.aspx Manifest view]: a tool to view contents of embedded manifests in EXEs and DLLs
    382356  * Windows ''Device Manager'' (for driver signing issues)
     357  * [http://gitscc.codeplex.com/ Git Source Control Provider] is a Visual Studio 2008/2010 plugin. It can also be used to launch ''Git for Windows'' and ''!GitExtensions'' from within Visual Studio.