Browse code

build: use tap-windows.h as external dependency

tap-windows.h is provided by the tap project

Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
Acked-by: Samuli Seppänen <samuli@openvpn.net>
Signed-off-by: David Sommerseth <davids@redhat.com>

Alon Bar-Lev authored on 2012/03/01 05:12:22
Showing 6 changed files
... ...
@@ -666,6 +666,18 @@ PKG_CHECK_MODULES(
666 666
 	)]
667 667
 )
668 668
 
669
+AC_ARG_VAR([TAP_WINDOWS_CFLAGS], [C compiler flags for TAP-Windows])
670
+if test "${WIN32}" = "yes"; then
671
+	old_CFLAGS="${CFLAGS}"
672
+	CFLAGS="${CFLAGS} ${TAP_WINDOWS_CFLAGS}"
673
+	AC_CHECK_HEADERS(
674
+		[tap-windows.h],
675
+		,
676
+		[AC_MSG_ERROR([tap-windows.h is required but missing])]
677
+	)
678
+	CFLAGS="${old_CFLAGS}"
679
+fi
680
+
669 681
 if test "${have_openssl_crypto}" = "yes"; then
670 682
 	saved_CFLAGS="${CFLAGS}"
671 683
 	saved_LIBS="${LIBS}"
... ...
@@ -12,6 +12,4 @@
12 12
 MAINTAINERCLEANFILES = \
13 13
 	$(srcdir)/Makefile.in
14 14
 
15
-dist_noinst_HEADERS = tap-windows.h
16
-
17 15
 include_HEADERS = openvpn-plugin.h
18 16
deleted file mode 100644
... ...
@@ -1,68 +0,0 @@
1
-/*
2
- *  TAP-Windows -- A kernel driver to provide virtual tap
3
- *                 device functionality on Windows.
4
- *
5
- *  This code was inspired by the CIPE-Win32 driver by Damion K. Wilson.
6
- *
7
- *  This source code is Copyright (C) 2002-2010 OpenVPN Technologies, Inc.,
8
- *  and is released under the GPL version 2 (see below).
9
- *
10
- *  This program is free software; you can redistribute it and/or modify
11
- *  it under the terms of the GNU General Public License version 2
12
- *  as published by the Free Software Foundation.
13
- *
14
- *  This program is distributed in the hope that it will be useful,
15
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
16
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
- *  GNU General Public License for more details.
18
- *
19
- *  You should have received a copy of the GNU General Public License
20
- *  along with this program (see the file COPYING included with this
21
- *  distribution); if not, write to the Free Software Foundation, Inc.,
22
- *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
23
- */
24
-#ifndef __TAP_WIN_H
25
-#define __TAP_WIN_H
26
-
27
-//=============
28
-// TAP IOCTLs
29
-//=============
30
-
31
-#define TAP_WIN_CONTROL_CODE(request,method) \
32
-  CTL_CODE (FILE_DEVICE_UNKNOWN, request, method, FILE_ANY_ACCESS)
33
-
34
-// Present in 8.1
35
-
36
-#define TAP_WIN_IOCTL_GET_MAC               TAP_WIN_CONTROL_CODE (1, METHOD_BUFFERED)
37
-#define TAP_WIN_IOCTL_GET_VERSION           TAP_WIN_CONTROL_CODE (2, METHOD_BUFFERED)
38
-#define TAP_WIN_IOCTL_GET_MTU               TAP_WIN_CONTROL_CODE (3, METHOD_BUFFERED)
39
-#define TAP_WIN_IOCTL_GET_INFO              TAP_WIN_CONTROL_CODE (4, METHOD_BUFFERED)
40
-#define TAP_WIN_IOCTL_CONFIG_POINT_TO_POINT TAP_WIN_CONTROL_CODE (5, METHOD_BUFFERED)
41
-#define TAP_WIN_IOCTL_SET_MEDIA_STATUS      TAP_WIN_CONTROL_CODE (6, METHOD_BUFFERED)
42
-#define TAP_WIN_IOCTL_CONFIG_DHCP_MASQ      TAP_WIN_CONTROL_CODE (7, METHOD_BUFFERED)
43
-#define TAP_WIN_IOCTL_GET_LOG_LINE          TAP_WIN_CONTROL_CODE (8, METHOD_BUFFERED)
44
-#define TAP_WIN_IOCTL_CONFIG_DHCP_SET_OPT   TAP_WIN_CONTROL_CODE (9, METHOD_BUFFERED)
45
-
46
-// Added in 8.2
47
-
48
-/* obsoletes TAP_WIN_IOCTL_CONFIG_POINT_TO_POINT */
49
-#define TAP_WIN_IOCTL_CONFIG_TUN            TAP_WIN_CONTROL_CODE (10, METHOD_BUFFERED)
50
-
51
-//=================
52
-// Registry keys
53
-//=================
54
-
55
-#define ADAPTER_KEY "SYSTEM\\CurrentControlSet\\Control\\Class\\{4D36E972-E325-11CE-BFC1-08002BE10318}"
56
-
57
-#define NETWORK_CONNECTIONS_KEY "SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}"
58
-
59
-//======================
60
-// Filesystem prefixes
61
-//======================
62
-
63
-#define USERMODEDEVICEDIR "\\\\.\\Global\\"
64
-#define SYSDEVICEDIR      "\\Device\\"
65
-#define USERDEVICEDIR     "\\DosDevices\\Global\\"
66
-#define TAP_WIN_SUFFIX    ".tap"
67
-
68
-#endif
... ...
@@ -23,7 +23,9 @@ if "%OPENVPN_DEPROOT%" == "" set OPENVPN_DEPROOT=c:\Temp\openvpn-deps
23 23
 if "%OPENSSL_HOME%" == "" set OPENSSL_HOME=%OPENVPN_DEPROOT%
