#!/bin/sh # This is the master OpenVPN build script for Windows. # This script will build OpenVPN, the TAP driver, and # the installer from source, targeting x86 on Windows # 2000 and higher, and x64 on Windows 2003 and higher. # # See top-level build configuration in install-win32/settings.in # # Prerequisite installs: # # MinGW -- for GNU C compiler # MSYS -- for bash # msysDTK -- for perl # NSIS -- for building installer # svn -- for checking out source code (or TortoiseSVN) # Windows Driver Kit (6001_17121_HyperV_WDK.iso) -- for building TAP driver + tapinstall # # Required libraries (must be prebuilt) # # OpenSSL -- define OPENSSL_DIR in settings.in # LZO -- define LZO_DIR in settings.in # PKCS11-HELPER -- define PKCS11_HELPER_DIR # # Optional OpenVPN GUI binary (prebuilt) # -- define OPENVPN_GUI_DIR and OPENVPN_GUI in settings.in # # Required source code not included in OpenVPN SVN repository # because of MS licensing restrictions: # # ../tapinstall -- This is based on 'devcon' which is found in the # Windows Driver Kit (formerly known as DDK). # Copy the 'devcon' source tree to ../tapinstall # Edit 'sources' and modify TARGETNAME=tapinstall # # ../svc-template -- This directory should contain service.[ch] # from the MS Platform SDK. # Note that all variables referenced here such as GENOUT and CLEAN # are defined in install-win32/settings.in # First build the autodefs directory, with C, sh, and NSIS versions # of global settings, using install-win32/settings.in as source. # These settings will then drive the rest of the build process. install-win32/winconfig # Delete the GENOUT directory if CLEAN="yes" install-win32/doclean # Each of the scripts below build, get, and/or possibly sign a different # OpenVPN component, placing the generated files in GENOUT. Each of these # steps is fully indepedent, and can be executed in any order or omitted. # The exception is the last script which gathers together all files from # GENOUT and build the installer. # Make the OpenVPN user-space component (openvpn.exe) install-win32/makeopenvpn # Make the OpenVPN service install-win32/makeservice # Make the OpenVPN TAP driver install-win32/maketap # Make the tapinstall utility, used to install the TAP driver install-win32/maketapinstall # Get the OpenSSL libraries from a pre-build OpenSSL tree install-win32/getopenssl # Get the PKCS-11 helper library from a pre-built OpenSSL tree install-win32/getpkcs11helper # Get the OpenVPN GUI (must be prebuilt) install-win32/getgui # Produce the license text, install README, and sample config files install-win32/maketext # This final step builds the OpenVPN installer using generated # files from GENOUT install-win32/buildinstaller