Makefile.kmk revision c79eaeb7bccf2daaad9d134772063be394c3642f
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync# Makefile for the VBox Main module.
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync# Copyright (C) 2006-2007 Sun Microsystems, Inc.
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# available from http://www.virtualbox.org. This file is free software;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# you can redistribute it and/or modify it under the terms of the GNU
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# General Public License (GPL) as published by the Free Software
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# Clara, CA 95054 USA or visit http://www.sun.com if you need
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# additional information or have any questions.
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncSUB_DEPTH = ../../..
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncinclude $(KBUILD_PATH)/subheader.kmk
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# Include sub-makefile(s).
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncifdef VBOX_WITH_WEBSERVICES
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync include $(PATH_SUB_CURRENT)/webservice/Makefile.kmk
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsyncinclude $(PATH_SUB_CURRENT)/testcase/Makefile.kmk
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync# Targets and globals (bit of a mess...)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBOX_PATH_MAIN_SRC := $(PATH_SUB_CURRENT)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncifndef VBOX_ONLY_SDK
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync VBOX_FN_MAKE_WIN_PATH = $(subst /,\\,$(1))
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync # used by some rules
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync PATH_VBoxCOM = $(PATH_TARGET)/VBoxCOM
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync BLDDIRS += $(PATH_VBoxCOM) $(PATH_BIN)/components
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync # I'm Evil! Dr. Evil.
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync include $(KBUILD_PATH)/tools/VCC70.kmk
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync include $(KBUILD_PATH)/sdks/WINPSDK.kmk
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync # on Wine Z: is always FS root
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync VBOX_FN_MAKE_WIN_PATH = $(subst /,\\,$(patsubst /%,Z:/%,$(1)))
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncendif #!VBOX_ONLY_SDK
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# Construct VBOX_MAIN_DEFS
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync## @todo eliminate or expand VBOX_MAIN_DEFS.
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBOX_MAIN_DEFS =
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncifneq ($(KBUILD_TARGET),win)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync ifndef VBOX_WITH_XPCOM
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(error "VBox: VBOX_WITH_XPCOM isn't defined")
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync ifneq ($(KBUILD_TARGET),os2)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync VBOX_MAIN_DEFS+= VBOX_WITH_SYS_V_IPC_SESSION_WATCHER
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync ifndef VBOX_WITH_NETFLT
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync VBOX_MAIN_DEFS += VBOX_WITH_UNIXY_TAP_NETWORKING
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncifdef VBOX_WITH_NETFLT
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync VBOX_MAIN_DEFS += VBOX_WITH_NETFLT
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncifdef VBOX_WITH_GUEST_PROPS
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync VBOX_MAIN_DEFS += VBOX_WITH_GUEST_PROPS
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncif1of ($(KBUILD_TARGET), linux freebsd solaris)
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync VBOX_MAIN_DEFS += VBOX_MAIN_USE_SEMRW
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync# if1of ($(VBOX_VERSION_BUILD),1 3 5 7 9)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# VBOX_MAIN_DEFS += VBOX_MAIN_AUTOLOCK_TRAP
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBOX_IDL_FILE.MSCOM = $(VBOX_PATH_SDK)/bindings/mscom/idl/VirtualBox.idl
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBOX_IDL_FILE.XPCOM = $(VBOX_PATH_SDK)/bindings/xpcom/idl/VirtualBox_XPCOM.idl
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBOX_IDL_TYPELIB.XPCOM = $(PATH_BIN)/components/VirtualBox_XPCOM.xpt
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBOX_IDL_HEADER.XPCOM = $(VBOX_PATH_SDK)/bindings/xpcom/include/VirtualBox_XPCOM.h
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# The MS COM specific stuff.
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncif defined(VBOX_ONLY_SDK) || "$(KBUILD_TARGET)" == "win"
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync OTHERS += \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(VBOX_PATH_SDK)/bindings/mscom/include/VirtualBox.h \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(VBOX_PATH_SDK)/bindings/mscom/lib/VirtualBox.tlb \
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync OTHER_CLEAN += \
0c4004948fca34f2db87e7b38013137e9472c306vboxsync $(VBOX_PATH_SDK)/bindings/mscom/include/VirtualBox.h \
0c4004948fca34f2db87e7b38013137e9472c306vboxsync $(VBOX_PATH_SDK)/bindings/mscom/lib/VirtualBox.tlb \
0c4004948fca34f2db87e7b38013137e9472c306vboxsync $(VBOX_PATH_SDK)/bindings/mscom/lib/VirtualBox_i.c \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(PATH_VBoxCOM)/VirtualBox.h \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(PATH_VBoxCOM)/VirtualBox_i.c \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(PATH_VBoxCOM)/VirtualBox.tlb
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync VBOX_MAIN_PREREQS += $(PATH_VBoxCOM)/VirtualBox_i.c
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync BLDDIRS += $(VBOX_PATH_SDK)/bindings/mscom/idl
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# The XPCOM specific stuff.
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncif defined(VBOX_ONLY_SDK) || "$(KBUILD_TARGET)" != "win"
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync OTHERS += $(VBOX_IDL_FILE.XPCOM) $(VBOX_IDL_TYPELIB.XPCOM) $(VBOX_IDL_HEADER.XPCOM)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync OTHER_CLEAN += \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync VBOX_MAIN_PREREQS += $(VBOX_IDL_TYPELIB.XPCOM) $(VBOX_IDL_HEADER.XPCOM)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync BLDDIRS += $(VBOX_PATH_SDK)/bindings/xpcom/idl
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncendif # xpcom
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# The Main API documentation
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBOX_MAIN_DOC_DIR = $(VBOX_PATH_SDK)/docs
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncBLDDIRS += $(VBOX_MAIN_DOC_DIR)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync$(PATH_TARGET)/docs.Main: \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(VBOX_PATH_MAIN_SRC)/Doxyfile.Main \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(VBOX_PATH_MAIN_SRC)/idl/doxygen.xsl \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(VBOX_PATH_MAIN_SRC)/idl/VirtualBox.xidl \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync | $(PATH_TARGET)/ \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(VBOX_MAIN_DOC_DIR)/
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(RM) -f $(wildcard $(VBOX_MAIN_DOC_DIR)/html/*) $(PATH_TARGET)/docs.Main
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(VBOX_XSLTPROC) -o $(PATH_TARGET)/VirtualBox.idl $(VBOX_PATH_MAIN_SRC)/idl/doxygen.xsl $(VBOX_PATH_MAIN_SRC)/idl/VirtualBox.xidl
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(REDIRECT) -E 'DOCDIR=$(VBOX_MAIN_DOC_DIR)' -E 'PATH_TARGET=$(PATH_TARGET)' -E 'PATH_CHM=$(subst /,\,$(VBOX_MAIN_DOC_DIR)/VirtualBoxAPI.chm)' \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync -- doxygen $(VBOX_PATH_MAIN_SRC)/Doxyfile.Main
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync -$(EXEC_X86_WIN32) $(VBOX_PATH_HTML_HELP_WORKSHOP)/hhc.exe $(subst /,\\,$(VBOX_MAIN_DOC_DIR)/html/index.hhp)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(APPEND) $(PATH_TARGET)/docs.Main
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncif !defined(VBOX_ONLY_DOCS)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncdocs: $(PATH_TARGET)/docs.Main
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# Some SDK bit.
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncINSTALLS += VBox-main-xidl
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBox-main-xidl_INST = $(INST_SDK)bindings/
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBox-main-xidl_SOURCES = idl/VirtualBox.xidl
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncifndef VBOX_ONLY_SDK # Note this goes on for *very* long
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# Generate SchemaDefs.h and SchemaDefs.cpp from XML Schema
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# These two files are used by both VBoxC and VBoxSVC.
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncBLDDIRS += $(PATH_TARGET)/Main
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBOX_XML_SCHEMADEFS_H = $(PATH_TARGET)/Main/SchemaDefs.h
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBOX_XML_SCHEMADEFS_CPP = $(PATH_TARGET)/Main/SchemaDefs.cpp
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBOX_XML_SCHEMADEFS_XSL = $(VBOX_PATH_MAIN_SRC)/xml/SchemaDefs.xsl
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncOTHER_CLEAN += $(VBOX_XML_SCHEMADEFS_H) $(VBOX_XML_SCHEMADEFS_CPP)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync$(VBOX_XML_SCHEMADEFS_H): $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(KBUILD_TARGET)) $(VBOX_XML_SCHEMA_COMMON) | $$(dir $$@)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(call MSG_GENERATE,SchemaDefs,$@,$<)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(VBOX_XSLTPROC) --stringparam mode declare -o $@ $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(KBUILD_TARGET))
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync$(VBOX_XML_SCHEMADEFS_CPP): $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(KBUILD_TARGET)) $(VBOX_XML_SCHEMA_COMMON) | $$(dir $$@)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(call MSG_GENERATE,SchemaDefs,$@,$<)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(VBOX_XSLTPROC) --stringparam mode define -o $@ $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(KBUILD_TARGET))
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsynctestschemadefs: $(VBOX_XML_SCHEMADEFS_H) $(VBOX_XML_SCHEMADEFS_CPP)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# VBoxSVC executable
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncPROGRAMS += VBoxSVC
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxSVC_TEMPLATE = VBOXMAINEXE
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxSVC_DEFS = \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync VBOX_MAIN_SETTINGS_ADDONS \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(VBOX_MAIN_DEFS) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(if $(VBOX_WITH_VRDP),VBOX_WITH_VRDP,) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(if $(VBOX_WITH_HEADLESS),VBOX_WITH_HEADLESS,) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(if $(VBOX_WITH_QTGUI),VBOX_WITH_QTGUI,) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(if $(VBOX_WITH_QT4GUI),VBOX_WITH_QT4GUI,) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(if $(VBOX_WITH_HGCM),VBOX_WITH_HGCM,) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(if $(VBOX_MAIN_RELEASE_LOG),VBOX_MAIN_RELEASE_LOG LOG_ENABLED,) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(if $(VBOX_WITH_ALSA),VBOX_WITH_ALSA,) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(if $(VBOX_WITH_PULSE),VBOX_WITH_PULSE,) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(if $(VBOX_WITH_WINMM),VBOX_WITH_WINMM,) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(if $(VBOX_WITH_E1000),VBOX_WITH_E1000,) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(if $(VBOX_WITH_AHCI),VBOX_WITH_AHCI,) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(if $(VBOX_WITHOUT_LINUX_COMPILER_H),VBOX_WITHOUT_LINUX_COMPILER_H,) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(if $(VBOX_WITH_RESOURCE_USAGE_API),VBOX_WITH_RESOURCE_USAGE_API,) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(if $(VBOX_WITH_PDM_ASYNC_COMPLETION),VBOX_WITH_PDM_ASYNC_COMPLETION,)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncifdef VBOX_WITH_USB
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync VBoxSVC_DEFS += \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync VBOX_WITH_USB \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(if $(VBOX_WITH_EHCI),VBOX_WITH_EHCI,) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(if $(VBOX_WITH_NEW_USB_CODE_ON_DARWIN),VBOX_WITH_NEW_USB_CODE_ON_DARWIN,)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxSVC_DEFS.win += VBOX_COM_OUTOFPROC_MODULE
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxSVC_DEFS.win.x86 += _WIN32_WINNT=0x0500
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxSVC_DEFS.win.amd64 += _WIN32_WINNT=0x0510
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxSVC_DEFS.linux += VBOX_USE_LIBHAL
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxSVC_DEFS.solaris += VBOX_USE_LIBHAL
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncifdef VBOX_SOLARIS_NSL_RESOLVED
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync VBoxSVC_DEFS.solaris += VBOX_SOLARIS_NSL_RESOLVED
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxSVC_INCS = \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(PATH_VBoxSVC) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(dir $(VBOX_XML_SCHEMADEFS_H)) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(PATH_VBoxCOM)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncifdef VBOX_WITH_USB
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxSVC_LIBS += \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(LIB_DDU) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(LIB_SETTINGS)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(LIB_VMM) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncifdef VBOX_WITH_NETFLT
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync ifdef VBOX_SOLARIS_NSL_RESOLVED
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncifdef VBOX_WITH_USB
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxSVC_INTERMEDIATES = \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(VBOX_MAIN_PREREQS) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(VBOX_XML_SCHEMADEFS_H)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxSVC_SOURCES = \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(if $(VBOX_WITH_VRDP),VRDPServerImpl.cpp,) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(if $(VBOX_WITH_XPCOM),xpcom/server.cpp,) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(VBOX_XML_SCHEMADEFS_CPP)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncifdef VBOX_WITH_USB
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync VBoxSVC_SOURCES += \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync VBoxSVC_SOURCES.darwin += darwin/USBProxyServiceDarwin.cpp
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync VBoxSVC_SOURCES.linux += linux/USBProxyServiceLinux.cpp
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync VBoxSVC_SOURCES.solaris += solaris/USBProxyServiceSolaris.cpp
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync VBoxSVC_SOURCES.win += win/USBProxyServiceWindows.cpp
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxSVC_LDFLAGS.darwin = -framework IOKit -framework SystemConfiguration
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncifeq ($(KBUILD_TYPE),debug)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync VBoxSVC_LDFLAGS.linux += -rdynamic # for backtrace_symbols()
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncifdef VBOX_WITH_RESOURCE_USAGE_API
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync VBoxSVC_SOURCES += \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync VBoxSVC_SOURCES.darwin += darwin/PerformanceDarwin.cpp
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync VBoxSVC_SOURCES.linux += linux/PerformanceLinux.cpp
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync VBoxSVC_SOURCES.solaris += solaris/PerformanceSolaris.cpp
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncwin/VBoxSVC.rc_INCS = $(PATH_VBoxSVC)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncwin/VBoxSVC.rc_DEPS = $(PATH_VBoxSVC)/VBoxSVC.rgs $(PATH_VBoxSVC)/VBoxSVC-icon.rc
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncwin/VBoxSVC.rc_CLEAN = $(PATH_VBoxSVC)/VBoxSVC.rgs $(PATH_VBoxSVC)/VBoxSVC-icon.rc
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync$$(PATH_VBoxSVC)/VBoxSVC-icon.rc: $(MAKEFILE_CURRENT) $(VBOX_WINDOWS_ICON_FILE) | $$(dir $$(@D))
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(APPEND) -t $@ '1 ICON DISCARDABLE "$(subst /,\\,$(VBOX_WINDOWS_ICON_FILE))"'
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync$$(PATH_VBoxSVC)/VBoxSVC.rgs: $(VBOX_PATH_MAIN_SRC)/win/VirtualBox_rgs.xsl $(VBOX_XIDL_FILE) | $$(dir $$(@D))
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(VBOX_XSLTPROC) --stringparam Module VBoxSVC -o $@ $< $(VBOX_XIDL_FILE)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# Embed XML Schema files to VBoxSVC
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBOX_XML_SCHEMA_COMMON = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-common.xsd
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBOX_XML_SCHEMA.darwin = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-macosx.xsd
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBOX_XML_SCHEMA.linux = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-linux.xsd
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBOX_XML_SCHEMA.freebsd = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-freebsd.xsd
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBOX_XML_SCHEMA.win = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-windows.xsd
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBOX_XML_SCHEMA.os2 = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-os2.xsd
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBOX_XML_SCHEMA.solaris = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-solaris.xsd
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBOX_XML_CONVERTER_TEMPLATE = $(VBOX_PATH_MAIN_SRC)/xml/SettingsConverter.xsl
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync$$(PATH_VBoxSVC)/xml_VirtualBox_settings_xsd.h: $(VBOX_XML_SCHEMA.$(KBUILD_TARGET)) $(VBOX_BIN2C)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(call MSG_TOOL,bin2c,VBoxSVC,$<,$@)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(QUIET)$(VBOX_BIN2C) _xml_VirtualBox_settings_xsd $< $@
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync$$(PATH_VBoxSVC)/xml_VirtualBox_settings_common_xsd.h: $(VBOX_XML_SCHEMA_COMMON) $(VBOX_BIN2C)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(call MSG_TOOL,bin2c,VBoxSVC,$<,$@)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(QUIET)$(VBOX_BIN2C) _xml_VirtualBox_settings_common_xsd $< $@
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync$$(PATH_VBoxSVC)/xml_SettingsConverter_xsl.h: $(VBOX_XML_CONVERTER_TEMPLATE) $(VBOX_BIN2C)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(call MSG_TOOL,bin2c,VBoxSVC,$<,$@)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(QUIET)$(VBOX_BIN2C) _xml_SettingsConverter_xsl $< $@
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(PATH_VBoxSVC)/xml_VirtualBox_settings_common_xsd.h \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxSVC_CLEAN += $(VirtualBoxImplExtra.cpp_DEPS)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncifdef VBOX_WITH_XPCOM
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# VBoxSVCM - VBoxSVC wrapper module
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncDLLS += VBoxSVCM
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxSVCM_TEMPLATE = VBOXMAINCOMP
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxSVCM_DEFS = IN_RING3 $(VBOX_MAIN_DEFS)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxSVCM_INCS = \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(PATH_VBoxC) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxSVCM_INTERMEDIATES = $(VBOX_MAIN_PREREQS)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxSVCM_SOURCES = \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/components/VBoxSVCM.dylib \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync -exported_symbols_list $(PATH_VBoxSVCM)/VBoxSVCM.def
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync ifeq ($(KBUILD_TARGET),darwin)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxSVCM_ORDERDEPS += $(PATH_VBoxSVCM)/VBoxSVCM.def
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxSVCM_CLEAN += $(PATH_VBoxSVCM)/VBoxSVCM.def
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync$$(PATH_VBoxSVCM)/VBoxSVCM.def:
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(RM) -f $@
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(APPEND) $@ _NSGetModule
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxSVCM_INTERMEDIATES += $(VBOX_IDL_HEADER.XPCOM)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncendif # VBOX_WITH_XPCOM
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# VBoxC module
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncDLLS += VBoxC
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxC_TEMPLATE = VBOXMAINCOMP
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxC_DEFS = \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(VBOX_MAIN_DEFS) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync VBOX_COM_INPROC \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(if $(VBOX_WITH_VRDP),VBOX_WITH_VRDP,) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(if $(VBOX_WITH_HGCM),VBOX_WITH_HGCM,) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(if $(VBOX_MAIN_RELEASE_LOG),VBOX_MAIN_RELEASE_LOG LOG_ENABLED,) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(if $(VBOX_WITH_ALSA),VBOX_WITH_ALSA,) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(if $(VBOX_WITH_PULSE),VBOX_WITH_PULSE,) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(if $(VBOX_WITH_WINMM),VBOX_WITH_WINMM,) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(if $(VBOX_WITH_CROSSBOW),VBOX_WITH_CROSSBOW,) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(if $(VBOX_WITH_E1000),VBOX_WITH_E1000,) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(if $(VBOX_WITH_PDM_ASYNC_COMPLETION),VBOX_WITH_PDM_ASYNC_COMPLETION,)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncifdef VBOX_WITH_USB
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxC_DEFS += \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync VBOX_WITH_USB \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(if $(VBOX_WITH_EHCI),VBOX_WITH_EHCI,)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxC_DEFS.win.x86 += _WIN32_WINNT=0x0500
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxC_DEFS.win.amd64 += _WIN32_WINNT=0x0510
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxC_INCS = \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(PATH_VBoxC) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(dir $(VBOX_XML_SCHEMADEFS_H))
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(PATH_VBoxCOM) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/components/VBoxC.dylib \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync -exported_symbols_list $(PATH_VBoxC)/VBoxC.def
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncifdef VBOX_USE_VCC80
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxC_LIBS += \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(LIB_VMM) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxC_INTERMEDIATES = \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(VBOX_MAIN_PREREQS) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(VBOX_XML_SCHEMADEFS_H)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxC_SOURCES = \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(VBOX_XML_SCHEMADEFS_CPP)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncifdef VBOX_WITH_XPCOM
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxC_SOURCES += \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncifdef VBOX_WITH_HGCM
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxC_SOURCES += \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncifdef VBOX_WITH_USB
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxC_SOURCES += \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncifeq ($(KBUILD_TARGET),darwin)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxC_ORDERDEPS += $(PATH_VBoxC)/VBoxC.def
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxC_CLEAN += $(PATH_VBoxC)/VBoxC.def
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync$$(PATH_VBoxC)/VBoxC.def: $(MAKEFILE_CURRENT)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(RM) -f $@
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(APPEND) $@ _NSGetModule
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(APPEND) $@ _VBoxDriversRegister
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync VBOX_BUILD_TARGET=\"$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)\"
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVersion.cpp_DEFS = VBOX_SVN_REV=$(VBOX_SVN_REV)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVersion.cpp_DEPS = $(VBOX_SVN_REV_KMK)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncwin/VBoxC.rc_DEPS = $(PATH_VBoxC)/VBoxC.rgs $(PATH_VBoxCOM)/VirtualBox.tlb
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync$$(PATH_VBoxC)/VBoxC.rgs: $(VBOX_PATH_MAIN_SRC)/win/VirtualBox_rgs.xsl $(VBOX_XIDL_FILE) | $$(PATH_VBoxC)/
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(VBOX_XSLTPROC) --stringparam Module VBoxC -o $@ $< $(VBOX_XIDL_FILE)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# VBoxSettings
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncDLLS += VBoxSettings
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxSettings_TEMPLATE = VBOXMAINDLL
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxSettings_NAME = $(basename $(notdir $(LIB_SETTINGS)))
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxSettings_SDKS = VBOX_LIBXSLT VBOX_LIBXML2 VBOX_ZLIB
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxSettings_DEFS = IN_VBOXSETTINGS_R3
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxSettings_INCS = \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxSettings_SOURCES = \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxSettings_LDFLAGS.darwin = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/$(notdir $(LIB_SETTINGS)) -Wl,-x # no debug info please.
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# VBoxCOM - COM Abstraction Layer library
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncLIBRARIES += VBoxCOM
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxCOM_TEMPLATE = VBOXMAINLIB
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxCOM_INTERMEDIATES = $(VBOX_MAIN_PREREQS)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxCOM_SOURCES = \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncifeq ($(KBUILD_TARGET),win)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync VBoxCOM_DEFS.x86 += _WIN32_WINNT=0x0500
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync VBoxCOM_DEFS.amd64 += _WIN32_WINNT=0x0510
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync VBoxCOM_SOURCES += \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(PATH_VBoxCOM)/VirtualBox_i.c
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync VBoxCOM_INCS += \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync VBoxCOM_SOURCES += \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncendif # !win
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncendif # !VBOX_ONLY_SDK (the ifndef is far above)
93540abbca1a7ac8de705de01b9fc04092294a39vboxsync# Installs com related thing(s) to bin.
93540abbca1a7ac8de705de01b9fc04092294a39vboxsyncINSTALLS.win += VBoxMain-com-inst
93540abbca1a7ac8de705de01b9fc04092294a39vboxsyncVBoxMain-com-inst_INST = $(INST_BIN)
93540abbca1a7ac8de705de01b9fc04092294a39vboxsyncVBoxMain-com-inst_SOURCES = \
93540abbca1a7ac8de705de01b9fc04092294a39vboxsync# generate rules
93540abbca1a7ac8de705de01b9fc04092294a39vboxsyncinclude $(KBUILD_PATH)/subfooter.kmk
93540abbca1a7ac8de705de01b9fc04092294a39vboxsync# Additions rules.
93540abbca1a7ac8de705de01b9fc04092294a39vboxsyncVBOX_XIDL_FILE = $(VBOX_PATH_MAIN_SRC)/idl/VirtualBox.xidl
93540abbca1a7ac8de705de01b9fc04092294a39vboxsync## @todo this hack ain't cutting it any longer. (the file name is abspath'ed since ages now.)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync$(VBOX_IDL_FILE.XPCOM): $(VBOX_PATH_MAIN_SRC)/idl/xpidl.xsl $(VBOX_XIDL_FILE) | $$(dir $$@)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(call MSG_TOOL,xsltproc,VBoxSVC,$<,$@)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(QUIET)$(VBOX_XSLTPROC) -o $@ $< $(VBOX_XIDL_FILE)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync$(VBOX_IDL_TYPELIB.XPCOM): $(VBOX_IDL_FILE.XPCOM) | $$(dir $$@) $(VBOX_XPIDL)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(call MSG_TOOL,xpidl,VBoxSVC,$<,$@)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(QUIET)$(VBOX_XPIDL) -m typelib -I $(VBOX_PATH_XPCOM_IDL) -e $@ $<
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync chmod 0644 $@
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync## @todo ^^^^^^^^^^^^ fix horrible hack
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync$(VBOX_IDL_HEADER.XPCOM): $(VBOX_IDL_FILE.XPCOM) | $$(dir $$@) $(VBOX_XPIDL)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(call MSG_TOOL,xpidl,VBoxSVC,$<,$@)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(QUIET)$(VBOX_XPIDL) -m header -I $(VBOX_PATH_XPCOM_IDL) -e $@ $<
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBOX_MAIN_IDL ?= $(EXEC_X86_WIN32) $(call VBOX_FN_MAKE_WIN_PATH,$(firstword $(wildcard \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(PATH_SDK_WINPSDK_BIN)/Midl.Exe\
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(PATH_SDK_WINPSDK)/Bin/Midl.Exe\
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(PATH_DEVTOOLS)/win.x86/bin/midl.exe\
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync ) Sorry_Cannot_Find_The_Midl_Compiler_In_The_PSDK))
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncIDL_DEFS = /nologo
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncifdef VBOX_WITH_VRDP
710a6316a22868b04400caf79719f96c18163cd3vboxsync IDL_DEFS += /D VBOX_WITH_VRDP
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync$(VBOX_IDL_FILE.MSCOM): $(VBOX_PATH_MAIN_SRC)/idl/midl.xsl $(VBOX_XIDL_FILE) | $$(dir $$@)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(call MSG_TOOL,xsltproc,VBoxSVC,$<,$@)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(QUIET)$(VBOX_XSLTPROC) -o $@ $< $(VBOX_XIDL_FILE)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# Aliases for testing purposes.
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncifdef VBOX_WITH_XPCOM
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsynctestidl: $(VBOX_IDL_FILE.XPCOM) $(VBOX_IDL_TYPELIB.XPCOM)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsynctestidl: $(VBOX_IDL_FILE.MSCOM) $(PATH_VBoxCOM)/VirtualBox_i.c
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync## @todo r=bird: last changes to this rule showed incorrect dependencies here as it broke testcase (see testboxwin2).
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# This is kind of obvious when looking at the rule, because it's (a) not specifing all it output
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# and (b) generating more stuff *after* the main target has been completed.
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# What needs to be done is to not depend on _i.c in the object subdir, but on all the final outputs.
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync$(PATH_VBoxCOM)/VirtualBox_i.c \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync+ $(VBOX_PATH_SDK)/bindings/mscom/lib/VirtualBox_i.c \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync+ $(PATH_VBoxCOM)/VirtualBox.h \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync+ $(VBOX_PATH_SDK)/bindings/mscom/include/VirtualBox.h \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync+ $(PATH_VBoxCOM)/VirtualBox.tlb \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync+ $(VBOX_PATH_SDK)/bindings/mscom/lib/VirtualBox.tlb: $(VBOX_IDL_FILE.MSCOM) | $(call DIRDEP,$(PATH_VBoxCOM))
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(VBOX_MAIN_IDL) $(IDL_DEFS) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync /out $(call VBOX_FN_MAKE_WIN_PATH,$(PATH_VBoxCOM)) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync /cpp_cmd $(subst $(EXEC_X86_WIN32),,$(call VBOX_FN_MAKE_WIN_PATH,$(TOOL_$(VBOX_VCC_TOOL)_CC))) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync /I $(call VBOX_FN_MAKE_WIN_PATH,$(PATH_SDK_WINPSDK_INC)) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(call VBOX_FN_MAKE_WIN_PATH,$<)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(MKDIR) -p $(VBOX_PATH_SDK)/bindings/mscom/include
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(CP) $(PATH_VBoxCOM)/VirtualBox.h $(VBOX_PATH_SDK)/bindings/mscom/include
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(MKDIR) -p $(VBOX_PATH_SDK)/bindings/mscom/lib
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(CP) $(PATH_VBoxCOM)/VirtualBox.tlb $(VBOX_PATH_SDK)/bindings/mscom/lib
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(CP) $(PATH_VBoxCOM)/VirtualBox_i.c $(VBOX_PATH_SDK)/bindings/mscom/lib
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# Translation stuff
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxSVC_VBOX_HEADERS = \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxSVC_VBOX_TRANSLATIONS = \
93540abbca1a7ac8de705de01b9fc04092294a39vboxsyncVBoxC_VBOX_HEADERS = \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncVBoxC_VBOX_TRANSLATIONS = \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(VBOX_LUPDATE) $(VBoxSVC_SOURCES) $(VBoxSVC_VBOX_HEADERS) -ts $(VBoxSVC_VBOX_TRANSLATIONS)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(VBOX_LUPDATE) $(VBoxC_SOURCES) $(VBoxC_VBOX_HEADERS) -ts $(VBoxC_VBOX_TRANSLATIONS)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsynctestconverter:: $(VBOX_USER_HOME)/VirtualBox.xml
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(call MSG_TOOL,xsltproc,Test Settings Converter,$<,$(VBOX_USER_HOME)/VirtualBox.xml.test)
d7125f3a1b435761c393f9ec406e85a73ae2a3e7vboxsync $(QUIET)$(VBOX_XSLTPROC) -o $(VBOX_USER_HOME)/VirtualBox.xml.test xml/SettingsConverter.xsl $<