Makefile.kmk revision 73e8df2e481cb3697372a3cf4acffd068a7f1296
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync# $Id$
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync## @file
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync# Sub-Makefile for the Network Filter Driver (VBoxNetFlt).
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync#
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync#
e64031e20c39650a7bc902a3e1aba613b9415deevboxsync# Copyright (C) 2008-2010 Oracle Corporation
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync#
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync# available from http://www.virtualbox.org. This file is free software;
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync# you can redistribute it and/or modify it under the terms of the GNU
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync# General Public License (GPL) as published by the Free Software
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync#
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsyncSUB_DEPTH = ../../../..
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsyncinclude $(KBUILD_PATH)/subheader.kmk
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync
4651430e55b9df9726347e3e3968618e540fe729vboxsync
4651430e55b9df9726347e3e3968618e540fe729vboxsyncif1of ($(KBUILD_TARGET), darwin win) # this ifeq must go, see @todo around elif
d5bf937d132098565e18a0d1fc408fb777c5e5b6vboxsync #
d5bf937d132098565e18a0d1fc408fb777c5e5b6vboxsync # VBoxNetFlt.sys - The mixed case driver.
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync #
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync SYSMODS += VBoxNetFlt
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync VBoxNetFlt_TEMPLATE = VBOXR0DRV
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync VBoxNetFlt_INST = $(INST_VBOXNETFLT)$(if $(eq $(KBUILD_TARGET),darwin),Contents/MacOS/)
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync if defined(VBOX_SIGNING_MODE) && "$(KBUILD_TARGET)" == "win"
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync VBoxNetFlt_INSTTYPE = none
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync VBoxNetFlt_DEBUG_INSTTYPE = both
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync endif
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync VBoxNetFlt_DEFS = IN_RT_R0 IN_SUP_STATIC
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync VBoxNetFlt_INCS = .
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync VBoxNetFlt_SOURCES.darwin = \
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync darwin/VBoxNetFlt-darwin.cpp
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync VBoxNetFlt_SDKS.win = WINDDKWLH WINPSDKINCS
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync VBoxNetFlt_SOURCES.win = \
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync win/drv/VBoxNetFltP-win.cpp \
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync win/drv/VBoxNetFltM-win.cpp \
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync win/drv/VBoxNetFltRt-win.cpp \
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync win/drv/VBoxNetFlt-win.rc
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync # with WINDDKWLH the WIN9X_COMPAT_SPINLOCK is needed to avoid inline declaration of KeInitializeSpinLock
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync # otherwise the linker would complain about dumplicate _KeInitializeSpinLock@4 definition
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync # in ntoskrnl.lib and our object files
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync VBoxNetFlt_DEFS.win += WIN9X_COMPAT_SPINLOCK=1
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync VBoxNetFlt_DEFS.win += VBOXNETFLT_STATIC_CONFIG
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync VBoxNetFlt_DEFS.win += VBOXNETFLT_NO_PACKET_QUEUE
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync VBoxNetFlt_DEFS.win += NDIS_MINIPORT_DRIVER NDIS_WDM=1 BINARY_COMPATIBLE=0
231051c77670a4142b7545d51bd2251ae603189dvboxsync VBoxNetFlt_DEFS.win += NDIS50_MINIPORT=1 NDIS50=1
231051c77670a4142b7545d51bd2251ae603189dvboxsync ifdef VBOX_LOOPBACK_USEFLAGS
231051c77670a4142b7545d51bd2251ae603189dvboxsync VBoxNetFlt_DEFS.win += VBOX_LOOPBACK_USEFLAGS
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync endif
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync VBoxNetFlt_SOURCES = VBoxNetFlt.c
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync #VBoxNetFlt_LDFLAGS.darwin = -v -Wl,-whyload -Wl,-v -Wl,-whatsloaded
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync VBoxNetFlt_LDFLAGS.win.x86 = -Entry:DriverEntry@8
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync VBoxNetFlt_LDFLAGS.win.amd64 = -Entry:DriverEntry
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync VBoxNetFlt_LIBS.win = \
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync $(PATH_SDK_WINDDKWLH_LIB)/ntoskrnl.lib \
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync $(PATH_SDK_WINDDKWLH_LIB)/hal.lib \
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync $(PATH_SDK_WINDDKWLH_LIB)/ndis.lib \
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync $(PATH_STAGE_LIB)/RuntimeR0Drv$(VBOX_SUFF_LIB)
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync VBoxNetFlt_LIBS = \
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync $(PATH_STAGE_LIB)/SUPR0IdcClient$(VBOX_SUFF_LIB)
b2a9ade0eaa3c7b26c02cc05f83c352cafb9e03avboxsync
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync darwin/VBoxNetFlt-darwin.cpp_DEFS = VBOX_SVN_REV=$(VBOX_SVN_REV)
b2a9ade0eaa3c7b26c02cc05f83c352cafb9e03avboxsync
231051c77670a4142b7545d51bd2251ae603189dvboxsync
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync# Darwin extras.
b2a9ade0eaa3c7b26c02cc05f83c352cafb9e03avboxsyncifeq ($(KBUILD_TARGET),darwin)
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync INSTALLS += VBoxNetFlt.kext
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync VBoxNetFlt.kext_INST = $(INST_VBOXNETFLT)Contents/
b2a9ade0eaa3c7b26c02cc05f83c352cafb9e03avboxsync VBoxNetFlt.kext_SOURCES = \
b2a9ade0eaa3c7b26c02cc05f83c352cafb9e03avboxsync $(VBoxNetFlt.kext_0_OUTDIR)/Info.plist
b2a9ade0eaa3c7b26c02cc05f83c352cafb9e03avboxsync VBoxNetFlt.kext_CLEAN = \
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync $(VBoxNetFlt.kext_0_OUTDIR)/Info.plist
b2a9ade0eaa3c7b26c02cc05f83c352cafb9e03avboxsync
b2a9ade0eaa3c7b26c02cc05f83c352cafb9e03avboxsync$$(VBoxNetFlt.kext_0_OUTDIR)/Info.plist: $(PATH_SUB_CURRENT)/darwin/Info.plist $(VBOX_VERSION_MK) | $$(dir $$@)
b2a9ade0eaa3c7b26c02cc05f83c352cafb9e03avboxsync $(call MSG_GENERATE,VBoxNetFlt,$@,$<)
b2a9ade0eaa3c7b26c02cc05f83c352cafb9e03avboxsync $(QUIET)$(RM) -f $@
b2a9ade0eaa3c7b26c02cc05f83c352cafb9e03avboxsync $(QUIET)$(SED) \
22ea904a6fe5c95f54c4374502747cc844ce8204vboxsync -e 's/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g' \
22ea904a6fe5c95f54c4374502747cc844ce8204vboxsync -e 's/@VBOX_VERSION_MAJOR@/$(VBOX_VERSION_MAJOR)/g' \
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync -e 's/@VBOX_VERSION_MINOR@/$(VBOX_VERSION_MINOR)/g' \
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync -e 's/@VBOX_VERSION_BUILD@/$(VBOX_VERSION_BUILD)/g' \
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync --output $@ \
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync $<
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync INSTALLS.darwin += Scripts-darwin
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync Scripts-darwin_INST = $(INST_DIST)
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync Scripts-darwin_EXEC_SOURCES = \
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync darwin/loadnetflt.sh
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsyncendif # darwin
6b9316bfe743cc7d2ee00d925f4ab455bc224e86vboxsync
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsyncifeq ($(KBUILD_TARGET),win)
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync #
6b9316bfe743cc7d2ee00d925f4ab455bc224e86vboxsync # Windows extras.
6b9316bfe743cc7d2ee00d925f4ab455bc224e86vboxsync #
6b9316bfe743cc7d2ee00d925f4ab455bc224e86vboxsync INSTALLS.win += VBoxNetFlt-inf
6b9316bfe743cc7d2ee00d925f4ab455bc224e86vboxsync VBoxNetFlt-inf_INST = $(INST_BIN)
6b9316bfe743cc7d2ee00d925f4ab455bc224e86vboxsync VBoxNetFlt-inf_SOURCES = \
6b9316bfe743cc7d2ee00d925f4ab455bc224e86vboxsync $(PATH_TARGET)/VBoxNetFltCat.dir/VBoxNetFlt.inf \
6b9316bfe743cc7d2ee00d925f4ab455bc224e86vboxsync $(PATH_TARGET)/VBoxNetFltCat.dir/VBoxNetFltM.inf
6b9316bfe743cc7d2ee00d925f4ab455bc224e86vboxsync VBoxNetFlt-inf_CLEAN = $(VBoxNetFlt-inf_SOURCES)
6b9316bfe743cc7d2ee00d925f4ab455bc224e86vboxsync VBoxNetFlt-inf_BLDDIRS = $(PATH_TARGET)/VBoxNetFltCat.dir
6b9316bfe743cc7d2ee00d925f4ab455bc224e86vboxsync
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync$(PATH_TARGET)/VBoxNetFltCat.dir/VBoxNetFlt.inf: $(PATH_SUB_CURRENT)/win/drv/VBoxNetFlt.inf $(MAKEFILE_CURRENT) | $$(dir $$@)
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync $(call MSG_GENERATE,VBoxNetFlt-inf,$@,$<)
6b9316bfe743cc7d2ee00d925f4ab455bc224e86vboxsync $(call VBOX_EDIT_INF_FN,$<,$@)
6b9316bfe743cc7d2ee00d925f4ab455bc224e86vboxsync
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync$(PATH_TARGET)/VBoxNetFltCat.dir/VBoxNetFltM.inf: $(PATH_SUB_CURRENT)/win/drv/VBoxNetFltM.inf $(MAKEFILE_CURRENT) | $$(dir $$@)
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync $(call MSG_GENERATE,VBoxNetFlt-inf,$@,$<)
6b9316bfe743cc7d2ee00d925f4ab455bc224e86vboxsync $(call VBOX_EDIT_INF_FN,$<,$@)
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync
6b9316bfe743cc7d2ee00d925f4ab455bc224e86vboxsync ifdef VBOX_SIGNING_MODE
6b9316bfe743cc7d2ee00d925f4ab455bc224e86vboxsyncVBoxNetFlt-inf_SOURCES += \
6b9316bfe743cc7d2ee00d925f4ab455bc224e86vboxsync $(PATH_TARGET)/VBoxNetFltCat.dir/VBoxNetFlt.sys \
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync $(PATH_TARGET)/VBoxNetFltCat.dir/VBoxNetFltNobj.dll \
6b9316bfe743cc7d2ee00d925f4ab455bc224e86vboxsync $(PATH_TARGET)/VBoxNetFltCat.dir/VBoxNetFlt.cat
6b9316bfe743cc7d2ee00d925f4ab455bc224e86vboxsync
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync$(PATH_TARGET)/VBoxNetFltCat.dir/VBoxNetFlt.sys: $$(VBoxNetFlt_1_TARGET) | $$(dir $$@)
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync $(INSTALL) -m 644 $< $(@D)
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync$(PATH_TARGET)/VBoxNetFltCat.dir/VBoxNetFltNobj.dll: $$(VBoxNetFltNobj_1_TARGET) | $$(dir $$@)
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync $(INSTALL) -m 644 $< $(@D)
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync
15760030457c4d8548d42a9d543646b27eae7040vboxsync$(PATH_TARGET)/VBoxNetFltCat.dir/VBoxNetFlt.cat: \
15760030457c4d8548d42a9d543646b27eae7040vboxsync $(PATH_TARGET)/VBoxNetFltCat.dir/VBoxNetFlt.sys \
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync $(PATH_TARGET)/VBoxNetFltCat.dir/VBoxNetFltNobj.dll \
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync $(PATH_TARGET)/VBoxNetFltCat.dir/VBoxNetFlt.inf \
fbf482cad760a830bc8789ad639162019954ba80vboxsync $(PATH_TARGET)/VBoxNetFltCat.dir/VBoxNetFltM.inf
fbf482cad760a830bc8789ad639162019954ba80vboxsync $(call MSG_TOOL,Inf2Cat,VBoxNetFlt-inf,$@,$<)
fbf482cad760a830bc8789ad639162019954ba80vboxsync $(call VBOX_MAKE_CAT_FN, $(@D),$@)
fbf482cad760a830bc8789ad639162019954ba80vboxsync
fbf482cad760a830bc8789ad639162019954ba80vboxsync endif # signing
fbf482cad760a830bc8789ad639162019954ba80vboxsync
fbf482cad760a830bc8789ad639162019954ba80vboxsync #
fbf482cad760a830bc8789ad639162019954ba80vboxsync # WinNetConfig - static library with host network interface config API
fbf482cad760a830bc8789ad639162019954ba80vboxsync #
fbf482cad760a830bc8789ad639162019954ba80vboxsync LIBRARIES.win += WinNetConfig
fbf482cad760a830bc8789ad639162019954ba80vboxsync WinNetConfig_TEMPLATE = VBOXR3STATIC
fbf482cad760a830bc8789ad639162019954ba80vboxsync WinNetConfig_DEFS = _WIN32_WINNT=0x0501 _UNICODE UNICODE
fbf482cad760a830bc8789ad639162019954ba80vboxsync WinNetConfig_SDKS = WINPSDK W2K3DDK
fbf482cad760a830bc8789ad639162019954ba80vboxsync WinNetConfig_SOURCES = \
fbf482cad760a830bc8789ad639162019954ba80vboxsync win/cfg/VBoxNetCfg.cpp
96eb45983d3cdab98da24ba9a31ef0c6e6021a77vboxsync WinNetConfig_INCS.win += $(PATH_TOOL_$(VBOX_VCC_TOOL)_INC)
fbf482cad760a830bc8789ad639162019954ba80vboxsync
fbf482cad760a830bc8789ad639162019954ba80vboxsync #
fbf482cad760a830bc8789ad639162019954ba80vboxsync # NetFltInstall
fbf482cad760a830bc8789ad639162019954ba80vboxsync #
fbf482cad760a830bc8789ad639162019954ba80vboxsync PROGRAMS.win += NetFltInstall
fbf482cad760a830bc8789ad639162019954ba80vboxsync NetFltInstall_TEMPLATE = VBOXR3STATIC
fbf482cad760a830bc8789ad639162019954ba80vboxsync NetFltInstall_SDKS = WINPSDK W2K3DDK VBOX_NTDLL
fbf482cad760a830bc8789ad639162019954ba80vboxsync NetFltInstall_SOURCES = win/tools/VBoxNetFltInstall.cpp
fbf482cad760a830bc8789ad639162019954ba80vboxsync NetFltInstall_LIBS = \
fbf482cad760a830bc8789ad639162019954ba80vboxsync $(WinNetConfig_1_TARGET) \
fbf482cad760a830bc8789ad639162019954ba80vboxsync $(VBoxDrvCfg_1_TARGET) \
fbf482cad760a830bc8789ad639162019954ba80vboxsync $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/comsupp.lib \
fbf482cad760a830bc8789ad639162019954ba80vboxsync $(PATH_SDK_WINPSDK_LIB)/WbemUuid.Lib
fbf482cad760a830bc8789ad639162019954ba80vboxsync
fbf482cad760a830bc8789ad639162019954ba80vboxsync
fbf482cad760a830bc8789ad639162019954ba80vboxsync #
fbf482cad760a830bc8789ad639162019954ba80vboxsync # NetFltUninstall
fbf482cad760a830bc8789ad639162019954ba80vboxsync #
fbf482cad760a830bc8789ad639162019954ba80vboxsync PROGRAMS.win += NetFltUninstall
fbf482cad760a830bc8789ad639162019954ba80vboxsync NetFltUninstall_TEMPLATE = VBOXR3STATIC
fbf482cad760a830bc8789ad639162019954ba80vboxsync NetFltUninstall_SDKS = WINPSDK W2K3DDK VBOX_NTDLL
fbf482cad760a830bc8789ad639162019954ba80vboxsync NetFltUninstall_SOURCES = win/tools/VBoxNetFltUninstall.cpp
fbf482cad760a830bc8789ad639162019954ba80vboxsync NetFltUninstall_LIBS = \
fbf482cad760a830bc8789ad639162019954ba80vboxsync $(WinNetConfig_1_TARGET) \
fbf482cad760a830bc8789ad639162019954ba80vboxsync $(VBoxDrvCfg_1_TARGET) \
fbf482cad760a830bc8789ad639162019954ba80vboxsync $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/comsupp.lib \
fbf482cad760a830bc8789ad639162019954ba80vboxsync $(PATH_SDK_WINPSDK_LIB)/WbemUuid.Lib
fbf482cad760a830bc8789ad639162019954ba80vboxsync
fbf482cad760a830bc8789ad639162019954ba80vboxsync #
fbf482cad760a830bc8789ad639162019954ba80vboxsync # NetAdpInstall
fbf482cad760a830bc8789ad639162019954ba80vboxsync #
fbf482cad760a830bc8789ad639162019954ba80vboxsync PROGRAMS.win += NetAdpInstall
fbf482cad760a830bc8789ad639162019954ba80vboxsync NetAdpInstall_TEMPLATE = VBOXR3STATIC
fbf482cad760a830bc8789ad639162019954ba80vboxsync NetAdpInstall_SDKS = WINPSDK W2K3DDK VBOX_NTDLL
fbf482cad760a830bc8789ad639162019954ba80vboxsync NetAdpInstall_SOURCES = win/tools/VBoxNetAdpInstall.cpp
fbf482cad760a830bc8789ad639162019954ba80vboxsync NetAdpInstall_LIBS = \
fbf482cad760a830bc8789ad639162019954ba80vboxsync $(WinNetConfig_1_TARGET) \
fbf482cad760a830bc8789ad639162019954ba80vboxsync $(VBoxDrvCfg_1_TARGET) \
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/comsupp.lib \
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync $(PATH_SDK_WINPSDK_LIB)/WbemUuid.Lib
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync #
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync # NetAdpUninstall
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync #
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync PROGRAMS.win += NetAdpUninstall
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync NetAdpUninstall_TEMPLATE = VBOXR3STATIC
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync NetAdpUninstall_SDKS = WINPSDK W2K3DDK VBOX_NTDLL
f7c0f913c4c22ee18059ff97055442566d0f14a1vboxsync NetAdpUninstall_SOURCES = win/tools/VBoxNetAdpUninstall.cpp
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync NetAdpUninstall_LIBS = \
f7c0f913c4c22ee18059ff97055442566d0f14a1vboxsync $(WinNetConfig_1_TARGET) \
f7c0f913c4c22ee18059ff97055442566d0f14a1vboxsync $(VBoxDrvCfg_1_TARGET) \
f7c0f913c4c22ee18059ff97055442566d0f14a1vboxsync $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/comsupp.lib \
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync $(PATH_SDK_WINPSDK_LIB)/WbemUuid.Lib
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync #
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync # VBoxNetFltNobj
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync #
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync DLLS.win += VBoxNetFltNobj
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync VBoxNetFltNobj_TEMPLATE = VBOXR3STATIC
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync if defined(VBOX_SIGNING_MODE)
d5bf937d132098565e18a0d1fc408fb777c5e5b6vboxsync VBoxNetFltNobj_INSTTYPE = none
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync VBoxNetFltNobj_DEBUG_INSTTYPE = both
d5bf937d132098565e18a0d1fc408fb777c5e5b6vboxsync endif
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync VBoxNetFltNobj_SDKS = WINPSDK W2K3DDK VBOX_NTDLL
468c2bcb36eb9a032f5dd0fcb34db10bd58e9996vboxsync VBoxNetFltNobj_DEFS = _WIN32_WINNT=0x0500 WIN32 _ATL_STATIC_REGISTRY
VBoxNetFltNobj_INCS = \
$(VBoxNetFltNobj_0_OUTDIR)
VBoxNetFltNobj_SOURCES = \
win/nobj/VBoxNetFltNobj.cpp \
win/nobj/VBoxNetFltNobj.def \
win/nobj/VBoxNetFltNobj.rc
VBoxNetFltNobj_LIBS = \
$(PATH_TOOL_$(VBOX_VCC_TOOL)_ATLMFC_LIB)/atls$(VBOX_VCC_CRT_TYPE).lib
#VBoxNetFltNobj_INTERMEDIATES =
VBoxNetFltNobj_DEPS = \
$(VBoxNetFltNobj_0_OUTDIR)/VBoxNetFltNobjT_i.c \
$(VBoxNetFltNobj_0_OUTDIR)/VBoxNetFltNobjT_p.c \
$(VBoxNetFltNobj_0_OUTDIR)/VBoxNetFltNobjT.h \
$(VBoxNetFltNobj_0_OUTDIR)/dlldata.c \
$(VBoxNetFltNobj_0_OUTDIR)/VBoxNetFltNobjT.tlb
VBoxNetFltNobj_CLEAN = $(VBoxNetFltNobj_DEPS)
VBOXNETFLT_NOBJ_IDL ?= $(EXEC_X86_WIN32) $(call VBOX_FN_MAKE_WIN_PATH,$(firstword $(wildcard \
$(PATH_SDK_WINPSDK_BIN)/Midl.Exe\
$(PATH_SDK_WINPSDK)/Bin/Midl.Exe\
$(PATH_DEVTOOLS)/win.x86/bin/midl.exe\
) Sorry_Cannot_Find_The_Midl_Compiler_In_The_PSDK))
$$(VBoxNetFltNobj_0_OUTDIR)/VBoxNetFltNobjT_i.c \
+ $$(VBoxNetFltNobj_0_OUTDIR)/VBoxNetFltNobjT_p.c \
+ $$(VBoxNetFltNobj_0_OUTDIR)/VBoxNetFltNobjT.h \
+ $$(VBoxNetFltNobj_0_OUTDIR)/dlldata.c \
+ $$(VBoxNetFltNobj_0_OUTDIR)/VBoxNetFltNobjT.tlb: \
$(PATH_SUB_CURRENT)/win/nobj/VBoxNetFltNobjT.idl \
| $$(dir $$@)
$(VBOXNETFLT_NOBJ_IDL) /nologo \
/out $(call VBOX_FN_MAKE_WIN_PATH,$(VBoxNetFltNobj_0_OUTDIR)) \
/cpp_cmd $(subst $(EXEC_X86_WIN32),,$(call VBOX_FN_MAKE_WIN_PATH,$(TOOL_$(VBOX_VCC_TOOL)_CC))) \
$(addprefix /I , $(call VBOX_FN_MAKE_WIN_PATH,$(SDK_W2K3DDK_INCS))) \
$(call VBOX_FN_MAKE_WIN_PATH,$<)
#
# VBoxNetAdp.sys - The VirtualBox Adapter miniport driver.
#
SYSMODS.win += VBoxNetAdp
VBoxNetAdp_TEMPLATE = VBOXR0DRV
#VBoxNetAdp_INST = $(INST_VBOXNETADP)
if defined(VBOX_SIGNING_MODE)
VBoxNetAdp_INSTTYPE = none
VBoxNetAdp_DEBUG_INSTTYPE = both
endif
VBoxNetAdp_DEFS = IN_RT_R0 IN_SUP_STATIC
VBoxNetAdp_INCS := $(PATH_SUB_CURRENT)
VBoxNetAdp_SDKS = WINDDKWLH WINPSDKINCS
VBoxNetAdp_SOURCES = \
VBoxNetFlt.c \
win/drv/VBoxNetFltM-win.cpp \
win/drv/VBoxNetFltRt-win.cpp \
win/drv/VBoxNetFlt-win.rc
VBoxNetAdp_DEFS += VBOXNETFLT_STATIC_CONFIG VBOXNETADP
VBoxNetAdp_DEFS.win += VBOXNETFLT_NO_PACKET_QUEUE
VBoxNetAdp_DEFS += NDIS_MINIPORT_DRIVER NDIS_WDM=1 BINARY_COMPATIBLE=0
VBoxNetAdp_DEFS += NDIS50_MINIPORT=1 NDIS50=1
VBoxNetAdp_LDFLAGS.win.x86 = -Entry:DriverEntry@8
VBoxNetAdp_LDFLAGS.win.amd64 = -Entry:DriverEntry
VBoxNetAdp_LIBS.win = \
$(PATH_SDK_W2K3DDK_LIB)/ntoskrnl.lib \
$(PATH_SDK_W2K3DDK_LIB)/hal.lib \
$(PATH_SDK_W2K3DDK_LIB)/ndis.lib \
$(PATH_STAGE_LIB)/RuntimeR0Drv$(VBOX_SUFF_LIB)
VBoxNetAdp_LIBS = \
$(PATH_STAGE_LIB)/SUPR0IdcClient$(VBOX_SUFF_LIB)
INSTALLS.win += VBoxNetAdp-inf
VBoxNetAdp-inf_INST = $(INST_BIN)
VBoxNetAdp-inf_MODE = a+r,u+w
VBoxNetAdp-inf_SOURCES = \
$(PATH_TARGET)/VBoxNetAdpCat.dir/VBoxNetAdp.inf
VBoxNetAdp-inf_CLEAN = $(VBoxNetAdp-inf_SOURCES)
VBoxNetAdp-inf_BLDDIRS = $(PATH_TARGET)/VBoxNetAdpCat.dir
$(PATH_TARGET)/VBoxNetAdpCat.dir/VBoxNetAdp.inf: $(PATH_SUB_CURRENT)/win/drv/VBoxNetAdp.inf $(MAKEFILE_CURRENT) | $$(dir $$@)
$(call MSG_GENERATE,VBoxNetAdp-inf,$@,$<)
$(call VBOX_EDIT_INF_FN,$<,$@)
ifdef VBOX_SIGNING_MODE
VBoxNetAdp-inf_SOURCES += \
$(PATH_TARGET)/VBoxNetAdpCat.dir/VBoxNetAdp.sys \
$(PATH_TARGET)/VBoxNetAdpCat.dir/VBoxNetAdp.cat
$(PATH_TARGET)/VBoxNetAdpCat.dir/VBoxNetAdp.sys: $$(VBoxNetAdp_1_TARGET) | $$(dir $$@)
$(INSTALL) -m 644 $< $(@D)
$(PATH_TARGET)/VBoxNetAdpCat.dir/VBoxNetAdp.cat: \
$(PATH_TARGET)/VBoxNetAdpCat.dir/VBoxNetAdp.sys \
$(PATH_TARGET)/VBoxNetAdpCat.dir/VBoxNetAdp.inf
$(call MSG_TOOL,Inf2Cat,VBoxNetFlt-inf,$@,$<)
$(call VBOX_MAKE_CAT_FN, $(@D),$@)
endif # ifdef VBOX_SIGNING_MODE
endif #ifeq ($(KBUILD_TARGET), win)
else if1of ($(KBUILD_TARGET), linux solaris freebsd) ## @todo merge this with the mixed case stuff.
#
# vboxnetflt(.ko/.o/) - The lower case driver.
# Note! On Solaris the name has to be <= 8 chars long.
#
ifdef VBOX_WITH_VBOXDRV
SYSMODS += vboxnetflt
vboxnetflt_TEMPLATE = VBOXR0DRV
vboxnetflt_NAME.solaris = vboxflt
vboxnetflt_DEFS.linux = KBUILD_MODNAME=KBUILD_STR\(vboxnetflt\) KBUILD_BASENAME=KBUILD_STR\(vboxnetflt\) MODULE
vboxnetflt_DEFS = IN_RT_R0
vboxnetflt_DEPS.solaris += $(VBOX_SVN_REV_KMK)
vboxnetflt_INCS.linux := \
$(PATH_ROOT)/src/VBox/Runtime/r0drv/linux
vboxnetflt_INCS := \
$(PATH_SUB_CURRENT)
vboxnetflt_LDFLAGS.solaris += -N drv/vboxdrv -N misc/ctf
vboxnetflt_LIBS = \
$(PATH_STAGE_LIB)/SUPR0IdcClient$(VBOX_SUFF_LIB)
## @todo vboxflt should resolves all the IPRT bits from vboxdrv.
#vboxnetflt_LIBS += \
# $(PATH_STAGE_LIB)/RuntimeR0Drv$(VBOX_SUFF_LIB)
vboxnetflt_SOURCES.linux = linux/VBoxNetFlt-linux.c
vboxnetflt_SOURCES.solaris = solaris/VBoxNetFlt-solaris.c
vboxnetflt_SOURCES.freebsd = freebsd/VBoxNetFlt-freebsd.c
vboxnetflt_SOURCES = VBoxNetFlt.c
solaris/VBoxNetFlt-solaris.c_DEFS = VBOX_SVN_REV=$(VBOX_SVN_REV)
ifdef VBOX_WITH_NETFLT_CROSSBOW
SYSMODS += vboxnetbow
vboxnetbow_TEMPLATE = VBOXR0DRV
vboxnetbow_NAME = vboxbow
vboxnetbow_DEFS = vboxnetflt_DEFS VBOX_WITH_NETFLT_CROSSBOW
vboxnetbow_INCS := $(PATH_SUB_CURRENT)
vboxnetbow_LDFLAGS += -N drv/vboxdrv -N drv/vnic -N misc/mac -N misc/dls
vboxnetbow_LIBS = \
$(PATH_STAGE_LIB)/SUPR0IdcClient$(VBOX_SUFF_LIB)
vboxnetbow_SOURCES.solaris = solaris/VBoxNetFltBow-solaris.c
vboxnetbow_SOURCES = VBoxNetFlt.c
solaris/VBoxNetFltBow-solaris.c_DEFS = VBOX_SVN_REV=$(VBOX_SVN_REV)
endif # VBOX_WITH_NETFLT_CROSSBOW
endif # VBOX_WITH_VBOXDRV
endif # to be removed.
ifeq ($(KBUILD_TARGET),linux)
#
# Install source files for compilation on Linux.
# files_vboxnetflt defines VBOX_VBOXNETFLT_SOURCES.
#
include $(PATH_SUB_CURRENT)/linux/files_vboxnetflt
INSTALLS += VBoxNetFlt-src VBoxNetFlt-sh
VBoxNetFlt-src_INST = bin/src/vboxnetflt/
VBoxNetFlt-src_SOURCES = \
$(subst $(DQUOTE),,$(VBOX_VBOXNETFLT_SOURCES)) \
$(VBoxNetFlt-src_0_OUTDIR)/Makefile
VBoxNetFlt-src_EXEC_SOURCES = \
$(PATH_ROOT)/src/VBox/HostDrivers/linux/do_Module.symvers
VBoxNetFlt-src_CLEAN = \
$(VBoxNetFlt-src_0_OUTDIR)/Makefile \
$(PATH_TARGET)/VBoxNetFlt-src-1.dep \
# Scripts needed for building the kernel module.
includedep $(PATH_TARGET)/VBoxNetFlt-src-1.dep
$$(VBoxNetFlt-src_0_OUTDIR)/Makefile: \
$(PATH_SUB_CURRENT)/linux/Makefile \
$$(if $$(eq $$(VBoxNetFlt/linux/Makefile_VBOX_HARDENED),$$(VBOX_WITH_HARDENING)),,FORCE) \
| $$(dir $$@)
$(QUIET)$(RM) -f -- $@
ifndef VBOX_WITH_HARDENING
$(QUIET)$(SED) -e "s;-DVBOX_WITH_HARDENING;;g" --output $@ $<
else
$(QUIET)$(CP) -f $< $@
endif
%$(QUIET2)$(RM) -f -- $(PATH_TARGET)/VBoxNetFlt-src-1.dep
%$(QUIET2)$(APPEND) '$(PATH_TARGET)/VBoxNetFlt-src-1.dep' 'VBoxNetFlt/linux/Makefile_VBOX_HARDENED=$(VBOX_WITH_HARDENING)'
endif # linux
# Gross hack for FreeBSD 7, should figure this out properly
## @todo Properly generate opt_netgraph.h
ifeq ($(KBUILD_TARGET),freebsd)
vboxnetflt_DEPS.freebsd += $(PATH_OUT)/opt_netgraph.h
$(PATH_OUT)/opt_netgraph.h:
echo > $(PATH_OUT)/opt_netgraph.h
#
# Install source files for compilation on FreeBSD.
# files_vboxnetflt defines VBOX_VBOXNETFLT_SOURCES.
#
include $(PATH_SUB_CURRENT)/freebsd/files_vboxnetflt
INSTALLS += VBoxNetFlt-src
VBoxNetFlt-src_INST = bin/src/vboxnetflt/
VBoxNetFlt-src_SOURCES = \
$(subst $(DQUOTE),,$(VBOX_VBOXNETFLT_SOURCES)) \
$(VBoxNetFlt-src_0_OUTDIR)/Makefile
VBoxNetFlt-src_CLEAN = \
$(VBoxNetFlt-src_0_OUTDIR)/Makefile \
$$(VBoxNetFlt-src_0_OUTDIR)/Makefile: \
$(PATH_SUB_CURRENT)/freebsd/Makefile \
$$(if $$(eq $$(VBoxNetFlt/freebsd/Makefile_VBOX_HARDENED),$$(VBOX_WITH_HARDENING)),,FORCE) \
| $$(dir $$@)
$(QUIET)$(RM) -f -- $@
$(QUIET)$(CP) -f $< $@
ifndef VBOX_WITH_HARDENING
$(QUIET)$(SED) -e "s;-DVBOX_WITH_HARDENING;;g" --output $@.tmp $@
${QUIET}$(MV) -f $@.tmp $@
endif
ifndef VBOX_WITH_NETFLT_VIMAGE
$(QUIET)$(SED) -e "s;-DVIMAGE;;g" --output $@.tmp $@
${QUIET}$(MV) -f $@.tmp $@
endif
endif # freebsd
include $(KBUILD_PATH)/subfooter.kmk