59190ecd61435d19ba3515b876272aee7bd12298vboxsync# $Id$
59190ecd61435d19ba3515b876272aee7bd12298vboxsync## @file
59190ecd61435d19ba3515b876272aee7bd12298vboxsync# Sub-Makefile for the Windows USB drivers.
59190ecd61435d19ba3515b876272aee7bd12298vboxsync#
59190ecd61435d19ba3515b876272aee7bd12298vboxsync
59190ecd61435d19ba3515b876272aee7bd12298vboxsync#
772269936494ffaddd0750ba9e28e805ba81398cvboxsync# Copyright (C) 2006-2012 Oracle Corporation
59190ecd61435d19ba3515b876272aee7bd12298vboxsync#
c55c68b6a3324172e9dc207926215845880b0f90vboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
c55c68b6a3324172e9dc207926215845880b0f90vboxsync# available from http://www.virtualbox.org. This file is free software;
c55c68b6a3324172e9dc207926215845880b0f90vboxsync# you can redistribute it and/or modify it under the terms of the GNU
c55c68b6a3324172e9dc207926215845880b0f90vboxsync# General Public License (GPL) as published by the Free Software
c55c68b6a3324172e9dc207926215845880b0f90vboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
c55c68b6a3324172e9dc207926215845880b0f90vboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
c55c68b6a3324172e9dc207926215845880b0f90vboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
59190ecd61435d19ba3515b876272aee7bd12298vboxsync#
59190ecd61435d19ba3515b876272aee7bd12298vboxsync
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncSUB_DEPTH = ../../../../..
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncinclude $(KBUILD_PATH)/subheader.kmk
59190ecd61435d19ba3515b876272aee7bd12298vboxsync
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncLIBRARIES.win += usbd
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncSYSMODS.win += VBoxUSB VBoxUSBMon
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncPROGRAMS.win += USBInstall USBUninstall USBTest
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncINSTALLS.win += install-infs
59190ecd61435d19ba3515b876272aee7bd12298vboxsync
59190ecd61435d19ba3515b876272aee7bd12298vboxsync#
59190ecd61435d19ba3515b876272aee7bd12298vboxsync# usbd
59190ecd61435d19ba3515b876272aee7bd12298vboxsync#
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncusbd_TEMPLATE = VBOXR0DRV
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncusbd_SOURCES = usbd/usbd.def
59190ecd61435d19ba3515b876272aee7bd12298vboxsync
59190ecd61435d19ba3515b876272aee7bd12298vboxsync#
59190ecd61435d19ba3515b876272aee7bd12298vboxsync# VBoxUSB
59190ecd61435d19ba3515b876272aee7bd12298vboxsync#
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncVBoxUSB_TEMPLATE = VBOXR0DRV
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncifdef VBOX_SIGNING_MODE
a5f487d264b5aebe8d28ad35d0353630bd2b77cdvboxsync VBoxUSB_INSTTYPE = none
a5f487d264b5aebe8d28ad35d0353630bd2b77cdvboxsync VBoxUSB_DEBUG_INSTTYPE = both
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncendif
7519a1c4323fa86fbb19a36a91cd25abfd7af714vboxsyncVBoxUSB_SDKS = ReorderCompilerIncs $(VBOX_WINDDK) $(VBOX_WINPSDK)INCS
85da04c2a4ab34e76410f9c1d83e2fa49800818cvboxsyncVBoxUSB_DEFS = IN_RT_R0 IN_SUP_R0 VBOX_DBG_LOG_NAME=\"USBDev\"
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncVBoxUSB_LDFLAGS.x86 = -Entry:DriverEntry@8
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncVBoxUSB_LDFLAGS.amd64 = -Entry:DriverEntry
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncVBoxUSB_SOURCES = \
df294ff29aab74013667896ef2d4f5bd1f782143vboxsync dev/VBoxUsbDev.cpp \
df294ff29aab74013667896ef2d4f5bd1f782143vboxsync dev/VBoxUsbRt.cpp \
df294ff29aab74013667896ef2d4f5bd1f782143vboxsync dev/VBoxUsbPnP.cpp \
df294ff29aab74013667896ef2d4f5bd1f782143vboxsync dev/VBoxUsbPwr.cpp \
df294ff29aab74013667896ef2d4f5bd1f782143vboxsync cmn/VBoxUsbTool.cpp \
df294ff29aab74013667896ef2d4f5bd1f782143vboxsync cmn/VBoxDrvTool.cpp \
df294ff29aab74013667896ef2d4f5bd1f782143vboxsync dev/VBoxUsbDev.rc
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncVBoxUSB_LIBS = \
7519a1c4323fa86fbb19a36a91cd25abfd7af714vboxsync $(PATH_SDK_$(VBOX_WINDDK)_LIB)/ntoskrnl.lib \
7519a1c4323fa86fbb19a36a91cd25abfd7af714vboxsync $(PATH_SDK_$(VBOX_WINDDK)_LIB)/hal.lib \
3b3bc8a9383a065307e540b83fc3a3d6c548a082vboxsync $(PATH_STAGE_LIB)/RuntimeR0Drv$(VBOX_SUFF_LIB) \
3c5e6cea6da936afaa10ccc57e7236ffa66ee82dvboxsync $(usbd_1_TARGET)
59190ecd61435d19ba3515b876272aee7bd12298vboxsync
59190ecd61435d19ba3515b876272aee7bd12298vboxsync#
59190ecd61435d19ba3515b876272aee7bd12298vboxsync# VBoxUSBMon
59190ecd61435d19ba3515b876272aee7bd12298vboxsync#
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncVBoxUSBMon_TEMPLATE = VBOXR0DRV
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncifdef VBOX_SIGNING_MODE
a5f487d264b5aebe8d28ad35d0353630bd2b77cdvboxsync VBoxUSBMon_INSTTYPE = none
a5f487d264b5aebe8d28ad35d0353630bd2b77cdvboxsync VBoxUSBMon_DEBUG_INSTTYPE = both
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncendif
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncVBoxUSBMon_INCS := $(PATH_SUB_CURRENT)/..
7519a1c4323fa86fbb19a36a91cd25abfd7af714vboxsyncVBoxUSBMon_SDKS = ReorderCompilerIncs $(VBOX_WINDDK) $(VBOX_WINPSDK)INCS
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncVBoxUSBMon_DEFS = IN_RT_R0 IN_SUP_R0 i386=1 STD_CALL CONDITION_HANDLING=1 NT_INST=0 \
59190ecd61435d19ba3515b876272aee7bd12298vboxsync WIN32=100 _NT1X_=100 WINNT=1 _WIN32_WINNT=0x0501 WINVER=0x0501 _WIN32_IE=0x0600 WIN32_LEAN_AND_MEAN=1 \
85da04c2a4ab34e76410f9c1d83e2fa49800818cvboxsync VBOXUSBFILTERMGR_USB_SPINLOCK VBOX_DBG_LOG_NAME=\"USBMon\"
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncVBoxUSBMon_LDFLAGS.x86 = -Entry:DriverEntry@8
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncVBoxUSBMon_LDFLAGS.amd64 = -Entry:DriverEntry
df294ff29aab74013667896ef2d4f5bd1f782143vboxsyncifdef VBOX_USBMON_WITH_FILTER_AUTOAPPLY
df294ff29aab74013667896ef2d4f5bd1f782143vboxsync VBoxUSBMon_DEFS += VBOX_USBMON_WITH_FILTER_AUTOAPPLY
df294ff29aab74013667896ef2d4f5bd1f782143vboxsyncendif
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncVBoxUSBMon_SOURCES = \
df294ff29aab74013667896ef2d4f5bd1f782143vboxsync mon/VBoxUsbMon.cpp \
df294ff29aab74013667896ef2d4f5bd1f782143vboxsync mon/VBoxUsbFlt.cpp \
df294ff29aab74013667896ef2d4f5bd1f782143vboxsync mon/VBoxUsbHook.cpp \
df294ff29aab74013667896ef2d4f5bd1f782143vboxsync cmn/VBoxUsbTool.cpp \
df294ff29aab74013667896ef2d4f5bd1f782143vboxsync cmn/VBoxDrvTool.cpp \
59190ecd61435d19ba3515b876272aee7bd12298vboxsync ../USBFilter.cpp \
59190ecd61435d19ba3515b876272aee7bd12298vboxsync ../VBoxUSBFilterMgr.cpp \
df294ff29aab74013667896ef2d4f5bd1f782143vboxsync mon/VBoxUsbMon.rc
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncVBoxUSBMon_LIBS = \
7519a1c4323fa86fbb19a36a91cd25abfd7af714vboxsync $(PATH_SDK_$(VBOX_WINDDK)_LIB)/ntoskrnl.lib \
7519a1c4323fa86fbb19a36a91cd25abfd7af714vboxsync $(PATH_SDK_$(VBOX_WINDDK)_LIB)/hal.lib \
3b3bc8a9383a065307e540b83fc3a3d6c548a082vboxsync $(PATH_STAGE_LIB)/RuntimeR0Drv$(VBOX_SUFF_LIB) \
3c5e6cea6da936afaa10ccc57e7236ffa66ee82dvboxsync $(usbd_1_TARGET)
c3ff7bb9fc98bd4dbaa0e5247b1f46cd46a06ad7vboxsyncif1of ($(KBUILD_TYPE), debug)
85da04c2a4ab34e76410f9c1d83e2fa49800818cvboxsyncVBoxUSBMon_DEFS += LOG_ENABLED VBOX_USB_WITH_VERBOSE_LOGGING
c3ff7bb9fc98bd4dbaa0e5247b1f46cd46a06ad7vboxsyncendif
59190ecd61435d19ba3515b876272aee7bd12298vboxsync
59190ecd61435d19ba3515b876272aee7bd12298vboxsync#
59190ecd61435d19ba3515b876272aee7bd12298vboxsync# USBInstall
59190ecd61435d19ba3515b876272aee7bd12298vboxsync#
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncUSBInstall_TEMPLATE = VBOXR3EXE
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncUSBInstall_DEFS = IN_RT_R3
7519a1c4323fa86fbb19a36a91cd25abfd7af714vboxsyncUSBInstall_SDKS = ReorderCompilerIncs $(VBOX_WINPSDK) $(VBOX_WINDDK) VBOX_NTDLL
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncUSBInstall_CXXFLAGS = -Gz
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncUSBInstall_CFLAGS = -Gz
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncUSBInstall_SOURCES = \
59190ecd61435d19ba3515b876272aee7bd12298vboxsync Install/USBInstall.cpp
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncUSBInstall_LIBS = \
7519a1c4323fa86fbb19a36a91cd25abfd7af714vboxsync $(PATH_SDK_$(VBOX_WINDDK)_LIB)/newdev.lib \
59190ecd61435d19ba3515b876272aee7bd12298vboxsync $(LIB_RUNTIME) \
3b3bc8a9383a065307e540b83fc3a3d6c548a082vboxsync $(PATH_STAGE_LIB)/SUPR3$(VBOX_SUFF_LIB) \
7519a1c4323fa86fbb19a36a91cd25abfd7af714vboxsync $(PATH_STAGE_LIB)/VBoxDrvCfg$(VBOX_SUFF_LIB)
b0a3d0ec5780199a2f379da63c59ccf48f1a73b9vboxsync
59190ecd61435d19ba3515b876272aee7bd12298vboxsync
59190ecd61435d19ba3515b876272aee7bd12298vboxsync#
59190ecd61435d19ba3515b876272aee7bd12298vboxsync# USBUninstall
59190ecd61435d19ba3515b876272aee7bd12298vboxsync#
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncUSBUninstall_TEMPLATE = VBOXR3EXE
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncUSBUninstall_DEFS = IN_RT_R3
7519a1c4323fa86fbb19a36a91cd25abfd7af714vboxsyncUSBUninstall_SDKS = ReorderCompilerIncs $(VBOX_WINPSDK) $(VBOX_WINDDK) VBOX_NTDLL
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncUSBUninstall_CXXFLAGS = -Gz
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncUSBUninstall_CFLAGS = -Gz
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncUSBUninstall_SOURCES = \
59190ecd61435d19ba3515b876272aee7bd12298vboxsync Install/USBUninstall.cpp
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncUSBUninstall_LIBS = \
7519a1c4323fa86fbb19a36a91cd25abfd7af714vboxsync $(PATH_SDK_$(VBOX_WINDDK)_LIB)/newdev.lib \
59190ecd61435d19ba3515b876272aee7bd12298vboxsync $(LIB_RUNTIME) \
3b3bc8a9383a065307e540b83fc3a3d6c548a082vboxsync $(PATH_STAGE_LIB)/SUPR3$(VBOX_SUFF_LIB) \
7519a1c4323fa86fbb19a36a91cd25abfd7af714vboxsync $(PATH_STAGE_LIB)/VBoxDrvCfg$(VBOX_SUFF_LIB)
59190ecd61435d19ba3515b876272aee7bd12298vboxsync
59190ecd61435d19ba3515b876272aee7bd12298vboxsync#
59190ecd61435d19ba3515b876272aee7bd12298vboxsync# USBTest
59190ecd61435d19ba3515b876272aee7bd12298vboxsync#
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncUSBTest_TEMPLATE = VBOXR3EXE
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncUSBTest_DEFS = IN_RT_R3
7519a1c4323fa86fbb19a36a91cd25abfd7af714vboxsyncUSBTest_SDKS = ReorderCompilerIncs $(VBOX_WINPSDK) $(VBOX_WINDDK) VBOX_NTDLL
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncUSBTest_CXXFLAGS = -Gz
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncUSBTest_CFLAGS = -Gz
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncUSBTest_SOURCES = \
59190ecd61435d19ba3515b876272aee7bd12298vboxsync testcase/USBTest.cpp
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncUSBTest_LIBS = \
7519a1c4323fa86fbb19a36a91cd25abfd7af714vboxsync $(PATH_SDK_$(VBOX_WINDDK)_LIB)/newdev.lib \
59190ecd61435d19ba3515b876272aee7bd12298vboxsync $(LIB_RUNTIME) \
3b3bc8a9383a065307e540b83fc3a3d6c548a082vboxsync $(PATH_STAGE_LIB)/SUPR3$(VBOX_SUFF_LIB) \
7519a1c4323fa86fbb19a36a91cd25abfd7af714vboxsync $(PATH_STAGE_LIB)/VBoxDrvCfg$(VBOX_SUFF_LIB)
b0a3d0ec5780199a2f379da63c59ccf48f1a73b9vboxsync
59190ecd61435d19ba3515b876272aee7bd12298vboxsync#
59190ecd61435d19ba3515b876272aee7bd12298vboxsync# Install the INF files.
59190ecd61435d19ba3515b876272aee7bd12298vboxsync#
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncinstall-infs_INST = bin/
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncinstall-infs_MODE = a+r,u+w
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncinstall-infs_SOURCES = \
59190ecd61435d19ba3515b876272aee7bd12298vboxsync $(PATH_TARGET)/VBoxUSBCat.dir/VBoxUSB.inf \
59190ecd61435d19ba3515b876272aee7bd12298vboxsync $(PATH_TARGET)/VBoxUSBMonCat.dir/VBoxUSBMon.inf
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncinstall-infs_CLEAN = $(install-infs_SOURCES)
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncinstall-infs_BLDDIRS = \
59190ecd61435d19ba3515b876272aee7bd12298vboxsync $(PATH_TARGET)/VBoxUSBCat.dir \
59190ecd61435d19ba3515b876272aee7bd12298vboxsync $(PATH_TARGET)/VBoxUSBMonCat.dir
59190ecd61435d19ba3515b876272aee7bd12298vboxsync
df294ff29aab74013667896ef2d4f5bd1f782143vboxsync$(PATH_TARGET)/VBoxUSBCat.dir/VBoxUSB.inf: $(PATH_SUB_CURRENT)/dev/VBoxUSB.inf $(MAKEFILE_CURRENT) | $$(dir $$@)
59190ecd61435d19ba3515b876272aee7bd12298vboxsync $(call MSG_GENERATE,install-infs,$@,$<)
59190ecd61435d19ba3515b876272aee7bd12298vboxsync $(call VBOX_EDIT_INF_FN,$<,$@)
59190ecd61435d19ba3515b876272aee7bd12298vboxsync
df294ff29aab74013667896ef2d4f5bd1f782143vboxsync$(PATH_TARGET)/VBoxUSBMonCat.dir/VBoxUSBMon.inf: $(PATH_SUB_CURRENT)/mon/VBoxUSBMon.inf $(MAKEFILE_CURRENT) | $$(dir $$@)
59190ecd61435d19ba3515b876272aee7bd12298vboxsync $(call MSG_GENERATE,install-infs,$@,$<)
59190ecd61435d19ba3515b876272aee7bd12298vboxsync $(call VBOX_EDIT_INF_FN,$<,$@)
59190ecd61435d19ba3515b876272aee7bd12298vboxsync
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncifdef VBOX_SIGNING_MODE
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncinstall-infs_SOURCES += \
59190ecd61435d19ba3515b876272aee7bd12298vboxsync $(PATH_TARGET)/VBoxUSBCat.dir/VBoxUSB.cat \
59190ecd61435d19ba3515b876272aee7bd12298vboxsync $(PATH_TARGET)/VBoxUSBCat.dir/VBoxUSB.sys \
59190ecd61435d19ba3515b876272aee7bd12298vboxsync $(PATH_TARGET)/VBoxUSBMonCat.dir/VBoxUSBMon.cat \
59190ecd61435d19ba3515b876272aee7bd12298vboxsync $(PATH_TARGET)/VBoxUSBMonCat.dir/VBoxUSBMon.sys
59190ecd61435d19ba3515b876272aee7bd12298vboxsync
3c5e6cea6da936afaa10ccc57e7236ffa66ee82dvboxsync$(PATH_TARGET)/VBoxUSBCat.dir/VBoxUSB.sys: $$(VBoxUSB_1_TARGET) | $$(dir $$@)
59190ecd61435d19ba3515b876272aee7bd12298vboxsync $(INSTALL) -m 644 $< $(@D)
59190ecd61435d19ba3515b876272aee7bd12298vboxsync
59190ecd61435d19ba3515b876272aee7bd12298vboxsync$(PATH_TARGET)/VBoxUSBCat.dir/VBoxUSB.cat: \
59190ecd61435d19ba3515b876272aee7bd12298vboxsync $(PATH_TARGET)/VBoxUSBCat.dir/VBoxUSB.inf \
59190ecd61435d19ba3515b876272aee7bd12298vboxsync $(PATH_TARGET)/VBoxUSBCat.dir/VBoxUSB.sys
59190ecd61435d19ba3515b876272aee7bd12298vboxsync $(call MSG_TOOL,Inf2Cat,VBoxUSB-inf,$@,$<)
59190ecd61435d19ba3515b876272aee7bd12298vboxsync $(call VBOX_MAKE_CAT_FN, $(@D),$@)
59190ecd61435d19ba3515b876272aee7bd12298vboxsync
3c5e6cea6da936afaa10ccc57e7236ffa66ee82dvboxsync$(PATH_TARGET)/VBoxUSBMonCat.dir/VBoxUSBMon.sys: $$(VBoxUSBMon_1_TARGET) | $$(dir $$@)
59190ecd61435d19ba3515b876272aee7bd12298vboxsync $(INSTALL) -m 644 $< $(@D)
59190ecd61435d19ba3515b876272aee7bd12298vboxsync
59190ecd61435d19ba3515b876272aee7bd12298vboxsync$(PATH_TARGET)/VBoxUSBMonCat.dir/VBoxUSBMon.cat: \
59190ecd61435d19ba3515b876272aee7bd12298vboxsync $(PATH_TARGET)/VBoxUSBMonCat.dir/VBoxUSBMon.inf \
59190ecd61435d19ba3515b876272aee7bd12298vboxsync $(PATH_TARGET)/VBoxUSBMonCat.dir/VBoxUSBMon.sys
59190ecd61435d19ba3515b876272aee7bd12298vboxsync $(call MSG_TOOL,Inf2Cat,VBoxUSBMon-inf,$@,$<)
59190ecd61435d19ba3515b876272aee7bd12298vboxsync $(call VBOX_MAKE_CAT_FN, $(@D),$@)
59190ecd61435d19ba3515b876272aee7bd12298vboxsync
59190ecd61435d19ba3515b876272aee7bd12298vboxsyncendif # signing
59190ecd61435d19ba3515b876272aee7bd12298vboxsync
59190ecd61435d19ba3515b876272aee7bd12298vboxsync# generate rules
772269936494ffaddd0750ba9e28e805ba81398cvboxsyncinclude $(FILE_KBUILD_SUB_FOOTER)
59190ecd61435d19ba3515b876272aee7bd12298vboxsync