aboutsummaryrefslogtreecommitdiff
path: root/domake-win
blob: f27d6e77d52d2653e0a2d45d1a6f90d0bec9a8c9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/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