summaryrefslogtreecommitdiff
path: root/openvpn/tap-win32/SOURCES
blob: 4d6cdee57221e0772b290234ccdfcd6301a2e232 (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
# Build TAP-Win32 driver.
# Build Command: build -cef

MAJORCOMP=ntos
MINORCOMP=ndis

TARGETNAME=tap0801
TARGETTYPE=DRIVER
TARGETPATH=.
TARGETLIBS=$(DDK_LIB_PATH)\ndis.lib $(DDK_LIB_PATH)\ntstrsafe.lib
INCLUDES=$(DDK_INCLUDE_PATH)

# The TAP version numbers here must be >=
# TAP_WIN32_MIN_x values defined in
# config-win32.h
C_DEFINES=
C_DEFINES=$(C_DEFINES) -DTAP_DRIVER_MAJOR_VERSION=8
C_DEFINES=$(C_DEFINES) -DTAP_DRIVER_MINOR_VERSION=4

# Use 00:FF:XX:XX:XX:XX format MAC addresses where
# the Xs are random (like Linux tap driver).
#
# Don't allow TAP device to be opened by more than one process
# at a time.
C_DEFINES=$(C_DEFINES)

# Produce the same symbolic information for both free & checked builds.
# This will allow us to perform full source-level debugging on both
# builds without affecting the free build's performance.
!IF "$(DDKBUILDENV)" != "chk"
NTDEBUGTYPE=both
USE_PDB=1
!ELSE
NTDEBUGTYPE=both
USE_PDB=1
!ENDIF

# Set compiler optimizations:
# /Ox - Full optimization enabled
# /Os - favor speed over size when optimizing
# /Od - Disable all optimizations
# /Oi - Enable optimization for intrinsic functions
# /Fc - Generate mixed assembler/source code files
#
# For both checked and free builds, make sure that any intrinsic
# functions are compiled correctly. To do this, ensure that /Oi
# is selected for both free and checked builds. There is a bug in
# VC++ 6.0 (at least through SP4) where, if you specify any
# intrinsic functions in your code with "#pragma intrinsic" but
# you don't have the /Oi optimization enabled, neither a call
# to the function, nor the intrinsic inline version of the function
# will end up in your object code. This bug only applies to free
# builds, but just to be safe we'll make sure that the flag is
# enabled for all builds.

!IF "$(DDKBUILDENV)" != "chk"
MSC_OPTIMIZATION=/Ox /Oi /Fc
!ELSE
MSC_OPTIMIZATION=/Od /Oi /Fc
!ENDIF

# Generate a linker map file just in case we need one for debugging
LINKER_FLAGS=$(LINKER_FLAGS) /MAP /MAPINFO:EXPORTS /MAPINFO:LINES

# Generate a browser information file for use in IDE development
BROWSER_INFO=1
BROWSERFILE=$(TARGETNAME).BSC -n

# Abort compilation on warnings.
MSC_WARNING_LEVEL=/W3 /WX

SOURCES=tapdrvr.c resource.rc