summaryrefslogtreecommitdiffstats
path: root/src/VBox/HostDrivers/VBoxUSB/darwin/Makefile.kmk
blob: 435b89f48ade56fc9dfc0fc0b5fe67d5183dd2a4 (plain)
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# $Id: Makefile.kmk $
## @file
# Sub-Makefile for the Darwin VBoxUSB kernel extension.
#

#
# Copyright (C) 2006-2019 Oracle Corporation
#
# This file is part of VirtualBox Open Source Edition (OSE), as
# available from http://www.virtualbox.org. This file is free software;
# you can redistribute it and/or modify it under the terms of the GNU
# General Public License (GPL) as published by the Free Software
# Foundation, in version 2 as it comes in the "COPYING" file of the
# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
#
# The contents of this file may alternatively be used under the terms
# of the Common Development and Distribution License Version 1.0
# (CDDL) only, as it comes in the "COPYING.CDDL" file of the
# VirtualBox OSE distribution, in which case the provisions of the
# CDDL are applicable instead of those of the GPL.
#
# You may elect to license modified versions of this file under the
# terms and conditions of either the GPL or the CDDL or both.
#

SUB_DEPTH = ../../../../..
include $(KBUILD_PATH)/subheader.kmk

#
# VBoxUSB.kext - The Darwin Kernel Extension.
#

# Leopard (x86) and Snow Leopard (x86/amd64)
SYSMODS.darwin       += VBoxUSB
VBoxUSB_TEMPLATE      = VBOXR0DRV
VBoxUSB_INST          = $(INST_VBOXUSB)Contents/MacOS/
VBoxUSB_DEBUG_INST.darwin = $(patsubst %/,%,$(INST_VBOXUSB))
VBoxUSB_INCS          = \
	. \
	..
#VBoxUSB_LDFLAGS       = -v -Wl,-whyload -Wl,-v -Wl,-whatsloaded
VBoxUSB_SOURCES      := \
	VBoxUSB.cpp \
	../USBFilter.cpp \
	../VBoxUSBFilterMgr.cpp

INSTALLS += VBoxUSB.kext
VBoxUSB.kext_INST     = $(INST_VBOXUSB)Contents/
VBoxUSB.kext_SOURCES  = $(VBoxUSB.kext_0_OUTDIR)/Contents/Info.plist
VBoxUSB.kext_CLEAN    = $(VBoxUSB.kext_0_OUTDIR)/Contents/Info.plist
VBoxUSB.kext_BLDDIRS  = $(VBoxUSB.kext_0_OUTDIR)/Contents/

$$(VBoxUSB.kext_0_OUTDIR)/Contents/Info.plist: $(PATH_SUB_CURRENT)/Info.plist $(VBOX_VERSION_MK) | $$(dir $$@)
	$(call MSG_GENERATE,VBoxUSB,$@,$<)
	$(QUIET)$(RM) -f $@
	$(QUIET)$(SED) \
		-e 's/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g' \
		-e 's/@VBOX_VERSION_MAJOR@/$(VBOX_VERSION_MAJOR)/g' \
		-e 's/@VBOX_VERSION_MINOR@/$(VBOX_VERSION_MINOR)/g' \
		-e 's/@VBOX_VERSION_BUILD@/$(VBOX_VERSION_BUILD)/g' \
		-e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \
		-e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \
		-e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \
		--output $@ \
		$<

$(evalcall2 VBOX_TEST_SIGN_KEXT,VBoxUSB)

# Common manual loader script.
INSTALLS += ScriptsUSB
ScriptsUSB_INST     = $(INST_DIST)
ScriptsUSB_EXEC_SOURCES  = \
	loadusb.sh

ifdef VBOX_WITH_TESTCASES
#
# Testcase for doing some manual driver testing...
#
PROGRAMS += tstOpenUSBDev
tstOpenUSBDev_TEMPLATE = VBOXR3TSTEXE
tstOpenUSBDev_SOURCES = testcase/tstOpenUSBDev.cpp
tstOpenUSBDev_LDFLAGS = -framework CoreFoundation -framework IOKit
endif

include $(FILE_KBUILD_SUB_FOOTER)