Makefile.kmk revision d88186f4bcef7c5a4eb95b58a22fd44a7b5e0375
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync# Makefile for the VBox Main module.
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync# Copyright (C) 2004-2012 Oracle Corporation
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync# available from http://www.virtualbox.org. This file is free software;
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync# you can redistribute it and/or modify it under the terms of the GNU
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync# General Public License (GPL) as published by the Free Software
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsyncSUB_DEPTH = ../../..
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsyncinclude $(KBUILD_PATH)/subheader.kmk
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync# Include sub-makefile(s).
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsyncifdef VBOX_WITH_WEBSERVICES
1497d8948ebb3dba30a7eba43f4d53b7680ea084vboxsync include $(PATH_SUB_CURRENT)/webservice/Makefile.kmk
1497d8948ebb3dba30a7eba43f4d53b7680ea084vboxsyncinclude $(PATH_SUB_CURRENT)/testcase/Makefile.kmk
1497d8948ebb3dba30a7eba43f4d53b7680ea084vboxsyncinclude $(PATH_SUB_CURRENT)/cbinding/Makefile.kmk
1497d8948ebb3dba30a7eba43f4d53b7680ea084vboxsync# Targets and globals (bit of a mess...)
1497d8948ebb3dba30a7eba43f4d53b7680ea084vboxsyncVBOX_PATH_MAIN_SRC := $(PATH_SUB_CURRENT)
1497d8948ebb3dba30a7eba43f4d53b7680ea084vboxsyncifdef VBOX_ONLY_SDK
1497d8948ebb3dba30a7eba43f4d53b7680ea084vboxsync # I'm Evil! Dr. Evil.
1497d8948ebb3dba30a7eba43f4d53b7680ea084vboxsync VBoxCOM_0_OUTDIR = $(PATH_TARGET)/VBoxCOM
1497d8948ebb3dba30a7eba43f4d53b7680ea084vboxsync BLDDIRS += $(VBoxCOM_0_OUTDIR) $(PATH_STAGE_BIN)/components
1497d8948ebb3dba30a7eba43f4d53b7680ea084vboxsync include $(KBUILD_PATH)/tools/$(VBOX_VCC_TOOL).kmk # For the idl /cpp statement.
1497d8948ebb3dba30a7eba43f4d53b7680ea084vboxsync include $(KBUILD_PATH)/sdks/$(VBOX_WINPSDK).kmk
1497d8948ebb3dba30a7eba43f4d53b7680ea084vboxsyncendif # !VBOX_ONLY_SDK
1497d8948ebb3dba30a7eba43f4d53b7680ea084vboxsync# Construct VBOX_MAIN_DEFS
1497d8948ebb3dba30a7eba43f4d53b7680ea084vboxsync## @todo eliminate or expand VBOX_MAIN_DEFS.
1497d8948ebb3dba30a7eba43f4d53b7680ea084vboxsyncVBOX_MAIN_DEFS =
1497d8948ebb3dba30a7eba43f4d53b7680ea084vboxsyncifneq ($(KBUILD_TARGET),win)
1497d8948ebb3dba30a7eba43f4d53b7680ea084vboxsync ifndef VBOX_WITH_XPCOM
1497d8948ebb3dba30a7eba43f4d53b7680ea084vboxsync $(error "VBox: VBOX_WITH_XPCOM isn't defined")
1497d8948ebb3dba30a7eba43f4d53b7680ea084vboxsync ifneq ($(KBUILD_TARGET),os2)
1497d8948ebb3dba30a7eba43f4d53b7680ea084vboxsync VBOX_MAIN_DEFS += VBOX_WITH_SYS_V_IPC_SESSION_WATCHER
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsyncVBOX_MAIN_DEFS += \
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync $(if $(VBOX_WITH_RAW_MODE),VBOX_WITH_RAW_MODE,) \
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync $(if $(VBOX_WITH_NETFLT),VBOX_WITH_NETFLT,) \
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync $(if $(VBOX_WITH_COPYTOGUEST),VBOX_WITH_COPYTOGUEST,) \
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync $(if $(VBOX_WITH_DRAG_AND_DROP),VBOX_WITH_DRAG_AND_DROP,) \
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync $(if $(VBOX_WITH_DRAG_AND_DROP_GH),VBOX_WITH_DRAG_AND_DROP_GH,) \
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync $(if $(VBOX_WITH_CROGL),VBOX_WITH_CROGL,) \
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync $(if $(VBOX_WITH_GUEST_PROPS),VBOX_WITH_GUEST_PROPS,) \
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync $(if $(VBOX_WITH_GUEST_PROPS_RDONLY_GUEST),VBOX_WITH_GUEST_PROPS_RDONLY_GUEST,) \
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync $(if $(VBOX_WITH_GUEST_CONTROL),VBOX_WITH_GUEST_CONTROL,) \
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync $(if $(VBOX_WITH_USB_VIDEO),VBOX_WITH_USB_VIDEO,) \
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync $(if $(VBOX_WITH_USB_CARDREADER),VBOX_WITH_USB_CARDREADER,) \
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync $(if $(VBOX_WITH_USB_CARDREADER_TEST),VBOX_WITH_USB_CARDREADER_TEST,) \
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync $(if $(VBOX_WITH_HOSTNETIF_API),VBOX_WITH_HOSTNETIF_API,) \
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync# Unconditionally enable the new semaphore key generation code
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsyncVBOX_MAIN_DEFS += VBOX_WITH_NEW_SYS_V_KEYGEN
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsyncVBOX_IDL_FILE.MSCOM = $(VBOX_PATH_SDK)/bindings/mscom/idl/VirtualBox.idl
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsyncVBOX_IDL_FILE.XPCOM = $(VBOX_PATH_SDK)/bindings/xpcom/idl/VirtualBox_XPCOM.idl
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsyncVBOX_IDL_TYPELIB.XPCOM = $(PATH_STAGE_BIN)/components/VirtualBox_XPCOM.xpt
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsyncVBOX_IDL_HEADER.XPCOM = $(VBOX_PATH_SDK)/bindings/xpcom/include/VirtualBox_XPCOM.h
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync# The MS COM specific stuff.
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsyncif defined(VBOX_ONLY_SDK) || "$(KBUILD_TARGET)" == "win"
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync OTHERS += \
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync OTHER_CLEAN += \
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync INSTALLS += VBox-mscom-bindings-include VBox-mscom-bindings-lib
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync VBox-mscom-bindings-include_INST = $(INST_SDK)bindings/mscom/include/
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync VBox-mscom-bindings-include_MODE = a+r,u+w
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync VBox-mscom-bindings-include_SOURCES = $(VBoxCOM_0_OUTDIR)/VirtualBox.h
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync VBox-mscom-bindings-include_CLEAN = $(VBoxCOM_0_OUTDIR)/VirtualBox.h
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync VBox-mscom-bindings-lib_INST = $(INST_SDK)bindings/mscom/lib/
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync VBox-mscom-bindings-lib_MODE = a+r,u+w
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync VBox-mscom-bindings-lib_SOURCES = $(VBoxCOM_0_OUTDIR)/VirtualBox_i.c \
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync $(VBoxCOM_0_OUTDIR)/VirtualBox.tlb
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync VBox-mscom-bindings-lib_CLEAN = $(VBoxCOM_0_OUTDIR)/VirtualBox_i.c \
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync $(VBoxCOM_0_OUTDIR)/VirtualBox.tlb
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync BLDDIRS += $(VBOX_PATH_SDK)/bindings/mscom/idl
$(VBOX_IDL_FILE.XPCOM) \
$(VBOX_PATH_SDK)/bindings/xpcom/idl \
$(VBOX_PATH_SDK)/bindings/xpcom/include
$(VBOX_PATH_MAIN_SRC)/idl/docstrip.xsl \
$(QUIET)$(VBOX_XSLTPROC) -o $(VBOX_XIDL_FILE).ts $(VBOX_PATH_MAIN_SRC)/idl/docstrip.xsl $<
$(PATH_TARGET)/docs.Main: \
$(VBOX_PATH_MAIN_SRC)/Doxyfile.Main \
$(VBOX_PATH_MAIN_SRC)/idl/doxygen.xsl \
$(QUIET)$(RM) -f $(wildcard $(VBOX_MAIN_DOC_DIR)/html/*) $(PATH_TARGET)/docs.Main
$(QUIET)$(VBOX_XSLTPROC) -o $(PATH_TARGET)/VirtualBox.idl $(VBOX_PATH_MAIN_SRC)/idl/doxygen.xsl $(VBOX_XIDL_FILE_SRC)
$(QUIET)$(REDIRECT) -E 'DOCDIR=$(VBOX_MAIN_DOC_DIR)' -E 'PATH_TARGET=$(PATH_TARGET)' -E 'PATH_CHM=$(subst /,\,$(VBOX_MAIN_DOC_DIR)/VirtualBoxAPI.chm)' \
-- doxygen $(VBOX_PATH_MAIN_SRC)/Doxyfile.Main
$(QUIET)$(TEST) -s "$(PATH_TARGET)/Main.err" -- $(ECHO_EXT) ">>>>>>>>>>>>>>>>>>>> Main.err: >>>>>>>>>>>>>>>>>>>>>>>>"
$(QUIET)$(TEST) -s "$(PATH_TARGET)/Main.err" -- $(ECHO_EXT) "<<<<<<<<<<<<<<<<<<<< Main.err <<<<<<<<<<<<<<<<<<<<<<<<<"
$(QUIET)$(TEST) -s "$(PATH_TARGET)/Main.err" -- $(ECHO_EXT) "===> **************************************************"
$(QUIET)$(TEST) -s "$(PATH_TARGET)/Main.err" -- $(ECHO_EXT) "===> Please fix above doxygen errors/warnings listed in"
$(QUIET)$(TEST) -s "$(PATH_TARGET)/Main.err" -- $(ECHO_EXT) "===> **************************************************"
-$(EXEC_X86_WIN32) $(VBOX_PATH_HTML_HELP_WORKSHOP)/hhc.exe $(subst /,\\,$(VBOX_MAIN_DOC_DIR)/html/index.hhp)
$(APPEND) $(PATH_TARGET)/docs.Main
docs: $(PATH_TARGET)/docs.Main
VBox-python-glue_INST = $(INST_SDK)installer/vboxapi/
$(VBox-python-glue_0_OUTDIR)/VirtualBox_constants.py
$(VBox-python-glue_0_OUTDIR)/VirtualBox_constants.py
$$(VBox-python-glue_0_OUTDIR)/VirtualBox_constants.py: \
$(VBOX_PATH_MAIN_SRC)/glue/constants-python.xsl \
VBOX_XML_SCHEMADEFS_H = $(PATH_TARGET)/Main/SchemaDefs.h
VBOX_XML_SCHEMADEFS_CPP = $(PATH_TARGET)/Main/SchemaDefs.cpp
VBOX_XML_SCHEMADEFS_XSL = $(VBOX_PATH_MAIN_SRC)/xml/SchemaDefs.xsl
VBOX_AUTOGEN_EVENT_H = $(PATH_TARGET)/Main/VBoxEvents.h
VBOX_AUTOGEN_EVENT_CPP = $(PATH_TARGET)/Main/VBoxEvents.cpp
VBoxSVC_DEFS.win += VBOX_COM_OUTOFPROC_MODULE
VBoxSVC_DEFS.win += _WIN32_WINNT=0x0510
# VBoxSVC_DEFS.linux += VBOX_USE_LIBHAL
VBoxSVC_DEFS.solaris += VBOX_USE_LIBHAL
VBoxSVC_DEFS.freebsd += VBOX_USE_LIBHAL
VBoxSVC_INCS.win = \
VBoxSVC_INCS.os2 = \
$(PATH_ROOT)/src/VBox/HostDrivers/VBoxUSB/os2
$(if $(VBOX_WITH_NAT_SERVICE),src-server/NATServerImpl.cpp,) \
$(if $(VBOX_WITH_XPCOM),src-server/xpcom/server.cpp,)
src-server/linux/USBProxyServiceLinux.cpp_DEFS += VBOX_WITH_SYSFS_BY_DEFAULT
VBoxSVC_LIBS.win += \
$(PATH_SDK_$(VBOX_WINDDK)_LIB)/Newdev.lib \
$(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/comsupp.lib \
$(PATH_SDK_$(VBOX_WINPSDK)_LIB)/WbemUuid.Lib
VBoxSVC_LDFLAGS.darwin = -framework IOKit -framework SystemConfiguration
VBoxSVC_LDFLAGS.darwin += -framework OpenGL
VBoxSVC_LDFLAGS.linux += -rdynamic # for backtrace_symbols()
VBoxSVC_LDFLAGS.darwin += -lproc
VBoxSVC_LDFLAGS.solaris += -lkstat -lnvpair
VBoxSVC_SOURCES += src-server/generic/NetIf-generic.cpp
src-server/win/VBoxSVC.rc_INCS = $(VBoxSVC_0_OUTDIR)
src-server/win/VBoxSVC.rc_DEPS = $(VBoxSVC_0_OUTDIR)/VBoxSVC.rgs $(VBoxSVC_0_OUTDIR)/VBoxSVC-icon.rc
src-server/win/VBoxSVC.rc_CLEAN = $(VBoxSVC_0_OUTDIR)/VBoxSVC.rgs $(VBoxSVC_0_OUTDIR)/VBoxSVC-icon.rc
$$(VBoxSVC_0_OUTDIR)/VBoxSVC-icon.rc: $(MAKEFILE_CURRENT) $(VBOX_WINDOWS_ICON_FILE) | $$(dir $$(@D))
$$(VBoxSVC_0_OUTDIR)/VBoxSVC.rgs: $(VBOX_PATH_MAIN_SRC)/src-all/win/VirtualBox_rgs.xsl $(VBOX_XIDL_FILE) | $$(dir $$(@D))
VBOX_XML_SCHEMA_COMMON = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-common.xsd
VBOX_XML_CONVERTER_TEMPLATE = $(VBOX_PATH_MAIN_SRC)/xml/SettingsConverter.xsl
$$(VBoxSVC_0_OUTDIR)/xml_VirtualBox_settings_xsd.h: $(VBOX_XML_SCHEMA.$(KBUILD_TARGET)) $(VBOX_BIN2C)
$$(VBoxSVC_0_OUTDIR)/xml_VirtualBox_settings_common_xsd.h: $(VBOX_XML_SCHEMA_COMMON) $(VBOX_BIN2C)
$$(VBoxSVC_0_OUTDIR)/xml_SettingsConverter_xsl.h: $(VBOX_XML_CONVERTER_TEMPLATE) $(VBOX_BIN2C)
$(VBOX_XML_SCHEMADEFS_H): $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(KBUILD_TARGET)) $(VBOX_XML_SCHEMA_COMMON) | $$(dir $$@)
$(QUIET)$(VBOX_XSLTPROC) --stringparam mode declare -o $@ $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(KBUILD_TARGET))
$(VBOX_XML_SCHEMADEFS_CPP): $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(KBUILD_TARGET)) $(VBOX_XML_SCHEMA_COMMON) | $$(dir $$@)
$(QUIET)$(VBOX_XSLTPROC) --stringparam mode define -o $@ $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(KBUILD_TARGET))
$(VBOX_AUTOGEN_EVENT_H): $(VBOX_PATH_MAIN_SRC)/idl/comimpl.xsl $(VBOX_XIDL_FILE) | $$(dir $$@)
$(VBOX_AUTOGEN_EVENT_CPP): $(VBOX_PATH_MAIN_SRC)/idl/comimpl.xsl $(VBOX_XIDL_FILE) | $$(dir $$@)
-install_name $(VBOX_DYLD_EXECUTABLE_PATH)/components/VBoxSVCM.dylib \
-exported_symbols_list $(VBoxSVCM_0_OUTDIR)/VBoxSVCM.def
VBoxSVCM_ORDERDEPS += $(VBoxSVCM_0_OUTDIR)/VBoxSVCM.def
VBoxSVCM_CLEAN += $(VBoxSVCM_0_OUTDIR)/VBoxSVCM.def
$$(VBoxSVCM_0_OUTDIR)/VBoxSVCM.def:
VBoxSVCM_INTERMEDIATES += $(VBOX_IDL_HEADER.XPCOM)
VBoxC_DEFS.darwin.x86 = VBOX_WITH_2X_4GB_ADDR_SPACE
VBoxC_DEFS.win.x86 += _WIN32_WINNT=0x0500
VBoxC_DEFS.win.amd64 += _WIN32_WINNT=0x0510
VBoxC_INCS.win = \
-install_name $(VBOX_DYLD_EXECUTABLE_PATH)/components/VBoxC.dylib \
-exported_symbols_list $(VBoxC_0_OUTDIR)/VBoxC.def \
VBoxC_LIBS.win += \
$(PATH_SDK_$(VBOX_WINDDK)_LIB)/Newdev.lib \
$(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/comsupp.lib \
$(PATH_SDK_$(VBOX_WINPSDK)_LIB)/WbemUuid.Lib \
$(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/delayimp.lib
VBoxC_LDFLAGS.darwin += -framework OpenGL
$(if $(VBOX_WITH_USB_VIDEO),src-client/UsbWebcamInterface.cpp,) \
$(if $(VBOX_WITH_USB_CARDREADER),src-client/UsbCardReader.cpp,) \
$(if $(VBOX_WITH_PCI_PASSTHROUGH),src-client/PCIRawDevImpl.cpp,) \
VBoxC_ORDERDEPS += $(VBoxC_0_OUTDIR)/VBoxC.def
VBoxC_CLEAN += $(VBoxC_0_OUTDIR)/VBoxC.def
$$(VBoxC_0_OUTDIR)/VBoxC.def: $(MAKEFILE_CURRENT)
$$(VBoxC_0_OUTDIR)/VBoxC.rgs: $(VBOX_PATH_MAIN_SRC)/src-all/win/VirtualBox_rgs.xsl $(VBOX_XIDL_FILE) | $$(dir $$@)
VBoxCOM_DEFS.x86 += _WIN32_WINNT=0x0500
VBoxCOM_DEFS.amd64 += _WIN32_WINNT=0x0510
$(VBoxCOM_0_OUTDIR)/VirtualBox_i.c
VBoxExtPackHelperApp_LDFLAGS.darwin = -framework Security
VBoxExtPackHelperApp_LDFLAGS.win = /SUBSYSTEM:windows
INSTALLS.win += VBoxMain-com-inst
VBoxMain-com-inst_SOURCES = src-all/win/comregister.cmd
# Installs linux/hardening related things to components.
INSTALLS.linux += VBoxMain-hardening-inst
testidlhdr: $(VBOX_IDL_HEADER.XPCOM)
$(VBoxCOM_0_OUTDIR)/VirtualBox_i.c \
+ $(VBoxCOM_0_OUTDIR)/VirtualBox.h \
VBOX_JMSCOM_JAR = $(VBoxJMscom-inst-jar_0_OUTDIR)/vboxjmscom.jar
VBOX_GLUE_XSLT_DIR := $(PATH_ROOT)/src/VBox/Main/glue
VBOX_JACOB_DIR := $(PATH_ROOT)/src/libs/jacob-1.15-M3
VBoxJMscom-inst-jar_INST = $(INST_SDK)bindings/mscom/java/
$(VBOX_JMSCOM_GEN)/jmscomglue.list \
$(VBOX_JMSCOM_GEN)/jmscomglue.list: \
$(VBOX_GLUE_XSLT_DIR)/glue-java.xsl \
$(QUIET)$(VBOX_FILESPLIT) $(VBOX_JMSCOM_GEN)/java/merged.file $(VBOX_JMSCOM_GEN)/java
$$(VBOX_JMSCOM_JAR): $(VBOX_JMSCOM_GEN)/jmscomglue.list | $$(dir $$@)
$(call MSG_TOOL,javac,$(notdir $@),jmscomgen.list,)
@$(VBOX_JMSCOM_GEN)/jmscomglue.list \
-d $(VBOX_JMSCOM_JDEST) -classpath $(VBOX_JMSCOM_JDEST)$(VBOX_SEP)$(VBOX_JACOB_DIR)/jacob.jar
## @todo compile TestVBox.java (see below) to have sanity checking
javagluesample_INST = $(INST_SDK)bindings/glue/java/
$(VBOX_PATH_MAIN_SRC)/glue/tests/Makefile=>Makefile
testconverter:: $(VBOX_USER_HOME)/VirtualBox.xml
$(call MSG_TOOL,xsltproc,Test Settings Converter,$<,$(VBOX_USER_HOME)/VirtualBox.xml.test)
testconverter2:: $(VBOX_USER_HOME)/Machines/dos/dos.xml
$(QUIET)$(VBOX_XSLTPROC) -o $<.test xml/SettingsConverter.xsl $<