Makefile.kmk revision 2aaf6ca0e7c3c20662060a8c61f0807d88798f2a
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# Makefile for the VBox Main module.
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# Copyright (C) 2006-2011 Oracle Corporation
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# available from http://www.virtualbox.org. This file is free software;
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# you can redistribute it and/or modify it under the terms of the GNU
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# General Public License (GPL) as published by the Free Software
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncSUB_DEPTH = ../../..
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncinclude $(KBUILD_PATH)/subheader.kmk
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# Include sub-makefile(s).
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncifdef VBOX_WITH_WEBSERVICES
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync include $(PATH_SUB_CURRENT)/webservice/Makefile.kmk
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncinclude $(PATH_SUB_CURRENT)/testcase/Makefile.kmk
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncinclude $(PATH_SUB_CURRENT)/cbinding/Makefile.kmk
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# Targets and globals (bit of a mess...)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBOX_PATH_MAIN_SRC := $(PATH_SUB_CURRENT)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncifdef VBOX_ONLY_SDK
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync # I'm Evil! Dr. Evil.
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxCOM_0_OUTDIR = $(PATH_TARGET)/VBoxCOM
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync BLDDIRS += $(VBoxCOM_0_OUTDIR) $(PATH_STAGE_BIN)/components
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync include $(KBUILD_PATH)/tools/VCC70.kmk
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync include $(KBUILD_PATH)/sdks/WINPSDK.kmk
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncendif # !VBOX_ONLY_SDK
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# Construct VBOX_MAIN_DEFS
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync## @todo eliminate or expand VBOX_MAIN_DEFS.
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBOX_MAIN_DEFS =
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncifneq ($(KBUILD_TARGET),win)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync ifndef VBOX_WITH_XPCOM
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(error "VBox: VBOX_WITH_XPCOM isn't defined")
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync ifneq ($(KBUILD_TARGET),os2)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBOX_MAIN_DEFS += VBOX_WITH_SYS_V_IPC_SESSION_WATCHER
dbec828311ed2a5cf6fbc68fe4391d516ba4f92fvboxsyncVBOX_MAIN_DEFS += \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_RAW_MODE),VBOX_WITH_RAW_MODE,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_NETFLT),VBOX_WITH_NETFLT,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_COPYTOGUEST),VBOX_WITH_COPYTOGUEST,) \
5eb36887f6970e0033f63fa135f3bb8fbfd6059bvboxsync $(if $(VBOX_WITH_CROGL),VBOX_WITH_CROGL,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_GUEST_PROPS),VBOX_WITH_GUEST_PROPS,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_GUEST_PROPS_RDONLY_GUEST),VBOX_WITH_GUEST_PROPS_RDONLY_GUEST,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_GUEST_CONTROL),VBOX_WITH_GUEST_CONTROL,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_USB_VIDEO),VBOX_WITH_USB_VIDEO,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_HOSTNETIF_API),VBOX_WITH_HOSTNETIF_API,)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# Unconditionally enable the new semaphore key generation code
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBOX_MAIN_DEFS += VBOX_WITH_NEW_SYS_V_KEYGEN
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBOX_IDL_FILE.MSCOM = $(VBOX_PATH_SDK)/bindings/mscom/idl/VirtualBox.idl
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBOX_IDL_FILE.XPCOM = $(VBOX_PATH_SDK)/bindings/xpcom/idl/VirtualBox_XPCOM.idl
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBOX_IDL_TYPELIB.XPCOM = $(PATH_STAGE_BIN)/components/VirtualBox_XPCOM.xpt
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBOX_IDL_HEADER.XPCOM = $(VBOX_PATH_SDK)/bindings/xpcom/include/VirtualBox_XPCOM.h
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# The MS COM specific stuff.
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncif defined(VBOX_ONLY_SDK) || "$(KBUILD_TARGET)" == "win"
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync OTHERS += \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_PATH_SDK)/bindings/mscom/include/VirtualBox.h \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_PATH_SDK)/bindings/mscom/lib/VirtualBox.tlb \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync OTHER_CLEAN += \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_PATH_SDK)/bindings/mscom/include/VirtualBox.h \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_PATH_SDK)/bindings/mscom/lib/VirtualBox.tlb \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_PATH_SDK)/bindings/mscom/lib/VirtualBox_i.c \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBoxCOM_0_OUTDIR)/VirtualBox.h \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBoxCOM_0_OUTDIR)/VirtualBox_i.c \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBoxCOM_0_OUTDIR)/VirtualBox.tlb
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBOX_MAIN_PREREQS += $(VBoxCOM_0_OUTDIR)/VirtualBox_i.c
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync BLDDIRS += $(VBOX_PATH_SDK)/bindings/mscom/idl
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# The XPCOM specific stuff.
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncif defined(VBOX_ONLY_SDK) || "$(KBUILD_TARGET)" != "win"
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync OTHERS += $(VBOX_IDL_FILE.XPCOM) $(VBOX_IDL_TYPELIB.XPCOM) $(VBOX_IDL_HEADER.XPCOM)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync OTHER_CLEAN += \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBOX_MAIN_PREREQS += $(VBOX_IDL_TYPELIB.XPCOM) $(VBOX_IDL_HEADER.XPCOM)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync BLDDIRS += \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_PATH_SDK)/bindings/xpcom/idl \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncendif # xpcom
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# Strip documentation from source XIDL so that we don't get a full
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# recompile every time a comma in the documentation is changed.
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync$(VBOX_XIDL_FILE).ts +| $(VBOX_XIDL_FILE): \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_XIDL_FILE_SRC) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_PATH_MAIN_SRC)/idl/docstrip.xsl \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync | $$(dir $$@)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# $(CP) -fv $< $(VBOX_XIDL_FILE).ts
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(QUIET)$(VBOX_XSLTPROC) -o $(VBOX_XIDL_FILE).ts $(VBOX_PATH_MAIN_SRC)/idl/docstrip.xsl $<
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(QUIET)$(CP) --changed -fv $(VBOX_XIDL_FILE).ts $(VBOX_XIDL_FILE)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncOTHER_CLEAN += $(VBOX_XIDL_FILE) $(VBOX_XIDL_FILE).ts
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# The Main API documentation
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBOX_MAIN_DOC_DIR = $(VBOX_PATH_SDK)/docs
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncBLDDIRS += $(VBOX_MAIN_DOC_DIR)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync$(PATH_TARGET)/docs.Main: \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_PATH_MAIN_SRC)/Doxyfile.Main \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_PATH_MAIN_SRC)/idl/doxygen.xsl \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_XIDL_FILE_SRC) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync | $(PATH_TARGET)/ \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_MAIN_DOC_DIR)/
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(call MSG_TOOL,xsltproc,doxygen input,$<,$@)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(QUIET)$(RM) -f $(wildcard $(VBOX_MAIN_DOC_DIR)/html/*) $(PATH_TARGET)/docs.Main
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(QUIET)$(VBOX_XSLTPROC) -o $(PATH_TARGET)/VirtualBox.idl $(VBOX_PATH_MAIN_SRC)/idl/doxygen.xsl $(VBOX_XIDL_FILE_SRC)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(QUIET)$(REDIRECT) -E 'DOCDIR=$(VBOX_MAIN_DOC_DIR)' -E 'PATH_TARGET=$(PATH_TARGET)' -E 'PATH_CHM=$(subst /,\,$(VBOX_MAIN_DOC_DIR)/VirtualBoxAPI.chm)' \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync -- doxygen $(VBOX_PATH_MAIN_SRC)/Doxyfile.Main
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(QUIET)$(TEST) -s "$(PATH_TARGET)/Main.err" -- $(ECHO_EXT) ">>>>>>>>>>>>>>>>>>>> Main.err: >>>>>>>>>>>>>>>>>>>>>>>>"
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(QUIET)$(TEST) -s "$(PATH_TARGET)/Main.err" -- $(CAT) "$(PATH_TARGET)/Main.err"
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(QUIET)$(TEST) -s "$(PATH_TARGET)/Main.err" -- $(ECHO_EXT) "<<<<<<<<<<<<<<<<<<<< Main.err <<<<<<<<<<<<<<<<<<<<<<<<<"
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(QUIET)$(TEST) -s "$(PATH_TARGET)/Main.err" -- $(ECHO_EXT) "===> **************************************************"
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(QUIET)$(TEST) -s "$(PATH_TARGET)/Main.err" -- $(ECHO_EXT) "===> Please fix above doxygen errors/warnings listed in"
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(QUIET)$(TEST) -s "$(PATH_TARGET)/Main.err" -- $(ECHO_EXT) "===> $(PATH_TARGET)/Main.err"
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(QUIET)$(TEST) -s "$(PATH_TARGET)/Main.err" -- $(ECHO_EXT) "===> **************************************************"
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync -$(EXEC_X86_WIN32) $(VBOX_PATH_HTML_HELP_WORKSHOP)/hhc.exe $(subst /,\\,$(VBOX_MAIN_DOC_DIR)/html/index.hhp)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(APPEND) $(PATH_TARGET)/docs.Main
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncif !defined(VBOX_ONLY_DOCS)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncdocs: $(PATH_TARGET)/docs.Main
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# Some SDK bit.
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncINSTALLS += VBox-main-xidl
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBox-main-xidl_INST = $(INST_SDK)bindings/
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBox-main-xidl_MODE = a+r,u+w
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBox-main-xidl_SOURCES = $(VBOX_XIDL_FILE_SRC)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncifdef VBOX_WITH_PYTHON
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncINSTALLS += VBox-python-glue
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBox-python-glue_INST = $(INST_SDK)installer/vboxapi/
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBox-python-glue_MODE = a+r,u+w
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBox-python-glue_SOURCES = \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBox-python-glue_0_OUTDIR)/VirtualBox_constants.py
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBox-python-glue_CLEAN = \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBox-python-glue_0_OUTDIR)/VirtualBox_constants.py
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync$$(VBox-python-glue_0_OUTDIR)/VirtualBox_constants.py: \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_PATH_MAIN_SRC)/glue/constants-python.xsl \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_XIDL_FILE) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync | $$(dir $$@)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(call MSG_TOOL,xsltproc,Python constants,$<,$@)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(QUIET)$(VBOX_XSLTPROC) -o $@ $< $(VBOX_XIDL_FILE)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncendif # VBOX_WITH_PYTHON
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncifndef VBOX_ONLY_SDK # Note this goes on for *very* long
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# Generate SchemaDefs.h and SchemaDefs.cpp from XML Schema
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# These two files are used by both VBoxC and VBoxSVC.
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncBLDDIRS += $(PATH_TARGET)/Main
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBOX_XML_SCHEMADEFS_H = $(PATH_TARGET)/Main/SchemaDefs.h
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBOX_XML_SCHEMADEFS_CPP = $(PATH_TARGET)/Main/SchemaDefs.cpp
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBOX_XML_SCHEMADEFS_XSL = $(VBOX_PATH_MAIN_SRC)/xml/SchemaDefs.xsl
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBOX_AUTOGEN_EVENT_H = $(PATH_TARGET)/Main/VBoxEvents.h
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBOX_AUTOGEN_EVENT_CPP = $(PATH_TARGET)/Main/VBoxEvents.cpp
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsynctestschemadefs: $(VBOX_XML_SCHEMADEFS_H) $(VBOX_XML_SCHEMADEFS_CPP)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# VBoxSVC executable
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncPROGRAMS += VBoxSVC
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxSVC_TEMPLATE = VBOXMAINEXE
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxSVC_DEFS = \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBOX_MAIN_SETTINGS_ADDONS \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync IN_VMM_STATIC \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_MAIN_DEFS) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_VBOXSDL),VBOX_WITH_VBOXSDL,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_HEADLESS),VBOX_WITH_HEADLESS,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_QTGUI),VBOX_WITH_QTGUI,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_COCOA_QT),VBOX_WITH_COCOA_QT,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_HGCM),VBOX_WITH_HGCM,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_ALSA),VBOX_WITH_ALSA,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_PULSE),VBOX_WITH_PULSE,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_WINMM),VBOX_WITH_WINMM,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_SOLARIS_OSS),VBOX_WITH_SOLARIS_OSS,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_E1000),VBOX_WITH_E1000,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_VIRTIO),VBOX_WITH_VIRTIO,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_AHCI),VBOX_WITH_AHCI,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_LSILOGIC),VBOX_WITH_LSILOGIC,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_LINUX_COMPILER_H),VBOX_WITH_LINUX_COMPILER_H,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_RESOURCE_USAGE_API),VBOX_WITH_RESOURCE_USAGE_API,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_PDM_ASYNC_COMPLETION),VBOX_WITH_PDM_ASYNC_COMPLETION,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_DBUS),$(if $(VBOX_USB_WITH_DBUS),VBOX_USB_WITH_DBUS,),) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_USB_WITH_SYSFS),VBOX_USB_WITH_SYSFS,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_USB_WITH_INOTIFY),VBOX_USB_WITH_INOTIFY,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_LIVE_MIGRATION),VBOX_WITH_LIVE_MIGRATION,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_EXTPACK),VBOX_WITH_EXTPACK,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_VUSB),VBOX_WITH_VUSB,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_S3),VBOX_WITH_S3,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_PCI_PASSTHROUGH),VBOX_WITH_PCI_PASSTHROUGH,)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncifdef VBOX_WITH_USB
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxSVC_DEFS += \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBOX_WITH_USB \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_EHCI),VBOX_WITH_EHCI,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_NEW_USB_CODE_ON_DARWIN),VBOX_WITH_NEW_USB_CODE_ON_DARWIN,)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxSVC_DEFS.win += VBOX_COM_OUTOFPROC_MODULE
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxSVC_DEFS.win.x86 += _WIN32_WINNT=0x0500
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxSVC_DEFS.win.amd64 += _WIN32_WINNT=0x0510
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# Try to load and use libhal at runtime for probing removable media
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# VBoxSVC_DEFS.linux += VBOX_USE_LIBHAL
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxSVC_DEFS.solaris += VBOX_USE_LIBHAL
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxSVC_DEFS.freebsd += VBOX_USE_LIBHAL
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxSVC_CXXFLAGS = $(filter-out -Wno-unused,$(TEMPLATE_VBOXMAINEXE_CXXFLAGS))
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxSVC_INCS = \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBoxSVC_0_OUTDIR) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(dir $(VBOX_XML_SCHEMADEFS_H)) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBoxCOM_0_OUTDIR)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncifdef VBOX_WITH_USB
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxSVC_LIBS += \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(PATH_STAGE_LIB)/SSMStandalone$(VBOX_SUFF_LIB) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxSVC_SDKS = VBOX_LIBPNG VBOX_ZLIB
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxSVC_INTERMEDIATES = \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_MAIN_PREREQS) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_XML_SCHEMADEFS_H) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_AUTOGEN_EVENT_H)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxSVC_SOURCES = \
78df65edff21c11c537f38e736707ea434ab5623vboxsync $(if $(VBOX_WITH_EXTPACK),src-all/ExtPackManagerImpl.cpp src-all/ExtPackUtil.cpp,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_XML_SCHEMADEFS_CPP) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_AUTOGEN_EVENT_CPP) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_XPCOM),src-server/xpcom/server.cpp,)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncifdef VBOX_WITH_CROGL
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync ifneq ($(KBUILD_TARGET),darwin)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxSVC_SOURCES += src-server/generic/OpenGLTest.cpp
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxSVC_SOURCES.darwin += src-server/darwin/OpenGLTestDarwin.cpp
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBOX_BUILD_TARGET=\"$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)\" \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_BLEEDING_EDGE),VBOX_BLEEDING_EDGE=\"$(VBOX_BLEEDING_EDGE)\",)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncifdef VBOX_WITH_USB
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync ifdef VBOX_WITH_SYSFS_BY_DEFAULT
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync src-server/linux/USBProxyServiceLinux.cpp_DEFS += VBOX_WITH_SYSFS_BY_DEFAULT
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxSVC_SOURCES += \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxSVC_SOURCES.darwin += src-server/darwin/USBProxyServiceDarwin.cpp
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxSVC_SOURCES.linux += src-server/linux/USBProxyServiceLinux.cpp
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxSVC_SOURCES.linux += src-server/linux/USBGetDevices.cpp
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxSVC_SOURCES.os2 += src-server/os2/USBProxyServiceOs2.cpp
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxSVC_SOURCES.solaris += src-server/solaris/USBProxyServiceSolaris.cpp
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxSVC_SOURCES.win += src-server/win/USBProxyServiceWindows.cpp
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxSVC_SOURCES.freebsd += src-server/freebsd/USBProxyServiceFreeBSD.cpp
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncifdef VBOX_WITH_NETFLT
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync # Note! The includes from the TOOL has lower priority than the SDKs,
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync # since comdef.h is in both the DDK and VCC we want to make sure
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync # we're using the VCC since we're not using the DDK compiler/crt.
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync # Since this is potentially risky, restrict it to the source file
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync # needing it.
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync src-server/win/NetIf-win.cpp_INCS.win += $(PATH_TOOL_$(VBOX_VCC_TOOL)_INC)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(WinNetConfig_1_TARGET) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBoxDrvCfg_1_TARGET) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/comsupp.lib \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(PATH_SDK_WINPSDK_LIB)/WbemUuid.Lib
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxSVC_LDFLAGS.darwin = -framework IOKit -framework SystemConfiguration
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncifdef VBOX_WITH_CROGL
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxSVC_LDFLAGS.darwin += -framework OpenGL
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncifeq ($(KBUILD_TYPE),debug)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxSVC_LDFLAGS.linux += -rdynamic # for backtrace_symbols()
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncifdef VBOX_WITH_RESOURCE_USAGE_API
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxSVC_SOURCES += \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxSVC_SOURCES.darwin += src-server/darwin/PerformanceDarwin.cpp
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxSVC_SOURCES.freebsd += src-server/freebsd/PerformanceFreeBSD.cpp
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxSVC_SOURCES.linux += src-server/linux/PerformanceLinux.cpp
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxSVC_SOURCES.os2 += src-server/os2/PerformanceOs2.cpp
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxSVC_SOURCES.solaris += src-server/solaris/PerformanceSolaris.cpp
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxSVC_SOURCES.win += src-server/win/PerformanceWin.cpp
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncifdef VBOX_WITH_HOSTNETIF_API
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxSVC_SOURCES.win += src-server/win/NetIf-win.cpp
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxSVC_SOURCES.linux += src-server/linux/NetIf-linux.cpp
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxSVC_SOURCES.os2 += src-server/os2/NetIf-os2.cpp
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxSVC_SOURCES.darwin += src-server/darwin/NetIf-darwin.cpp
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxSVC_SOURCES.solaris += src-server/solaris/NetIf-solaris.cpp
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxSVC_SOURCES.freebsd += src-server/freebsd/NetIf-freebsd.cpp
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxSVC_DEFS += VBOX_WITH_HOSTNETIF_API
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync if1of ($(KBUILD_TARGET), linux darwin solaris freebsd)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxSVC_SOURCES += src-server/generic/NetIf-generic.cpp
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncsrc-server/win/VBoxSVC.rc_INCS = $(VBoxSVC_0_OUTDIR)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncsrc-server/win/VBoxSVC.rc_DEPS = $(VBoxSVC_0_OUTDIR)/VBoxSVC.rgs $(VBoxSVC_0_OUTDIR)/VBoxSVC-icon.rc
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncsrc-server/win/VBoxSVC.rc_CLEAN = $(VBoxSVC_0_OUTDIR)/VBoxSVC.rgs $(VBoxSVC_0_OUTDIR)/VBoxSVC-icon.rc
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync$$(VBoxSVC_0_OUTDIR)/VBoxSVC-icon.rc: $(MAKEFILE_CURRENT) $(VBOX_WINDOWS_ICON_FILE) | $$(dir $$(@D))
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(APPEND) -t $@ '1 ICON DISCARDABLE "$(subst /,\\,$(VBOX_WINDOWS_ICON_FILE))"'
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync$$(VBoxSVC_0_OUTDIR)/VBoxSVC.rgs: $(VBOX_PATH_MAIN_SRC)/src-all/win/VirtualBox_rgs.xsl $(VBOX_XIDL_FILE) | $$(dir $$(@D))
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_XSLTPROC) --stringparam Module VBoxSVC -o $@ $< $(VBOX_XIDL_FILE)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# Embed XML Schema files to VBoxSVC
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBOX_XML_SCHEMA_COMMON = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-common.xsd
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBOX_XML_SCHEMA.darwin = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-macosx.xsd
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBOX_XML_SCHEMA.linux = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-linux.xsd
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBOX_XML_SCHEMA.freebsd = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-freebsd.xsd
090c459b9e90ca46e2ce2b8c81533ade3b23f3e9vboxsyncVBOX_XML_SCHEMA.win = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-windows.xsd
090c459b9e90ca46e2ce2b8c81533ade3b23f3e9vboxsyncVBOX_XML_SCHEMA.os2 = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-os2.xsd
090c459b9e90ca46e2ce2b8c81533ade3b23f3e9vboxsyncVBOX_XML_SCHEMA.solaris = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-solaris.xsd
090c459b9e90ca46e2ce2b8c81533ade3b23f3e9vboxsyncVBOX_XML_CONVERTER_TEMPLATE = $(VBOX_PATH_MAIN_SRC)/xml/SettingsConverter.xsl
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync$$(VBoxSVC_0_OUTDIR)/xml_VirtualBox_settings_xsd.h: $(VBOX_XML_SCHEMA.$(KBUILD_TARGET)) $(VBOX_BIN2C)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(call MSG_TOOL,bin2c,VBoxSVC,$<,$@)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(QUIET)$(VBOX_BIN2C) _xml_VirtualBox_settings_xsd $< $@
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync$$(VBoxSVC_0_OUTDIR)/xml_VirtualBox_settings_common_xsd.h: $(VBOX_XML_SCHEMA_COMMON) $(VBOX_BIN2C)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(call MSG_TOOL,bin2c,VBoxSVC,$<,$@)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(QUIET)$(VBOX_BIN2C) _xml_VirtualBox_settings_common_xsd $< $@
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync$$(VBoxSVC_0_OUTDIR)/xml_SettingsConverter_xsl.h: $(VBOX_XML_CONVERTER_TEMPLATE) $(VBOX_BIN2C)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(call MSG_TOOL,bin2c,VBoxSVC,$<,$@)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(QUIET)$(VBOX_BIN2C) _xml_SettingsConverter_xsl $< $@
be9960565d2df0031f0e6c8a4610f5f0ae8c1845vboxsync$(VBOX_XML_SCHEMADEFS_H): $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(KBUILD_TARGET)) $(VBOX_XML_SCHEMA_COMMON) | $$(dir $$@)
be9960565d2df0031f0e6c8a4610f5f0ae8c1845vboxsync $(call MSG_GENERATE,SchemaDefs,$@,$<)
be9960565d2df0031f0e6c8a4610f5f0ae8c1845vboxsync $(QUIET)$(VBOX_XSLTPROC) --stringparam mode declare -o $@ $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(KBUILD_TARGET))
be9960565d2df0031f0e6c8a4610f5f0ae8c1845vboxsync$(VBOX_XML_SCHEMADEFS_CPP): $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(KBUILD_TARGET)) $(VBOX_XML_SCHEMA_COMMON) | $$(dir $$@)
be9960565d2df0031f0e6c8a4610f5f0ae8c1845vboxsync $(call MSG_GENERATE,SchemaDefs,$@,$<)
be9960565d2df0031f0e6c8a4610f5f0ae8c1845vboxsync $(QUIET)$(VBOX_XSLTPROC) --stringparam mode define -o $@ $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(KBUILD_TARGET))
be9960565d2df0031f0e6c8a4610f5f0ae8c1845vboxsyncOTHER_CLEAN += $(VBOX_XML_SCHEMADEFS_H) $(VBOX_XML_SCHEMADEFS_CPP)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# Generate some event stuff for VBoxSVC and VBoxC.
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync$(VBOX_AUTOGEN_EVENT_H): $(VBOX_PATH_MAIN_SRC)/idl/comimpl.xsl $(VBOX_XIDL_FILE) | $$(dir $$@)
be9960565d2df0031f0e6c8a4610f5f0ae8c1845vboxsync $(call MSG_TOOL,xsltproc,autogen events,$<,$@)
be9960565d2df0031f0e6c8a4610f5f0ae8c1845vboxsync $(QUIET)$(VBOX_XSLTPROC) --stringparam G_kind VBoxEventHeader -o $@ $< $(VBOX_XIDL_FILE)
be9960565d2df0031f0e6c8a4610f5f0ae8c1845vboxsync$(VBOX_AUTOGEN_EVENT_CPP): $(VBOX_PATH_MAIN_SRC)/idl/comimpl.xsl $(VBOX_XIDL_FILE) | $$(dir $$@)
be9960565d2df0031f0e6c8a4610f5f0ae8c1845vboxsync $(call MSG_TOOL,xsltproc,autogen events,$<,$@)
be9960565d2df0031f0e6c8a4610f5f0ae8c1845vboxsync $(QUIET)$(VBOX_XSLTPROC) --stringparam G_kind VBoxEvent -o $@ $< $(VBOX_XIDL_FILE)
be9960565d2df0031f0e6c8a4610f5f0ae8c1845vboxsyncOTHER_CLEAN += $(VBOX_AUTOGEN_EVENT_H) $(VBOX_AUTOGEN_EVENT_CPP)
be9960565d2df0031f0e6c8a4610f5f0ae8c1845vboxsync# VBoxTestOGL - OpenGL support test app.
be9960565d2df0031f0e6c8a4610f5f0ae8c1845vboxsync# Note! Doesn't link with VBOX_WITH_DEBUG_VCC_CRT defined because it uses Qt.
be9960565d2df0031f0e6c8a4610f5f0ae8c1845vboxsyncif ( defined(VBOX_WITH_QTGUI) \
a86135e41c89c7b599607649347a4240809c784bvboxsync && (defined(VBOX_WITH_CROGL) || defined(VBOX_WITH_VIDEOHWACCEL)) \
be9960565d2df0031f0e6c8a4610f5f0ae8c1845vboxsync && !defined(VBOX_WITH_DEBUG_VCC_CRT))
be9960565d2df0031f0e6c8a4610f5f0ae8c1845vboxsync ifneq ($(KBUILD_TARGET),darwin)
be9960565d2df0031f0e6c8a4610f5f0ae8c1845vboxsync ifdef VBOX_WITH_VIDEOHWACCEL
be9960565d2df0031f0e6c8a4610f5f0ae8c1845vboxsync USES += qt4
be9960565d2df0031f0e6c8a4610f5f0ae8c1845vboxsync PROGRAMS += VBoxTestOGL
be9960565d2df0031f0e6c8a4610f5f0ae8c1845vboxsync VBoxTestOGL_TEMPLATE = $(if $(VBOX_WITH_VIDEOHWACCEL),$(if $(VBOX_WITH_HARDENING),VBOXQT4GUI,VBOXQT4GUIEXE),VBOXMAINEXE)
be9960565d2df0031f0e6c8a4610f5f0ae8c1845vboxsync VBoxTestOGL_SOURCES = src-server/generic/OpenGLTestApp.cpp
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxTestOGL_LIBS = \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_CROGL), \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(PATH_STAGE_LIB)/VBoxOGLhostspuload$(VBOX_SUFF_LIB) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_LIB_OGL_HOSTCRUTIL),) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_VIDEOHWACCEL), $(PATH_STAGE_LIB)/VBoxOGL2D$(VBOX_SUFF_LIB),) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(LIB_RUNTIME)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxTestOGL_DEFS += \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_CROGL), VBOX_WITH_CROGL,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_VIDEOHWACCEL), VBOX_WITH_VIDEOHWACCEL,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBOX_BUILD_TARGET=\"$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)\" \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_BLEEDING_EDGE),VBOX_BLEEDING_EDGE=\"$(VBOX_BLEEDING_EDGE)\",)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync ifdef VBOX_WITH_VIDEOHWACCEL
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxTestOGL_QT_MODULES += Core Gui OpenGL
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxTestOGL_LDFLAGS.darwin += -framework OpenGL
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxTestOGL_LIBS.win += $(PATH_SDK_WINPSDK_LIB)/Opengl32.lib
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync if1of ($(KBUILD_TARGET), solaris linux freebsd)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync # must come after VBoxOGL2D, therefore don't set the arch-specific LIBS variable here!
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxTestOGL_LIBS += GL
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxTestOGL_LDFLAGS.win = /SUBSYSTEM:windows
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncifdef VBOX_WITH_XPCOM
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# VBoxSVCM - VBoxSVC wrapper module
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncDLLS += VBoxSVCM
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxSVCM_TEMPLATE = VBOXMAINCOMP
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxSVCM_DEFS = IN_RING3 $(VBOX_MAIN_DEFS)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncifdef VBOX_WITH_HARDENING
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxSVCM_DEFS += VBOX_WITH_HARDENING
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxSVCM_INCS = \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBoxC_0_OUTDIR) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxSVCM_INTERMEDIATES = $(VBOX_MAIN_PREREQS)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxSVCM_SOURCES = \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/components/VBoxSVCM.dylib \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync -exported_symbols_list $(VBoxSVCM_0_OUTDIR)/VBoxSVCM.def
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync ifeq ($(KBUILD_TARGET),darwin)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxSVCM_ORDERDEPS += $(VBoxSVCM_0_OUTDIR)/VBoxSVCM.def
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxSVCM_CLEAN += $(VBoxSVCM_0_OUTDIR)/VBoxSVCM.def
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync$$(VBoxSVCM_0_OUTDIR)/VBoxSVCM.def:
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(RM) -f $@
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(APPEND) $@ _NSGetModule
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxSVCM_INTERMEDIATES += $(VBOX_IDL_HEADER.XPCOM)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncendif # VBOX_WITH_XPCOM
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# VBoxC module
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncDLLS += VBoxC
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxC_TEMPLATE = VBOXMAINCOMP
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxC_SDKS = VBOX_LIBPNG VBOX_ZLIB
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxC_DEFS = \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_MAIN_DEFS) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBOX_COM_INPROC \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_VRDP_VIDEO_CHANNEL),VBOX_WITH_VRDP_VIDEO_CHANNEL,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_HGCM),VBOX_WITH_HGCM,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_ALSA),VBOX_WITH_ALSA,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_PULSE),VBOX_WITH_PULSE,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_WINMM),VBOX_WITH_WINMM,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_SOLARIS_OSS),VBOX_WITH_SOLARIS_OSS,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_CROSSBOW),VBOX_WITH_CROSSBOW,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_E1000),VBOX_WITH_E1000,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_VIRTIO),VBOX_WITH_VIRTIO,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_EFI),VBOX_WITH_EFI,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_PDM_ASYNC_COMPLETION),VBOX_WITH_PDM_ASYNC_COMPLETION,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_LIVE_MIGRATION),VBOX_WITH_LIVE_MIGRATION,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_VUSB),VBOX_WITH_VUSB,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_HGSMI),VBOX_WITH_HGSMI,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_VIDEOHWACCEL),VBOX_WITH_VIDEOHWACCEL,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_USB),VBOX_WITH_USB,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if-expr defined(VBOX_WITH_EHCI) && defined(VBOX_WITH_USB),VBOX_WITH_EHCI,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_EXTPACK),VBOX_WITH_EXTPACK,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_PCI_PASSTHROUGH),VBOX_WITH_PCI_PASSTHROUGH,)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxC_DEFS.darwin.x86 = VBOX_WITH_2X_4GB_ADDR_SPACE
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxC_DEFS.win.x86 += _WIN32_WINNT=0x0500
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxC_DEFS.win.amd64 += _WIN32_WINNT=0x0510
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxC_INCS = \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBoxC_0_OUTDIR) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(dir $(VBOX_XML_SCHEMADEFS_H))
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBoxCOM_0_OUTDIR) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/components/VBoxC.dylib \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync -exported_symbols_list $(VBoxC_0_OUTDIR)/VBoxC.def \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync -framework IOKit
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncifdef VBOX_USE_VCC80
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxC_LIBS += \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(LIB_VMM) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncifdef VBOX_WITH_NETFLT
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBoxDrvCfg_1_TARGET) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(WinNetConfig_1_TARGET) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/comsupp.lib \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(PATH_SDK_WINPSDK_LIB)/WbemUuid.Lib
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxC_INTERMEDIATES = \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_MAIN_PREREQS) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_XML_SCHEMADEFS_H) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_AUTOGEN_EVENT_H)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxC_SOURCES = \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_EXTPACK),src-all/ExtPackManagerImpl.cpp src-all/ExtPackUtil.cpp,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_USB_VIDEO),src-client/UsbWebcamInterface.cpp,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_WITH_PCI_PASSTHROUGH),src-client/PciRawDevImpl.cpp,) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_AUTOGEN_EVENT_CPP) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_XML_SCHEMADEFS_CPP)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncifdef VBOX_WITH_XPCOM
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxC_SOURCES += \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncifdef VBOX_WITH_HGCM
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxC_SOURCES += \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncifdef VBOX_WITH_CRHGSMI
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxC_DEFS += VBOX_WITH_CRHGSMI
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncifdef VBOX_WITH_USB
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxC_SOURCES += \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncifeq ($(KBUILD_TARGET),darwin)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxC_ORDERDEPS += $(VBoxC_0_OUTDIR)/VBoxC.def
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxC_CLEAN += $(VBoxC_0_OUTDIR)/VBoxC.def
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync$$(VBoxC_0_OUTDIR)/VBoxC.def: $(MAKEFILE_CURRENT)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(RM) -f $@
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(APPEND) $@ _NSGetModule
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(APPEND) $@ _VBoxDriversRegister
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBOX_BUILD_TARGET=\"$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)\" \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(if $(VBOX_BLEEDING_EDGE),VBOX_BLEEDING_EDGE=\"$(VBOX_BLEEDING_EDGE)\",)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncsrc-client/win/VBoxC.rc_DEPS = $(VBoxC_0_OUTDIR)/VBoxC.rgs $(VBoxCOM_0_OUTDIR)/VirtualBox.tlb
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync$$(VBoxC_0_OUTDIR)/VBoxC.rgs: $(VBOX_PATH_MAIN_SRC)/src-all/win/VirtualBox_rgs.xsl $(VBOX_XIDL_FILE) | $$(dir $$@)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_XSLTPROC) --stringparam Module VBoxC -o $@ $< $(VBOX_XIDL_FILE)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# VBoxCOM - COM Abstraction Layer library
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncLIBRARIES += VBoxCOM
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxCOM_TEMPLATE = VBOXMAINLIB
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxCOM_INTERMEDIATES = $(VBOX_MAIN_PREREQS)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxCOM_SOURCES = \
af0a09edb4c1431b606fe207d4138da008f67f13vboxsyncVBoxCOM_INCS += \
af0a09edb4c1431b606fe207d4138da008f67f13vboxsyncifeq ($(KBUILD_TARGET),win)
af0a09edb4c1431b606fe207d4138da008f67f13vboxsync VBoxCOM_DEFS.x86 += _WIN32_WINNT=0x0500
af0a09edb4c1431b606fe207d4138da008f67f13vboxsync VBoxCOM_DEFS.amd64 += _WIN32_WINNT=0x0510
af0a09edb4c1431b606fe207d4138da008f67f13vboxsync VBoxCOM_SOURCES += \
564cc620447c495b6ff9cbb9274e225692fe38dfvboxsync $(VBoxCOM_0_OUTDIR)/VirtualBox_i.c
af0a09edb4c1431b606fe207d4138da008f67f13vboxsync VBoxCOM_SOURCES += \
af0a09edb4c1431b606fe207d4138da008f67f13vboxsyncendif # !win
dbec828311ed2a5cf6fbc68fe4391d516ba4f92fvboxsync# The VBoxExtPackHelperApp.
af0a09edb4c1431b606fe207d4138da008f67f13vboxsyncifdef VBOX_WITH_EXTPACK
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync PROGRAMS += VBoxExtPackHelperApp
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxExtPackHelperApp_TEMPLATE = VBoxR3SetUidToRoot
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxExtPackHelperApp_LDFLAGS.darwin = -framework Security
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxExtPackHelperApp_LDFLAGS.win = /SUBSYSTEM:windows
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxExtPackHelperApp_SOURCES = \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxExtPackHelperApp_LIBS = \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(LIB_RUNTIME)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncendif # VBOX_WITH_EXTPACK
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncendif # !VBOX_ONLY_SDK (the ifndef is far above)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# Installs com related thing(s) to bin.
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncINSTALLS.win += VBoxMain-com-inst
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxMain-com-inst_INST = $(INST_BIN)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxMain-com-inst_MODE = a+r,u+w
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxMain-com-inst_SOURCES = src-all/win/comregister.cmd
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncif defined(VBOX_WITH_HARDENING) && "$(KBUILD_TARGET)" == "linux"
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync # Installs linux/hardening related things to components.
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync INSTALLS.linux += VBoxMain-hardening-inst
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxMain-hardening-inst_INST = $(INST_BIN)components/
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync VBoxMain-hardening-inst_SYMLINKS = \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# generate rules
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncinclude $(KBUILD_PATH)/subfooter.kmk
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# Additions rules.
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync## @todo this hack ain't cutting it any longer. (the file name is abspath'ed since ages now.)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync$(VBOX_IDL_FILE.XPCOM): $(VBOX_PATH_MAIN_SRC)/idl/xpidl.xsl $(VBOX_XIDL_FILE) | $$(dir $$@)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(call MSG_TOOL,xsltproc,VBoxSVC,$<,$@)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(QUIET)$(VBOX_XSLTPROC) -o $@ $< $(VBOX_XIDL_FILE)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync$(VBOX_IDL_TYPELIB.XPCOM): $(VBOX_IDL_FILE.XPCOM) | $$(dir $$@) $(VBOX_XPIDL)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(call MSG_TOOL,xpidl,VBoxSVC,$<,$@)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(QUIET)$(VBOX_XPIDL_ENV)$(VBOX_XPIDL) -m typelib -I $(VBOX_PATH_XPCOM_IDL) -e $@ $<
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(CHMOD) 0644 $@
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync## @todo ^^^^^^^^^^^^ fix horrible hack
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync$(VBOX_IDL_HEADER.XPCOM): $(VBOX_IDL_FILE.XPCOM) | $$(dir $$@) $(VBOX_XPIDL)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(call MSG_TOOL,xpidl,VBoxSVC,$<,$@)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(QUIET)$(VBOX_XPIDL_ENV)$(VBOX_XPIDL) -m header -I $(VBOX_PATH_XPCOM_IDL) -e $@ $<
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBOX_MAIN_IDL ?= $(EXEC_X86_WIN32) $(call VBOX_FN_MAKE_WIN_PATH,$(firstword $(wildcard \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(PATH_SDK_WINPSDK_BIN)/Midl.Exe\
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(PATH_SDK_WINPSDK)/Bin/Midl.Exe\
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(PATH_DEVTOOLS)/win.x86/bin/midl.exe\
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync ) Sorry_Cannot_Find_The_Midl_Compiler_In_The_PSDK))
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncIDL_DEFS = /nologo
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync$(VBOX_IDL_FILE.MSCOM): $(VBOX_PATH_MAIN_SRC)/idl/midl.xsl $(VBOX_XIDL_FILE) | $$(dir $$@)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(call MSG_TOOL,xsltproc,VBoxSVC,$<,$@)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(QUIET)$(VBOX_XSLTPROC) -o $@ $< $(VBOX_XIDL_FILE)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# Aliases for testing purposes.
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncifdef VBOX_WITH_XPCOM
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsynctestidl: $(VBOX_IDL_FILE.XPCOM) $(VBOX_IDL_TYPELIB.XPCOM)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsynctestidl: $(VBOX_IDL_FILE.MSCOM) $(VBoxCOM_0_OUTDIR)/VirtualBox_i.c
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync## @todo r=bird: last changes to this rule showed incorrect dependencies here as it broke testcase (see testboxwin2).
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# This is kind of obvious when looking at the rule, because it's (a) not specifying all it output
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# and (b) generating more stuff *after* the main target has been completed.
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# What needs to be done is to not depend on _i.c in the object subdir, but on all the final outputs.
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync$(VBoxCOM_0_OUTDIR)/VirtualBox_i.c \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync+ $(VBOX_PATH_SDK)/bindings/mscom/lib/VirtualBox_i.c \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync+ $(VBoxCOM_0_OUTDIR)/VirtualBox.h \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync+ $(VBOX_PATH_SDK)/bindings/mscom/include/VirtualBox.h \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync+ $(VBoxCOM_0_OUTDIR)/VirtualBox.tlb \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync+ $(VBOX_PATH_SDK)/bindings/mscom/lib/VirtualBox.tlb: $(VBOX_IDL_FILE.MSCOM) | $$(dir $$@)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_MAIN_IDL) $(IDL_DEFS) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync /out $(call VBOX_FN_MAKE_WIN_PATH,$(VBoxCOM_0_OUTDIR)) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync /cpp_cmd $(subst $(EXEC_X86_WIN32),,$(call VBOX_FN_MAKE_WIN_PATH,$(TOOL_$(VBOX_VCC_TOOL)_CC))) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync /I $(call VBOX_FN_MAKE_WIN_PATH,$(PATH_SDK_WINPSDK_INC)) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(call VBOX_FN_MAKE_WIN_PATH,$<)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(MKDIR) -p $(VBOX_PATH_SDK)/bindings/mscom/include
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(CP) $(VBoxCOM_0_OUTDIR)/VirtualBox.h $(VBOX_PATH_SDK)/bindings/mscom/include
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(MKDIR) -p $(VBOX_PATH_SDK)/bindings/mscom/lib
37a7e3e6f9ce5f6cabeb3f734044e9e8ca9cb1bfvboxsync $(CP) $(VBoxCOM_0_OUTDIR)/VirtualBox.tlb $(VBOX_PATH_SDK)/bindings/mscom/lib
37a7e3e6f9ce5f6cabeb3f734044e9e8ca9cb1bfvboxsync $(CP) $(VBoxCOM_0_OUTDIR)/VirtualBox_i.c $(VBOX_PATH_SDK)/bindings/mscom/lib
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# Translation stuff
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxSVC_VBOX_HEADERS = \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxSVC_VBOX_TRANSLATIONS = \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxC_VBOX_HEADERS = \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxC_VBOX_TRANSLATIONS = \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncifdef VBOX_WITH_JMSCOM
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# Java glue JAR files
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBOX_JMSCOM_JAR = $(VBoxJMscom-inst-jar_0_OUTDIR)/vboxjmscom.jar
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBOX_JMSCOM_TARGET := $(PATH_TARGET)/vboxjmscom-gen
090c459b9e90ca46e2ce2b8c81533ade3b23f3e9vboxsyncVBOX_JMSCOM_GEN = $(VBOX_JMSCOM_TARGET)/jmscomgen
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBOX_JMSCOM_JDEST := $(VBOX_JMSCOM_TARGET)/jdest
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBOX_GLUE_XSLT_DIR := $(PATH_ROOT)/src/VBox/Main/glue
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBOX_JACOB_DIR := $(PATH_ROOT)/src/libs/jacob-1.15-M3
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncINSTALLS += VBoxJMscom-inst-jar
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxJMscom-inst-jar_INST = $(INST_SDK)bindings/mscom/java/
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxJMscom-inst-jar_MODE = a+r,u+w
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxJMscom-inst-jar_SOURCES = \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_JMSCOM_JAR)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxJMscom-inst-jar_CLEAN = \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_JMSCOM_JAR) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_JMSCOM_GEN)/jmscomglue.list \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(wildcard \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_JMSCOM_GEN)/java/*.java \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_JMSCOM_JDEST)/*.class \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_JMSCOM_JDEST)/*/*.class \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_JMSCOM_JDEST)/*/*/*.class \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_JMSCOM_JDEST)/*/*/*/*.class \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncVBoxJMscom-inst-jar_BLDDIRS += $(VBOX_JMSCOM_GEN)/java
b2e90826ea719b22452d1ff7b977d4f40995b428vboxsync$(VBOX_JMSCOM_GEN)/jmscomglue.list: \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_XIDL_FILE) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_GLUE_XSLT_DIR)/glue-java.xsl \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_FILESPLIT) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync | $(VBOX_JMSCOM_GEN)/java/
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(call MSG_L1,Generating Java MSCOM glue files from XIDL)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(QUIET)$(RM) -f $(wildcard $(VBOX_JMSCOM_GEN)/java/*.java)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(QUIET)$(VBOX_XSLTPROC) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync --stringparam G_vboxApiSuffix $(VBOX_API_SUFFIX) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync --stringparam G_vboxGlueStyle mscom \
b2e90826ea719b22452d1ff7b977d4f40995b428vboxsync -o $(VBOX_JMSCOM_GEN)/java/merged.file $(VBOX_GLUE_XSLT_DIR)/glue-java.xsl $<
b2e90826ea719b22452d1ff7b977d4f40995b428vboxsync $(QUIET)$(VBOX_FILESPLIT) $(VBOX_JMSCOM_GEN)/java/merged.file $(VBOX_JMSCOM_GEN)/java
b2e90826ea719b22452d1ff7b977d4f40995b428vboxsync $(QUIET)echo $(VBOX_JMSCOM_GEN)/java/*.java > $@
af0a09edb4c1431b606fe207d4138da008f67f13vboxsync$$(VBOX_JMSCOM_JAR): $(VBOX_JMSCOM_GEN)/jmscomglue.list | $$(dir $$@)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(call MSG_TOOL,javac,$(notdir $@),jmscomgen.list,)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(QUIET)$(RM) -Rf $(VBOX_JMSCOM_JDEST)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(QUIET)$(MKDIR) -p $(VBOX_JMSCOM_JDEST)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(call MSG_TOOL,javac,$(notdir $@),...,)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_JAVAC) $(VBOX_JAVAC_OPTS) \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync @$(VBOX_JMSCOM_GEN)/jmscomglue.list \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync -d $(VBOX_JMSCOM_JDEST) -classpath $(VBOX_JMSCOM_JDEST)$(VBOX_SEP)$(VBOX_JACOB_DIR)/jacob.jar
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(call MSG_LINK,$(notdir $@),$@)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_JAR) cf $@ -C $(VBOX_JMSCOM_JDEST) .
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncendif # VBOX_WITH_JMSCOM
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync# Install Java glue sample code.
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncINSTALLS += javagluesample
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncjavagluesample_INST = $(INST_SDK)bindings/glue/java/
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncjavagluesample_MODE = a+r,u+w
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsyncjavagluesample_SOURCES = \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_PATH_MAIN_SRC)/glue/tests/TestVBox.java=>TestVBox.java \
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_PATH_MAIN_SRC)/glue/tests/Makefile.kmk=>Makefile.kmk
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_LUPDATE) $(VBoxSVC_SOURCES) $(VBoxSVC_VBOX_HEADERS) -ts $(VBoxSVC_VBOX_TRANSLATIONS)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(VBOX_LUPDATE) $(VBoxC_SOURCES) $(VBoxC_VBOX_HEADERS) -ts $(VBoxC_VBOX_TRANSLATIONS)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsynctestconverter:: $(VBOX_USER_HOME)/VirtualBox.xml
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(call MSG_TOOL,xsltproc,Test Settings Converter,$<,$(VBOX_USER_HOME)/VirtualBox.xml.test)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(QUIET)$(VBOX_XSLTPROC) -o $(VBOX_USER_HOME)/VirtualBox.xml.test xml/SettingsConverter.xsl $<
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsynctestconverter2:: $(VBOX_USER_HOME)/Machines/dos/dos.xml
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(call MSG_TOOL,xsltproc,Test Settings Converter,$<,$<.test)
30a23dfc653298a09d77d3045cf873b1bd6ddecfvboxsync $(QUIET)$(VBOX_XSLTPROC) -o $<.test xml/SettingsConverter.xsl $<