Makefile.kmk revision 9d1274496c423743379ecfb581f623ccedd9ebee
de4157257515400c2c25373591135f110227b68cvboxsync# $Id$
de4157257515400c2c25373591135f110227b68cvboxsync## @file
de4157257515400c2c25373591135f110227b68cvboxsync# Sub-Makefile for the Network Filter Driver (VBoxNetFlt).
de4157257515400c2c25373591135f110227b68cvboxsync#
de4157257515400c2c25373591135f110227b68cvboxsync
de4157257515400c2c25373591135f110227b68cvboxsync#
de4157257515400c2c25373591135f110227b68cvboxsync# Copyright (C) 2008 Sun Microsystems, Inc.
de4157257515400c2c25373591135f110227b68cvboxsync#
d65680efa46fa49e8bf14e67b29b782510ff934cvboxsync# Sun Microsystems, Inc. confidential
d65680efa46fa49e8bf14e67b29b782510ff934cvboxsync# All rights reserved
de4157257515400c2c25373591135f110227b68cvboxsync#
de4157257515400c2c25373591135f110227b68cvboxsync
de4157257515400c2c25373591135f110227b68cvboxsyncSUB_DEPTH = ../../../..
de4157257515400c2c25373591135f110227b68cvboxsyncinclude $(KBUILD_PATH)/subheader.kmk
de4157257515400c2c25373591135f110227b68cvboxsync
de4157257515400c2c25373591135f110227b68cvboxsync
de4157257515400c2c25373591135f110227b68cvboxsyncif1of ($(KBUILD_TARGET), darwin win)
de4157257515400c2c25373591135f110227b68cvboxsync#
de4157257515400c2c25373591135f110227b68cvboxsync# VBoxNetFlt.sys - The mixed case driver.
de4157257515400c2c25373591135f110227b68cvboxsync#
de4157257515400c2c25373591135f110227b68cvboxsyncSYSMODS += VBoxNetFlt
de4157257515400c2c25373591135f110227b68cvboxsyncVBoxNetFlt_TEMPLATE = VBOXR0DRV
de4157257515400c2c25373591135f110227b68cvboxsyncVBoxNetFlt_INST = $(INST_VBOXNETFLT)$(if $(eq $(KBUILD_TARGET),darwin),Contents/MacOS/)
3186f45ef453b44e92adeddf57bae69632e2c66avboxsyncif defined(VBOX_SIGNING_MODE) && "$(KBUILD_TARGET)" == "win"
3186f45ef453b44e92adeddf57bae69632e2c66avboxsync VBoxNetFlt_NOINST = true
de4157257515400c2c25373591135f110227b68cvboxsyncendif
de4157257515400c2c25373591135f110227b68cvboxsyncVBoxNetFlt_DEFS = IN_RT_R0 VBOX_SVN_REV=$(VBOX_SVN_REV) IN_SUP_STATIC
de4157257515400c2c25373591135f110227b68cvboxsyncVBoxNetFlt_SDKS.win = W2K3DDK WINPSDKINCS
de4157257515400c2c25373591135f110227b68cvboxsyncVBoxNetFlt_INCS := $(PATH_SUB_CURRENT)
de4157257515400c2c25373591135f110227b68cvboxsyncVBoxNetFlt_SOURCES.darwin = darwin/VBoxNetFlt-darwin.cpp
de4157257515400c2c25373591135f110227b68cvboxsyncVBoxNetFlt_SOURCES.win = win/VBoxNetFlt-win.c win/VBoxNetFltPt-win.c win/VBoxNetFltNf-win.c win/VBoxNetFlt-win.rc
e006a5cefba44e778d2bfec179aa00b347b31ecfvboxsyncifdef VBOX_NETFLT_ONDEMAND_BIND
e006a5cefba44e778d2bfec179aa00b347b31ecfvboxsyncVBoxNetFlt_DEFS.win += VBOX_NETFLT_ONDEMAND_BIND
e006a5cefba44e778d2bfec179aa00b347b31ecfvboxsyncelse
de4157257515400c2c25373591135f110227b68cvboxsyncVBoxNetFlt_SOURCES.win += win/VBoxNetFltMp-win.c
de4157257515400c2c25373591135f110227b68cvboxsyncendif
de4157257515400c2c25373591135f110227b68cvboxsyncVBoxNetFlt_SOURCES = VBoxNetFlt.c
de4157257515400c2c25373591135f110227b68cvboxsyncVBoxNetFlt_LDFLAGS.darwin = -v -Wl,-whyload -Wl,-v -Wl,-whatsloaded
3bddd917f8743d7e0773c2872c497ca4dae57c78vboxsyncVBoxNetFlt_LDFLAGS.win.x86 = -Entry:DriverEntry@8
13ef4f36ce232d17f4738ffbc4ac21909898cc23vboxsyncVBoxNetFlt_LDFLAGS.win.amd64 = -Entry:DriverEntry
de4157257515400c2c25373591135f110227b68cvboxsyncVBoxNetFlt_SOURCES.win.amd64 += win/VBoxNetFltA-win.asm
de4157257515400c2c25373591135f110227b68cvboxsyncVBoxNetFlt_DEFS.win.amd64 += RT_WITH_W64_UNWIND_HACK
de4157257515400c2c25373591135f110227b68cvboxsyncVBoxNetFlt_LIBS.win = \
de4157257515400c2c25373591135f110227b68cvboxsync $(PATH_SDK_W2K3DDK_LIB)/ntoskrnl.lib \
de4157257515400c2c25373591135f110227b68cvboxsync $(PATH_SDK_W2K3DDK_LIB)/hal.lib \
de4157257515400c2c25373591135f110227b68cvboxsync $(PATH_SDK_W2K3DDK_LIB)/ndis.lib \
de4157257515400c2c25373591135f110227b68cvboxsync $(PATH_LIB)/RuntimeR0Drv$(VBOX_SUFF_LIB)
de4157257515400c2c25373591135f110227b68cvboxsyncVBoxNetFlt_LIBS = \
de4157257515400c2c25373591135f110227b68cvboxsync $(PATH_LIB)/SUPR0IdcClient$(VBOX_SUFF_LIB)
de4157257515400c2c25373591135f110227b68cvboxsync
3186f45ef453b44e92adeddf57bae69632e2c66avboxsync
3186f45ef453b44e92adeddf57bae69632e2c66avboxsync# Darwin extras.
de4157257515400c2c25373591135f110227b68cvboxsyncifeq ($(KBUILD_TARGET),darwin)
de4157257515400c2c25373591135f110227b68cvboxsyncINSTALLS += VBoxNetFlt.kext
3186f45ef453b44e92adeddf57bae69632e2c66avboxsyncVBoxNetFlt.kext_INST = $(INST_VBOXNETFLT)Contents/
de4157257515400c2c25373591135f110227b68cvboxsyncVBoxNetFlt.kext_SOURCES = \
3186f45ef453b44e92adeddf57bae69632e2c66avboxsync $(PATH_VBoxNetFlt.kext)/Info.plist
de4157257515400c2c25373591135f110227b68cvboxsyncVBoxNetFlt.kext_CLEAN = \
3186f45ef453b44e92adeddf57bae69632e2c66avboxsync $(PATH_VBoxNetFlt.kext)/Info.plist
de4157257515400c2c25373591135f110227b68cvboxsync
de4157257515400c2c25373591135f110227b68cvboxsync$$(PATH_VBoxNetFlt.kext)/Info.plist: $(PATH_SUB_CURRENT)/darwin/Info.plist $(VBOX_VERSION_MK) | $$(dir $$@)
de4157257515400c2c25373591135f110227b68cvboxsync $(call MSG_GENERATE,VBoxNetFlt,$@,$<)
de4157257515400c2c25373591135f110227b68cvboxsync $(xQUIET)$(RM) -f $@
de4157257515400c2c25373591135f110227b68cvboxsync $(xQUIET)$(SED) \
de4157257515400c2c25373591135f110227b68cvboxsync -e 's/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g' \
de4157257515400c2c25373591135f110227b68cvboxsync -e 's/@VBOX_VERSION_MAJOR@/$(VBOX_VERSION_MAJOR)/g' \
3186f45ef453b44e92adeddf57bae69632e2c66avboxsync -e 's/@VBOX_VERSION_MINOR@/$(VBOX_VERSION_MINOR)/g' \
3186f45ef453b44e92adeddf57bae69632e2c66avboxsync -e 's/@VBOX_VERSION_BUILD@/$(VBOX_VERSION_BUILD)/g' \
de4157257515400c2c25373591135f110227b68cvboxsync --output $@ \
de4157257515400c2c25373591135f110227b68cvboxsync $<
de4157257515400c2c25373591135f110227b68cvboxsync
de4157257515400c2c25373591135f110227b68cvboxsyncINSTALLS.darwin += Scripts-darwin
de4157257515400c2c25373591135f110227b68cvboxsyncScripts-darwin_INST = $(INST_DIST)
3186f45ef453b44e92adeddf57bae69632e2c66avboxsyncScripts-darwin_SOURCES = \
de4157257515400c2c25373591135f110227b68cvboxsync darwin/loadnetflt.sh
de4157257515400c2c25373591135f110227b68cvboxsyncendif # darwin
de4157257515400c2c25373591135f110227b68cvboxsync
de4157257515400c2c25373591135f110227b68cvboxsync
de4157257515400c2c25373591135f110227b68cvboxsync# Windows extras.
de4157257515400c2c25373591135f110227b68cvboxsyncINSTALLS.win += VBoxNetFlt-inf
de4157257515400c2c25373591135f110227b68cvboxsyncVBoxNetFlt-inf_INST = $(INST_BIN)
de4157257515400c2c25373591135f110227b68cvboxsyncVBoxNetFlt-inf_MODE = a+r,u+w
3186f45ef453b44e92adeddf57bae69632e2c66avboxsyncVBoxNetFlt-inf_SOURCES = \
de4157257515400c2c25373591135f110227b68cvboxsync $(PATH_TARGET)/VBoxNetFltCat.dir/VBoxNetFlt.inf \
de4157257515400c2c25373591135f110227b68cvboxsync $(PATH_TARGET)/VBoxNetFltCat.dir/VBoxNetFlt_m.inf
de4157257515400c2c25373591135f110227b68cvboxsyncVBoxNetFlt-inf_CLEAN = $(VBoxNetFlt-inf_SOURCES)
3186f45ef453b44e92adeddf57bae69632e2c66avboxsyncVBoxNetFlt-inf_BLDDIRS = $(PATH_TARGET)/VBoxNetFltCat.dir
de4157257515400c2c25373591135f110227b68cvboxsync
de4157257515400c2c25373591135f110227b68cvboxsync$(PATH_TARGET)/VBoxNetFltCat.dir/VBoxNetFlt.inf: $(PATH_SUB_CURRENT)/win/VBoxNetFlt.inf $(MAKEFILE_CURRENT) | $$(dir $$@)
de4157257515400c2c25373591135f110227b68cvboxsync $(call MSG_GENERATE,VBoxNetFlt-inf,$@,$<)
3186f45ef453b44e92adeddf57bae69632e2c66avboxsync $(call VBOX_EDIT_INF_FN,$<,$@)
de4157257515400c2c25373591135f110227b68cvboxsync
de4157257515400c2c25373591135f110227b68cvboxsync$(PATH_TARGET)/VBoxNetFltCat.dir/VBoxNetFlt_m.inf: $(PATH_SUB_CURRENT)/win/VBoxNetFlt_m.inf $(MAKEFILE_CURRENT) | $$(dir $$@)
de4157257515400c2c25373591135f110227b68cvboxsync $(call MSG_GENERATE,VBoxNetFlt-inf,$@,$<)
de4157257515400c2c25373591135f110227b68cvboxsync $(call VBOX_EDIT_INF_FN,$<,$@)
de4157257515400c2c25373591135f110227b68cvboxsync
de4157257515400c2c25373591135f110227b68cvboxsync ifdef VBOX_SIGNING_MODE
de4157257515400c2c25373591135f110227b68cvboxsyncVBoxNetFlt-inf_SOURCES += \
de4157257515400c2c25373591135f110227b68cvboxsync $(PATH_TARGET)/VBoxNetFltCat.dir/VBoxNetFlt.sys \
3186f45ef453b44e92adeddf57bae69632e2c66avboxsync $(PATH_TARGET)/VBoxNetFltCat.dir/VBoxNetFlt.cat
de4157257515400c2c25373591135f110227b68cvboxsync
de4157257515400c2c25373591135f110227b68cvboxsync$(PATH_TARGET)/VBoxNetFltCat.dir/VBoxNetFlt.sys: $$(TARGET_VBoxNetFlt) | $$(dir $$@)
de4157257515400c2c25373591135f110227b68cvboxsync $(INSTALL) -m 644 $< $(@D)
de4157257515400c2c25373591135f110227b68cvboxsync
12f396dcead341183a9cb63a10cd485c1606554dvboxsync$(PATH_TARGET)/VBoxNetFltCat.dir/VBoxNetFlt.cat: \
de4157257515400c2c25373591135f110227b68cvboxsync $(PATH_TARGET)/VBoxNetFltCat.dir/VBoxNetFlt.inf \
de4157257515400c2c25373591135f110227b68cvboxsync $(PATH_TARGET)/VBoxNetFltCat.dir/VBoxNetFlt_m.inf \
de4157257515400c2c25373591135f110227b68cvboxsync $(PATH_TARGET)/VBoxNetFltCat.dir/VBoxNetFlt.cat
de4157257515400c2c25373591135f110227b68cvboxsync $(call MSG_TOOL,Inf2Cat,VBoxNetFlt-inf,$@,$<)
de4157257515400c2c25373591135f110227b68cvboxsync $(call VBOX_MAKE_CAT_FN, $(@D),$@)
de4157257515400c2c25373591135f110227b68cvboxsync endif # signing
de4157257515400c2c25373591135f110227b68cvboxsync
de4157257515400c2c25373591135f110227b68cvboxsync
de4157257515400c2c25373591135f110227b68cvboxsyncelse if1of ($(KBUILD_TARGET), linux solaris)
de4157257515400c2c25373591135f110227b68cvboxsync#
de4157257515400c2c25373591135f110227b68cvboxsync# vboxnetflt(.ko/.o/) - The lower case driver.
de4157257515400c2c25373591135f110227b68cvboxsync# Note! On Solaris the name has to be <= 8 chars long.
de4157257515400c2c25373591135f110227b68cvboxsync#
de4157257515400c2c25373591135f110227b68cvboxsyncSYSMODS += vboxnetflt
de4157257515400c2c25373591135f110227b68cvboxsyncvboxnetflt_TEMPLATE = VBOXR0DRV
de4157257515400c2c25373591135f110227b68cvboxsyncvboxnetflt_NAME.solaris = vboxflt
de4157257515400c2c25373591135f110227b68cvboxsyncvboxnetflt_DEFS.linux = KBUILD_MODNAME=KBUILD_STR\(vboxnetflt\) KBUILD_BASENAME=KBUILD_STR\(vboxnetflt\) MODULE
de4157257515400c2c25373591135f110227b68cvboxsyncvboxnetflt_DEFS = IN_RT_R0
de4157257515400c2c25373591135f110227b68cvboxsyncvboxnetflt_DEFS.solaris += VBOX_SVN_REV=$(VBOX_SVN_REV)
de4157257515400c2c25373591135f110227b68cvboxsyncvboxnetflt_DEPS.solaris += $(VBOX_SVN_REV_KMK)
de4157257515400c2c25373591135f110227b68cvboxsyncvboxnetflt_INCS.linux := \
de4157257515400c2c25373591135f110227b68cvboxsync $(PATH_ROOT)/src/VBox/Runtime/r0drv/linux
de4157257515400c2c25373591135f110227b68cvboxsyncvboxnetflt_INCS := \
a9d11b1adac24249df39e0db5f8c402a8cb6d9f5vboxsync $(PATH_SUB_CURRENT)
a9d11b1adac24249df39e0db5f8c402a8cb6d9f5vboxsyncvboxnetflt_LDFLAGS.solaris += -N drv/vboxdrv
a9d11b1adac24249df39e0db5f8c402a8cb6d9f5vboxsyncvboxnetflt_LIBS = \
de4157257515400c2c25373591135f110227b68cvboxsync $(PATH_LIB)/SUPR0IdcClient$(VBOX_SUFF_LIB)
de4157257515400c2c25373591135f110227b68cvboxsync## @todo vboxflt should resolves all the IPRT bits from vboxdrv.
de4157257515400c2c25373591135f110227b68cvboxsyncvboxnetflt_LIBS += \
de4157257515400c2c25373591135f110227b68cvboxsync $(PATH_LIB)/RuntimeR0Drv$(VBOX_SUFF_LIB)
de4157257515400c2c25373591135f110227b68cvboxsyncvboxnetflt_SOURCES.linux = linux/VBoxNetFlt-linux.c
de4157257515400c2c25373591135f110227b68cvboxsyncvboxnetflt_SOURCES.solaris = solaris/VBoxNetFlt-solaris.c
de4157257515400c2c25373591135f110227b68cvboxsyncvboxnetflt_SOURCES = VBoxNetFlt.c
de4157257515400c2c25373591135f110227b68cvboxsync
endif
include $(KBUILD_PATH)/subfooter.kmk