24 24
 if "%LZO_HOME%" == "" set LZO_HOME=%OPENVPN_DEPROOT%
25 25
 if "%PKCS11H_HOME%" == "" set PKCS11H_HOME=%OPENVPN_DEPROOT%
26
+if "%TAP_WINDOWS_HOME%" == "" set TAP_WINDOWS_HOME=%OPENVPN_DEPROOT%
26 27
 
27 28
 if not exist "%OPENSSL_HOME%" echo WARNING: openssl '%OPENSSL_HOME%' does not exist
28 29
 if not exist "%LZO_HOME%" echo WARNING: lzo '%LZO_HOME%' does not exist
29 30
 if not exist "%PKCS11H_HOME%" echo WARNING: pkcs11-helper '%PKCS11H_HOME%' does not exist
31
+if not exist "%TAP_WINDOWS_HOME%" echo WARNING: tap-windows '%TAP_WINDOWS_HOME%' does not exist
... ...
@@ -22,6 +22,7 @@ INCLUDES = \
22 22
 	-I$(top_srcdir)/src/compat
23 23
 
24 24
 AM_CFLAGS = \
25
+	$(TAP_WINDOWS_CFLAGS) \
25 26
 	$(OPTIONAL_CRYPTO_CFLAGS) \
26 27
 	$(OPTIONAL_LZO_CFLAGS) \
27 28
 	$(OPTIONAL_PKCS11_HELPER_CFLAGS)
... ...
@@ -41,7 +41,7 @@
41 41
 			<Tool
42 42
 				Name="VCCLCompilerTool"
43 43
 				Optimization="0"
44
-				AdditionalIncludeDirectories="$(SOURCEBASE);$(SOURCEBASE)/src/compat;$(SOURCEBASE)/include;$(OPENSSL_HOME)/include;$(LZO_HOME)/include;$(PKCS11H_HOME)/include"
44
+				AdditionalIncludeDirectories="$(SOURCEBASE);$(SOURCEBASE)/src/compat;$(SOURCEBASE)/include;$(TAP_WINDOWS_HOME)/include;$(OPENSSL_HOME)/include;$(LZO_HOME)/include;$(PKCS11H_HOME)/include"
45 45
 				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;$(CPPFLAGS)"
46 46
 				MinimalRebuild="true"
47 47
 				BasicRuntimeChecks="3"
... ...
@@ -118,7 +118,7 @@
118 118
 				Name="VCCLCompilerTool"
119 119
 				Optimization="2"
120 120
 				EnableIntrinsicFunctions="true"
121
-				AdditionalIncludeDirectories="$(SOURCEBASE);$(SOURCEBASE)/src/compat;$(SOURCEBASE)/include;$(OPENSSL_HOME)/include;$(LZO_HOME)/include;$(PKCS11H_HOME)/include"
121
+				AdditionalIncludeDirectories="$(SOURCEBASE);$(SOURCEBASE)/src/compat;$(SOURCEBASE)/include;$(TAP_WINDOWS_HOME)/include;$(OPENSSL_HOME)/include;$(LZO_HOME)/include;$(PKCS11H_HOME)/include"
122 122
 				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;$(CPPFLAGS)"
123 123
 				RuntimeLibrary="2"
124 124
 				EnableFunctionLevelLinking="true"