65acc9a737d682ad726d06327bf6f6ecc6eb7e83vboxsync# $Id$
65acc9a737d682ad726d06327bf6f6ecc6eb7e83vboxsync## @file
65acc9a737d682ad726d06327bf6f6ecc6eb7e83vboxsync# Sub-Makefile for the Network Adapter Driver (VBoxNetAdp).
65acc9a737d682ad726d06327bf6f6ecc6eb7e83vboxsync#
65acc9a737d682ad726d06327bf6f6ecc6eb7e83vboxsync
65acc9a737d682ad726d06327bf6f6ecc6eb7e83vboxsync#
772269936494ffaddd0750ba9e28e805ba81398cvboxsync# Copyright (C) 2009-2012 Oracle Corporation
65acc9a737d682ad726d06327bf6f6ecc6eb7e83vboxsync#
65acc9a737d682ad726d06327bf6f6ecc6eb7e83vboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
65acc9a737d682ad726d06327bf6f6ecc6eb7e83vboxsync# available from http://www.virtualbox.org. This file is free software;
65acc9a737d682ad726d06327bf6f6ecc6eb7e83vboxsync# you can redistribute it and/or modify it under the terms of the GNU
65acc9a737d682ad726d06327bf6f6ecc6eb7e83vboxsync# General Public License (GPL) as published by the Free Software
65acc9a737d682ad726d06327bf6f6ecc6eb7e83vboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
65acc9a737d682ad726d06327bf6f6ecc6eb7e83vboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
65acc9a737d682ad726d06327bf6f6ecc6eb7e83vboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
65acc9a737d682ad726d06327bf6f6ecc6eb7e83vboxsync#
65acc9a737d682ad726d06327bf6f6ecc6eb7e83vboxsync
65acc9a737d682ad726d06327bf6f6ecc6eb7e83vboxsyncSUB_DEPTH = ../../../..
772269936494ffaddd0750ba9e28e805ba81398cvboxsyncinclude $(KBUILD_PATH)/subheader.kmk
f86f2dc613a22ee06add9b878197922466df641bvboxsync
05f96de6c3d830f3008119aee971aa7fdd728dabvboxsyncif1of ($(KBUILD_TARGET), solaris darwin linux freebsd)
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync #
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync # VBoxNetAdp - Virtual Network Adapter
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync # Note! On Solaris the name has to be <= 8 chars long.
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync #
65acc9a737d682ad726d06327bf6f6ecc6eb7e83vboxsync ifdef VBOX_WITH_VBOXDRV
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync SYSMODS += VBoxNetAdp
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync VBoxNetAdp_TEMPLATE = VBOXR0DRV
78bdce9b23466b28a538c6e2f69c225d1393eb3bvboxsync VBoxNetAdp_INST = $(INST_VBOXNETADP)$(if $(eq $(KBUILD_TARGET),darwin),Contents/MacOS/)
78bdce9b23466b28a538c6e2f69c225d1393eb3bvboxsync VBoxNetAdp_DEBUG_INST.darwin= $(patsubst %/,%,$(INST_VBOXNETADP))
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync VBoxNetAdp_NAME.solaris = vboxnet
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync VBoxNetAdp_NAME.linux = vboxnetadp
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync VBoxNetAdp_NAME.freebsd = vboxnetadp
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync VBoxNetAdp_DEPS.solaris += $(VBOX_SVN_REV_KMK)
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync VBoxNetAdp_DEFS = IN_RT_R0 VBOX_SVN_REV=$(VBOX_SVN_REV) IN_SUP_STATIC
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync VBoxNetAdp_DEFS.linux = KBUILD_MODNAME=KBUILD_STR\(vboxnetadp\) KBUILD_BASENAME=KBUILD_STR\(vboxnetadp\) MODULE
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync #VBoxNetAdp_LDFLAGS.darwin = -v -Wl,-whyload -Wl,-v -Wl,-whatsloaded
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync VBoxNetAdp_LDFLAGS.solaris += -N misc/gld -N drv/vboxdrv
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync VBoxNetAdp_INCS.linux := \
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync $(PATH_ROOT)/src/VBox/Runtime/r0drv/linux
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync VBoxNetAdp_INCS = \
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync .
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync VBoxNetAdp_SOURCES.darwin = \
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync darwin/VBoxNetAdp-darwin.cpp \
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync VBoxNetAdp.c
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync VBoxNetAdp_SOURCES.solaris = \
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync solaris/VBoxNetAdp-solaris.c
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync VBoxNetAdp_SOURCES.linux = \
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync linux/VBoxNetAdp-linux.c \
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync VBoxNetAdp.c
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync VBoxNetAdp_SOURCES.freebsd = \
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync freebsd/VBoxNetAdp-freebsd.c \
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync VBoxNetAdp.c
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync VBoxNetAdp_SOURCES =
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync #VBoxNetAdp_SOURCES = \
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync # VBoxNetAdp.c
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync VBoxNetAdp_LIBS += \
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync $(PATH_STAGE_LIB)/SUPR0IdcClient$(VBOX_SUFF_LIB)
65acc9a737d682ad726d06327bf6f6ecc6eb7e83vboxsync endif
65acc9a737d682ad726d06327bf6f6ecc6eb7e83vboxsyncendif
65acc9a737d682ad726d06327bf6f6ecc6eb7e83vboxsync
334052e6de7b55199f6159fa6dfe5bf19591f12bvboxsync#
f86f2dc613a22ee06add9b878197922466df641bvboxsync# Darwin extras.
334052e6de7b55199f6159fa6dfe5bf19591f12bvboxsync#
f86f2dc613a22ee06add9b878197922466df641bvboxsyncifeq ($(KBUILD_TARGET),darwin)
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync INSTALLS += VBoxNetAdp.kext
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync VBoxNetAdp.kext_INST = $(INST_VBOXNETADP)Contents/
f1905632d2510aed1081fac4847d4e31942c0fcdvboxsync VBoxNetAdp.kext_SOURCES = $(VBoxNetAdp.kext_0_OUTDIR)/Contents/Info.plist
f1905632d2510aed1081fac4847d4e31942c0fcdvboxsync VBoxNetAdp.kext_CLEAN = $(VBoxNetAdp.kext_0_OUTDIR)/Contents/Info.plist
f1905632d2510aed1081fac4847d4e31942c0fcdvboxsync VBoxNetAdp.kext_BLDDIRS = $(VBoxNetAdp.kext_0_OUTDIR)/Contents/
f86f2dc613a22ee06add9b878197922466df641bvboxsync
f1905632d2510aed1081fac4847d4e31942c0fcdvboxsync$$(VBoxNetAdp.kext_0_OUTDIR)/Contents/Info.plist: $(PATH_SUB_CURRENT)/darwin/Info.plist $(VBOX_VERSION_MK) | $$(dir $$@)
f86f2dc613a22ee06add9b878197922466df641bvboxsync $(call MSG_GENERATE,VBoxNetAdp,$@,$<)
03b6ba99f7d7ea26eb1f2b1a894a235b62c3b1d7vboxsync $(QUIET)$(RM) -f $@
03b6ba99f7d7ea26eb1f2b1a894a235b62c3b1d7vboxsync $(QUIET)$(SED) \
f86f2dc613a22ee06add9b878197922466df641bvboxsync -e 's/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g' \
f86f2dc613a22ee06add9b878197922466df641bvboxsync -e 's/@VBOX_VERSION_MAJOR@/$(VBOX_VERSION_MAJOR)/g' \
f86f2dc613a22ee06add9b878197922466df641bvboxsync -e 's/@VBOX_VERSION_MINOR@/$(VBOX_VERSION_MINOR)/g' \
f86f2dc613a22ee06add9b878197922466df641bvboxsync -e 's/@VBOX_VERSION_BUILD@/$(VBOX_VERSION_BUILD)/g' \
a50fbf5e37052d5105a3d5eb3e0a064d1e202920vboxsync -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \
a50fbf5e37052d5105a3d5eb3e0a064d1e202920vboxsync -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \
a50fbf5e37052d5105a3d5eb3e0a064d1e202920vboxsync -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \
f86f2dc613a22ee06add9b878197922466df641bvboxsync --output $@ \
f86f2dc613a22ee06add9b878197922466df641bvboxsync $<
f86f2dc613a22ee06add9b878197922466df641bvboxsync
f1905632d2510aed1081fac4847d4e31942c0fcdvboxsync $(evalcall2 VBOX_TEST_SIGN_KEXT,VBoxNetAdp)
f1905632d2510aed1081fac4847d4e31942c0fcdvboxsync
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync INSTALLS.darwin += Scripts-darwin-adp
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync Scripts-darwin-adp_INST = $(INST_DIST)
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync Scripts-darwin-adp_EXEC_SOURCES = \
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync darwin/loadnetadp.sh
f86f2dc613a22ee06add9b878197922466df641bvboxsyncendif # darwin
f86f2dc613a22ee06add9b878197922466df641bvboxsync
6a008ce8150c1391d9e0dda0cdf9485b3c806034vboxsyncifeq ($(KBUILD_TARGET),linux)
6a008ce8150c1391d9e0dda0cdf9485b3c806034vboxsync #
ad27e1d5e48ca41245120c331cc88b50464813cevboxsync # Install source files for compilation on Linux.
6a008ce8150c1391d9e0dda0cdf9485b3c806034vboxsync # files_vboxnetadp defines VBOX_VBOXNETADP_SOURCES.
6a008ce8150c1391d9e0dda0cdf9485b3c806034vboxsync #
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync INSTALLS += VBoxNetAdp-src
6a008ce8150c1391d9e0dda0cdf9485b3c806034vboxsync include $(PATH_SUB_CURRENT)/linux/files_vboxnetadp
6a008ce8150c1391d9e0dda0cdf9485b3c806034vboxsync VBoxNetAdp-src_INST = bin/src/vboxnetadp/
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync VBoxNetAdp-src_SOURCES = \
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync $(subst $(DQUOTE),,$(VBOX_VBOXNETADP_SOURCES)) \
bbc0a3fc49446bf8fa1fcfe669c10875701692bcvboxsync $(VBoxNetAdp-src_0_OUTDIR)/Makefile
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync VBoxNetAdp-src_EXEC_SOURCES = \
c04c59898d189a1cec4f3de89f60da653358762evboxsync $(PATH_ROOT)/src/VBox/HostDrivers/linux/do_Module.symvers
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync VBoxNetAdp-src_CLEAN = \
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync $(VBoxNetAdp-src_0_OUTDIR)/Makefile \
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync $(PATH_TARGET)/VBoxNetAdp-src-1.dep \
6a008ce8150c1391d9e0dda0cdf9485b3c806034vboxsync
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync # Scripts needed for building the kernel modules
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync includedep $(PATH_TARGET)/VBoxNetAdp-src-1.dep
bbc0a3fc49446bf8fa1fcfe669c10875701692bcvboxsync$$(VBoxNetAdp-src_0_OUTDIR)/Makefile: \
6a008ce8150c1391d9e0dda0cdf9485b3c806034vboxsync $(PATH_SUB_CURRENT)/linux/Makefile \
6a008ce8150c1391d9e0dda0cdf9485b3c806034vboxsync $$(if $$(eq $$(VBoxNetAdp/linux/Makefile_VBOX_HARDENED),$$(VBOX_WITH_HARDENING)),,FORCE) \
6a008ce8150c1391d9e0dda0cdf9485b3c806034vboxsync | $$(dir $$@)
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync $(QUIET)$(RM) -f -- $@
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync ifndef VBOX_WITH_HARDENING
6a008ce8150c1391d9e0dda0cdf9485b3c806034vboxsync $(QUIET)$(SED) -e "s;-DVBOX_WITH_HARDENING;;g" --output $@ $<
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync else
6a008ce8150c1391d9e0dda0cdf9485b3c806034vboxsync $(QUIET)$(CP) -f $< $@
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync endif
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync %$(QUIET2)$(APPEND) -t '$(PATH_TARGET)/VBoxNetAdp-src-1.dep' 'VBoxNetAdp/linux/Makefile_VBOX_HARDENED=$(VBOX_WITH_HARDENING)'
6a008ce8150c1391d9e0dda0cdf9485b3c806034vboxsync
6a008ce8150c1391d9e0dda0cdf9485b3c806034vboxsync
6a008ce8150c1391d9e0dda0cdf9485b3c806034vboxsyncendif # linux
6a008ce8150c1391d9e0dda0cdf9485b3c806034vboxsync
c366016ffe1788c6847d0a967a954713725cab5evboxsyncifeq ($(KBUILD_TARGET),freebsd)
c366016ffe1788c6847d0a967a954713725cab5evboxsync #
ad27e1d5e48ca41245120c331cc88b50464813cevboxsync # Install source files for compilation on FreeBSD.
c366016ffe1788c6847d0a967a954713725cab5evboxsync # files_vboxnetadp defines VBOX_VBOXNETADP_SOURCES.
c366016ffe1788c6847d0a967a954713725cab5evboxsync #
c366016ffe1788c6847d0a967a954713725cab5evboxsync INSTALLS += VBoxNetAdp-src
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync include $(PATH_SUB_CURRENT)/freebsd/files_vboxnetadp
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync VBoxNetAdp-src_INST = bin/src/vboxnetadp/
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync VBoxNetAdp-src_SOURCES = \
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync $(subst $(DQUOTE),,$(VBOX_VBOXNETADP_SOURCES)) \
bbc0a3fc49446bf8fa1fcfe669c10875701692bcvboxsync $(VBoxNetAdp-src_0_OUTDIR)/Makefile
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync VBoxNetAdp-src_CLEAN = \
bbc0a3fc49446bf8fa1fcfe669c10875701692bcvboxsync $(VBoxNetAdp-src_0_OUTDIR)/Makefile \
c366016ffe1788c6847d0a967a954713725cab5evboxsync
bbc0a3fc49446bf8fa1fcfe669c10875701692bcvboxsync$$(VBoxNetAdp-src_0_OUTDIR)/Makefile: \
c366016ffe1788c6847d0a967a954713725cab5evboxsync $(PATH_SUB_CURRENT)/freebsd/Makefile \
c366016ffe1788c6847d0a967a954713725cab5evboxsync $$(if $$(eq $$(VBoxNetAdp/freebsd/Makefile_VBOX_HARDENED),$$(VBOX_WITH_HARDENING)),,FORCE) \
c366016ffe1788c6847d0a967a954713725cab5evboxsync | $$(dir $$@)
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync $(QUIET)$(RM) -f -- $@
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync ifndef VBOX_WITH_HARDENING
c366016ffe1788c6847d0a967a954713725cab5evboxsync $(QUIET)$(SED) -e "s;-DVBOX_WITH_HARDENING;;g" --output $@ $<
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync else
c366016ffe1788c6847d0a967a954713725cab5evboxsync $(QUIET)$(CP) -f $< $@
2ff8e2b6836f4ddd408f5bf0b4377d566c55a46fvboxsync endif
c366016ffe1788c6847d0a967a954713725cab5evboxsync
c366016ffe1788c6847d0a967a954713725cab5evboxsyncendif # freebsd
c366016ffe1788c6847d0a967a954713725cab5evboxsync
772269936494ffaddd0750ba9e28e805ba81398cvboxsyncinclude $(FILE_KBUILD_SUB_FOOTER)
65acc9a737d682ad726d06327bf6f6ecc6eb7e83vboxsync