Makefile.kmk revision 28d4dbbfa7d1c70c7005970547915b8a3a1eefbe
2N/A# available from http://www.virtualbox.org. This file is free software;
2N/A# Clara, CA 95054 USA or visit http://www.sun.com if you need
2N/Ainclude $(KBUILD_PATH)/subheader.kmk
2N/A include $(PATH_SUB_CURRENT)/webservice/Makefile.kmk
2N/Ainclude $(PATH_SUB_CURRENT)/testcase/Makefile.kmk
2N/Ainclude $(PATH_SUB_CURRENT)/cbinding/Makefile.kmk
include $(KBUILD_PATH)/tools/VCC70.kmk
include $(KBUILD_PATH)/sdks/WINPSDK.kmk
$(VBOX_IDL_FILE.MSCOM) \
$(VBOX_PATH_SDK)/bindings/mscom/include/VirtualBox.h \
$(VBOX_PATH_SDK)/bindings/mscom/lib/VirtualBox.tlb \
$(VBOX_PATH_SDK)/bindings/mscom/lib/VirtualBox_i.c
$(VBOX_IDL_FILE.MSCOM) \
$(VBOX_PATH_SDK)/bindings/mscom/include/VirtualBox.h \
$(VBOX_PATH_SDK)/bindings/mscom/lib/VirtualBox.tlb \
$(VBOX_PATH_SDK)/bindings/mscom/lib/VirtualBox_i.c \
$(PATH_VBoxCOM)/VirtualBox.h \
$(PATH_VBoxCOM)/VirtualBox_i.c \
$(PATH_VBoxCOM)/VirtualBox.tlb
VBOX_MAIN_PREREQS += $(PATH_VBoxCOM)/VirtualBox_i.c
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 \
$(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 \
$(RM) -f $(wildcard $(VBOX_MAIN_DOC_DIR)/html/*) $(PATH_TARGET)/docs.Main
$(VBOX_XSLTPROC) -o $(PATH_TARGET)/VirtualBox.idl $(VBOX_PATH_MAIN_SRC)/idl/doxygen.xsl $(VBOX_XIDL_FILE_SRC)
$(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
-$(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_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
VBoxSVC_DEFS.win += VBOX_COM_OUTOFPROC_MODULE
VBoxSVC_DEFS.win.x86 += _WIN32_WINNT=0x0500
VBoxSVC_DEFS.win.amd64 += _WIN32_WINNT=0x0510
# VBoxSVC_DEFS.linux += VBOX_USE_LIBHAL
VBoxSVC_DEFS.solaris += VBOX_USE_LIBHAL
VBoxSVC_DEFS.solaris += VBOX_SOLARIS_NSL_RESOLVED
VBoxSVC_INCS.win = \
VBoxSVC_INCS.os2 = \
$(PATH_ROOT)/src/VBox/HostDrivers/VBoxUSB/os2
VBoxSVC_LIBS.solaris += devinfo
VBoxSVC_LIBS.solaris += socket
VBoxSVC_LIBS.solaris += \
$(if $(VBOX_WITH_VRDP),VRDPServerImpl.cpp,) \
$(if $(VBOX_WITH_XPCOM),xpcom/server.cpp,) \
VBoxSVC_INCS.win += $(foreach VARSDK, $(VBoxSVC_SDKS), $(PATH_SDK_$(VARSDK)_INC)/crt)
#needed to include comsupp.lib
#VBoxSVC_LIBPATH.win += $(if $(VBOX_USE_VCC80),$(PATH_TOOL_VCC80_LIB),$(PATH_TOOL_VCC70_LIB))
VBoxSVC_DEFS.win += VBOX_NETFLT_ONDEMAND_BIND
VBoxSVC_LDFLAGS.darwin = -framework IOKit -framework SystemConfiguration
VBoxSVC_LDFLAGS.linux += -rdynamic # for backtrace_symbols()
VBoxSVC_LDFLAGS.darwin += -lproc
VBoxSVC_LDFLAGS.solaris += -lkstat
win/VBoxSVC.rc_INCS = $(PATH_VBoxSVC)
$$(PATH_VBoxSVC)/VBoxSVC-icon.rc: $(MAKEFILE_CURRENT) $(VBOX_WINDOWS_ICON_FILE) | $$(dir $$(@D))
$$(PATH_VBoxSVC)/VBoxSVC.rgs: $(VBOX_PATH_MAIN_SRC)/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
$$(PATH_VBoxSVC)/xml_VirtualBox_settings_xsd.h: $(VBOX_XML_SCHEMA.$(KBUILD_TARGET)) $(VBOX_BIN2C)
$$(PATH_VBoxSVC)/xml_VirtualBox_settings_common_xsd.h: $(VBOX_XML_SCHEMA_COMMON) $(VBOX_BIN2C)
$$(PATH_VBoxSVC)/xml_SettingsConverter_xsl.h: $(VBOX_XML_CONVERTER_TEMPLATE) $(VBOX_BIN2C)
$(PATH_VBoxSVC)/xml_VirtualBox_settings_xsd.h \
$(PATH_VBoxSVC)/xml_VirtualBox_settings_common_xsd.h \
$(PATH_VBoxSVC)/xml_SettingsConverter_xsl.h
VBoxSVC_CLEAN += $(VirtualBoxImplExtra.cpp_DEPS)
$(VBOX_XML_SCHEMADEFS_H): $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(KBUILD_TARGET)) $(VBOX_XML_SCHEMA_COMMON) | $$(dir $$@)
$(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 $$@)
$(VBOX_XSLTPROC) --stringparam mode define -o $@ $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(KBUILD_TARGET))
-install_name $(VBOX_DYLD_EXECUTABLE_PATH)/components/VBoxSVCM.dylib \
-exported_symbols_list $(PATH_VBoxSVCM)/VBoxSVCM.def
VBoxSVCM_ORDERDEPS += $(PATH_VBoxSVCM)/VBoxSVCM.def
VBoxSVCM_CLEAN += $(PATH_VBoxSVCM)/VBoxSVCM.def
$$(PATH_VBoxSVCM)/VBoxSVCM.def:
VBoxSVCM_INTERMEDIATES += $(VBOX_IDL_HEADER.XPCOM)
VBoxSettings_LDFLAGS.darwin = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/$(notdir $(LIB_SETTINGS)) -Wl,-x # no debug info please.
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 $(PATH_VBoxC)/VBoxC.def
VBoxC_LDFLAGS.win = /MANIFEST
VBoxC_ORDERDEPS += $(PATH_VBoxC)/VBoxC.def
VBoxC_CLEAN += $(PATH_VBoxC)/VBoxC.def
$$(PATH_VBoxC)/VBoxC.def: $(MAKEFILE_CURRENT)
Version.cpp_DEFS = VBOX_SVN_REV=$(VBOX_SVN_REV)
Version.cpp_DEPS = $(VBOX_SVN_REV_KMK)
$$(PATH_VBoxC)/VBoxC.rgs: $(VBOX_PATH_MAIN_SRC)/win/VirtualBox_rgs.xsl $(VBOX_XIDL_FILE) | $$(PATH_VBoxC)/
VBoxCOM_DEFS.x86 += _WIN32_WINNT=0x0500
VBoxCOM_DEFS.amd64 += _WIN32_WINNT=0x0510
$(PATH_VBoxCOM)/VirtualBox_i.c
INSTALLS.win += VBoxMain-com-inst
include $(KBUILD_PATH)/subfooter.kmk
$(PATH_SDK_WINPSDK_BIN)/Midl.Exe\
$(PATH_SDK_WINPSDK)/Bin/Midl.Exe\
$(PATH_DEVTOOLS)/win.x86/bin/midl.exe\
testidlhdr: $(VBOX_IDL_HEADER.XPCOM)
## @todo r=bird: last changes to this rule showed incorrect dependencies here as it broke testcase (see testboxwin2).
# What needs to be done is to not depend on _i.c in the object subdir, but on all the final outputs.
$(PATH_VBoxCOM)/VirtualBox_i.c \
+ $(VBOX_PATH_SDK)/bindings/mscom/lib/VirtualBox_i.c \
+ $(PATH_VBoxCOM)/VirtualBox.h \
+ $(VBOX_PATH_SDK)/bindings/mscom/include/VirtualBox.h \
+ $(PATH_VBoxCOM)/VirtualBox.tlb \
+ $(VBOX_PATH_SDK)/bindings/mscom/lib/VirtualBox.tlb: $(VBOX_IDL_FILE.MSCOM) | $(call DIRDEP,$(PATH_VBoxCOM))
$(MKDIR) -p $(VBOX_PATH_SDK)/bindings/mscom/include
$(MKDIR) -p $(VBOX_PATH_SDK)/bindings/mscom/lib
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 $<