Makefile.kmk revision 2b964164962743a971f3043c4a1fd06b94600545
c28749e97052f09388969427adf7df641cdcdc22kais# $Id$
c28749e97052f09388969427adf7df641cdcdc22kais## @file
c28749e97052f09388969427adf7df641cdcdc22kais# Makefile for the VBox Main module.
c28749e97052f09388969427adf7df641cdcdc22kais#
968d6dde54d2efa62910a3cf36438325d0b69031krishna
968d6dde54d2efa62910a3cf36438325d0b69031krishna#
c28749e97052f09388969427adf7df641cdcdc22kais# Copyright (C) 2006-2007 innotek GmbH
c28749e97052f09388969427adf7df641cdcdc22kais#
c28749e97052f09388969427adf7df641cdcdc22kais# This file is part of VirtualBox Open Source Edition (OSE), as
c28749e97052f09388969427adf7df641cdcdc22kais# available from http://www.virtualbox.org. This file is free software;
c28749e97052f09388969427adf7df641cdcdc22kais# you can redistribute it and/or modify it under the terms of the GNU
c28749e97052f09388969427adf7df641cdcdc22kais# General Public License as published by the Free Software Foundation,
c28749e97052f09388969427adf7df641cdcdc22kais# in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
c28749e97052f09388969427adf7df641cdcdc22kais# distribution. VirtualBox OSE is distributed in the hope that it will
c28749e97052f09388969427adf7df641cdcdc22kais# be useful, but WITHOUT ANY WARRANTY of any kind.
c28749e97052f09388969427adf7df641cdcdc22kais#
c28749e97052f09388969427adf7df641cdcdc22kais# If you received this file as part of a commercial VirtualBox
c28749e97052f09388969427adf7df641cdcdc22kais# distribution, then only the terms of your commercial VirtualBox
c28749e97052f09388969427adf7df641cdcdc22kais# license agreement apply instead of the previous paragraph.
c28749e97052f09388969427adf7df641cdcdc22kais#
c28749e97052f09388969427adf7df641cdcdc22kais
51144063f3afc862c6cb3f54fd4341724f765075Krishna YenduriDEPTH = ../../..
c28749e97052f09388969427adf7df641cdcdc22kaisinclude $(PATH_KBUILD)/header.kmk
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaisSUBDIRS_AFTER = testcase
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaisifndef VBOX_OSE
c28749e97052f09388969427adf7df641cdcdc22kaisSUBDIRS_AFTER += webservice
c28749e97052f09388969427adf7df641cdcdc22kaisendif
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaisLIBRARIES = VBoxCOM
c28749e97052f09388969427adf7df641cdcdc22kaisDLLS = VBoxXML VBoxC
c28749e97052f09388969427adf7df641cdcdc22kaisPROGRAMS = VBoxSVC
c28749e97052f09388969427adf7df641cdcdc22kaisifneq ($(BUILD_TARGET),win)
c28749e97052f09388969427adf7df641cdcdc22kais ifndef VBOX_WITH_XPCOM
c28749e97052f09388969427adf7df641cdcdc22kais $(error "VBox: VBOX_WITH_XPCOM isn't defined")
c28749e97052f09388969427adf7df641cdcdc22kais endif
c28749e97052f09388969427adf7df641cdcdc22kais DLLS += VBoxSVCM
c28749e97052f09388969427adf7df641cdcdc22kais ifneq ($(BUILD_TARGET),os2)
c28749e97052f09388969427adf7df641cdcdc22kais DEFS += VBOX_WITH_SYS_V_IPC_SESSION_WATCHER
c28749e97052f09388969427adf7df641cdcdc22kais endif
c28749e97052f09388969427adf7df641cdcdc22kais DEFS += VBOX_WITH_UNIXY_TAP_NETWORKING
c28749e97052f09388969427adf7df641cdcdc22kaisendif
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais#PROGRAMS = tstCFGLdr
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaisifeq ($(BUILD_TARGET),win)
c28749e97052f09388969427adf7df641cdcdc22kais OTHERS = $(PATH_BIN)/comregister.cmd
c28749e97052f09388969427adf7df641cdcdc22kais IDLFILE = $(VBOX_PATH_SDK)/idl/VirtualBox.idl
c28749e97052f09388969427adf7df641cdcdc22kais OTHER_CLEAN = \
c28749e97052f09388969427adf7df641cdcdc22kais $(PATH_BIN)/comregister.cmd \
c28749e97052f09388969427adf7df641cdcdc22kais $(VBOX_PATH_SDK)/include/VirtualBox.h \
c28749e97052f09388969427adf7df641cdcdc22kais $(IDLFILE) \
c28749e97052f09388969427adf7df641cdcdc22kais $(VBOX_PATH_SDK)/lib/VirtualBox.tlb \
c28749e97052f09388969427adf7df641cdcdc22kais $(VBOX_PATH_SDK)/lib/VirtualBox_i.c \
c28749e97052f09388969427adf7df641cdcdc22kais $(PATH_VBoxCOM)/VirtualBox.h \
2bd70d4be73561631df9cb3d9eb4c65fa94fa665krishna $(PATH_VBoxCOM)/VirtualBox_i.c \
c28749e97052f09388969427adf7df641cdcdc22kais $(PATH_VBoxCOM)/VirtualBox.tlb
2bd70d4be73561631df9cb3d9eb4c65fa94fa665krishnaelse
2bd70d4be73561631df9cb3d9eb4c65fa94fa665krishna INSTALLS = xpcom-components
c28749e97052f09388969427adf7df641cdcdc22kais IDLFILE = $(VBOX_PATH_SDK)/idl/VirtualBox_XPCOM.idl
2bd70d4be73561631df9cb3d9eb4c65fa94fa665krishna ifeq ($(BUILD_TARGET),linux)
2bd70d4be73561631df9cb3d9eb4c65fa94fa665krishna IDLTYPELIB = $(PATH_BIN)/VirtualBox_XPCOM.xpt
c28749e97052f09388969427adf7df641cdcdc22kais else
2bd70d4be73561631df9cb3d9eb4c65fa94fa665krishna IDLTYPELIB = $(PATH_BIN)/components/VirtualBox_XPCOM.xpt
2bd70d4be73561631df9cb3d9eb4c65fa94fa665krishna endif
c28749e97052f09388969427adf7df641cdcdc22kais IDLHEADER = $(VBOX_PATH_SDK)/include/VirtualBox_XPCOM.h
2bd70d4be73561631df9cb3d9eb4c65fa94fa665krishna OTHERS = $(IDLTYPELIB)
2bd70d4be73561631df9cb3d9eb4c65fa94fa665krishna OTHER_CLEAN = \
2bd70d4be73561631df9cb3d9eb4c65fa94fa665krishna $(IDLFILE) \
2bd70d4be73561631df9cb3d9eb4c65fa94fa665krishna $(IDLHEADER) \
2bd70d4be73561631df9cb3d9eb4c65fa94fa665krishna $(IDLTYPELIB)
2bd70d4be73561631df9cb3d9eb4c65fa94fa665krishna
2bd70d4be73561631df9cb3d9eb4c65fa94fa665krishnaendif
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais#
c28749e97052f09388969427adf7df641cdcdc22kais# The Main API documentation
c28749e97052f09388969427adf7df641cdcdc22kais#
c28749e97052f09388969427adf7df641cdcdc22kaisdocs: $(PATH_TARGET)/docs.Main
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais$(PATH_TARGET)/docs.Main: \
c28749e97052f09388969427adf7df641cdcdc22kais Doxyfile.Main \
c28749e97052f09388969427adf7df641cdcdc22kais idl/doxygen.xsl \
c28749e97052f09388969427adf7df641cdcdc22kais idl/VirtualBox.xidl \
c28749e97052f09388969427adf7df641cdcdc22kais | $(call DIRDEP, $(PATH_TARGET)) \
c28749e97052f09388969427adf7df641cdcdc22kais $(call DIRDEP, $(PATH_OUT)/docs/Main)
c28749e97052f09388969427adf7df641cdcdc22kais $(RM) -f $(wildcard $(PATH_OUT)/docs/Main/html/*)
c28749e97052f09388969427adf7df641cdcdc22kais $(VBOX_XSLTPROC) -o $(PATH_TARGET)/VirtualBox.idl idl/doxygen.xsl idl/VirtualBox.xidl
c28749e97052f09388969427adf7df641cdcdc22kais PATH_OUT="$(PATH_OUT)" PATH_TARGET="$(PATH_TARGET)" PATH_CHM="$(subst /,\\,$(PATH_BIN)/VirtualBoxAPI.chm)" doxygen Doxyfile.Main
c28749e97052f09388969427adf7df641cdcdc22kais -$(EXEC_X86_WIN32) $(VBOX_PATH_HTML_HELP_WORKSHOP)/hhc.exe $(subst /,\\,$(PATH_OUT)/docs/Main/html/index.hhp)
c28749e97052f09388969427adf7df641cdcdc22kais $(APPEND) $(PATH_TARGET)/docs.Main
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais$(call DIRDEP, $(PATH_OUT)/docs/Main):
c28749e97052f09388969427adf7df641cdcdc22kais $(MKDIR) -p $@
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais#
c28749e97052f09388969427adf7df641cdcdc22kais# VBoxSVC executable
c28749e97052f09388969427adf7df641cdcdc22kais#
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxSVC_TEMPLATE = VBOXMAINEXE
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxSVC_DEFS = CFGLDR_HAVE_COM IN_CFGLDR_R3
c28749e97052f09388969427adf7df641cdcdc22kaisifdef VBOX_WITH_VRDP
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxSVC_DEFS += VBOX_VRDP IN_VRDP_R3
c28749e97052f09388969427adf7df641cdcdc22kaisendif
c28749e97052f09388969427adf7df641cdcdc22kaisifdef VBOX_WITH_HGCM
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxSVC_DEFS += VBOX_HGCM
c28749e97052f09388969427adf7df641cdcdc22kaisendif
c28749e97052f09388969427adf7df641cdcdc22kaisifdef VBOX_MAIN_RELEASE_LOG
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxSVC_DEFS += VBOX_MAIN_RELEASE_LOG LOG_ENABLED
c28749e97052f09388969427adf7df641cdcdc22kaisendif
c28749e97052f09388969427adf7df641cdcdc22kaisifdef VBOX_WITH_USB
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxSVC_DEFS += VBOX_WITH_USB
c28749e97052f09388969427adf7df641cdcdc22kaisendif
c28749e97052f09388969427adf7df641cdcdc22kaisifdef VBOX_WITH_ALSA
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxSVC_DEFS += VBOX_WITH_ALSA
c28749e97052f09388969427adf7df641cdcdc22kaisendif
c28749e97052f09388969427adf7df641cdcdc22kaisifdef VBOX_WITH_WINMM
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxSVC_DEFS += VBOX_WITH_WINMM
c28749e97052f09388969427adf7df641cdcdc22kaisendif
c28749e97052f09388969427adf7df641cdcdc22kaisifdef VBOX_WITHOUT_LINUX_COMPILER_H
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxSVC_DEFS += VBOX_WITHOUT_LINUX_COMPILER_H
c28749e97052f09388969427adf7df641cdcdc22kaisendif
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxSVC_DEFS.win += VBOX_COM_OUTOFPROC_MODULE
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxSVC_DEFS.win.x86 += _WIN32_WINNT=0x0500
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxSVC_DEFS.win.amd64 += _WIN32_WINNT=0x0510
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxSVC_INCS = \
c28749e97052f09388969427adf7df641cdcdc22kais include \
c28749e97052f09388969427adf7df641cdcdc22kais $(PATH_VBoxSVC) \
c28749e97052f09388969427adf7df641cdcdc22kais $(PATH_VBoxCOM) \
c28749e97052f09388969427adf7df641cdcdc22kais $(PATH_CURRENT)
c28749e97052f09388969427adf7df641cdcdc22kaisifeq ($(BUILD_TARGET),win)
c28749e97052f09388969427adf7df641cdcdc22kais VBoxSVC_LIBS += \
c28749e97052f09388969427adf7df641cdcdc22kais $(PATH_LIB)/VBoxDDU$(VBOX_SUFF_LIB) \
c28749e97052f09388969427adf7df641cdcdc22kais $(PATH_LIB)/VBoxXML$(VBOX_SUFF_LIB)
c28749e97052f09388969427adf7df641cdcdc22kaiselse
c28749e97052f09388969427adf7df641cdcdc22kais VBoxSVC_LIBS += \
c28749e97052f09388969427adf7df641cdcdc22kais $(PATH_BIN)/VBoxDDU$(VBOX_SUFF_DLL) \
c28749e97052f09388969427adf7df641cdcdc22kais $(PATH_BIN)/VBoxXML$(VBOX_SUFF_DLL)
c28749e97052f09388969427adf7df641cdcdc22kaisendif
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxSVC_LIBS.darwin = \
c28749e97052f09388969427adf7df641cdcdc22kais $(LIB_VMM) \
c28749e97052f09388969427adf7df641cdcdc22kais $(LIB_REM)
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaisifdef VBOX_WITH_LIBHAL
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxSVC_CXXFLAGS += \
c28749e97052f09388969427adf7df641cdcdc22kais $(LIB_HAL_CFLAGS)
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxSVC_LIBPATH += \
c28749e97052f09388969427adf7df641cdcdc22kais $(LIB_HAL_LIBPATH)
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxSVC_LIBS += \
c28749e97052f09388969427adf7df641cdcdc22kais $(LIB_HAL_LIBS)
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxSVC_DEFS += \
c28749e97052f09388969427adf7df641cdcdc22kais VBOX_USE_LIBHAL
efe05f9ecde56550699213909fd4152ef8ef6438krishnaendif
efe05f9ecde56550699213909fd4152ef8ef6438krishna
efe05f9ecde56550699213909fd4152ef8ef6438krishnaVBoxSVC_SOURCES = \
efe05f9ecde56550699213909fd4152ef8ef6438krishna Logging.cpp \
efe05f9ecde56550699213909fd4152ef8ef6438krishna Matching.cpp \
efe05f9ecde56550699213909fd4152ef8ef6438krishna USBDeviceFilterImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais USBProxyService.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais VirtualBoxBase.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais VirtualBoxXMLUtil.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais VirtualBoxErrorInfoImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais VirtualBoxImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais MachineImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais SnapshotImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais HardDiskImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais HardDiskAttachmentImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais ProgressImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais DVDDriveImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais DVDImageImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais FloppyDriveImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais FloppyImageImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais HostImpl.cpp \
efe05f9ecde56550699213909fd4152ef8ef6438krishna HostDVDDriveImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais HostFloppyDriveImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais HostUSBDeviceImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais GuestOSTypeImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais NetworkAdapterImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais USBControllerImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais AudioAdapterImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais SharedFolderImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais SystemPropertiesImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais BIOSSettingsImpl.cpp
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaisifdef VBOX_WITH_VRDP
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxSVC_SOURCES += VRDPServerImpl.cpp
c28749e97052f09388969427adf7df641cdcdc22kaisendif
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxSVC_SOURCES.darwin = \
c28749e97052f09388969427adf7df641cdcdc22kais darwin/iokit.cpp
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxSVC_SOURCES.win = \
c28749e97052f09388969427adf7df641cdcdc22kais HostNetworkInterfaceImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais win32/svcmain.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais win32/svchlp.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais win32/VBoxSVC.rc
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaisifdef VBOX_WITH_XPCOM
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxSVC_SOURCES += \
c28749e97052f09388969427adf7df641cdcdc22kais linux/server.cpp
efe05f9ecde56550699213909fd4152ef8ef6438krishnaendif
efe05f9ecde56550699213909fd4152ef8ef6438krishna
c28749e97052f09388969427adf7df641cdcdc22kaisifdef VBOX_WITH_USB
efe05f9ecde56550699213909fd4152ef8ef6438krishnaVBoxSVC_SOURCES.darwin += darwin/USBProxyServiceDarwin.cpp
efe05f9ecde56550699213909fd4152ef8ef6438krishnaVBoxSVC_SOURCES.linux += linux/USBProxyServiceLinux.cpp
efe05f9ecde56550699213909fd4152ef8ef6438krishnaVBoxSVC_SOURCES.win += win32/USBProxyServiceWin32.cpp
efe05f9ecde56550699213909fd4152ef8ef6438krishnaendif
efe05f9ecde56550699213909fd4152ef8ef6438krishna
efe05f9ecde56550699213909fd4152ef8ef6438krishnaVBoxSVC_LDFLAGS.darwin = -framework IOKit
efe05f9ecde56550699213909fd4152ef8ef6438krishnaifeq ($(BUILD_TYPE),debug)
efe05f9ecde56550699213909fd4152ef8ef6438krishnaVBoxSVC_LDFLAGS.linux += -rdynamic # for backtrace_symbols()
efe05f9ecde56550699213909fd4152ef8ef6438krishnaendif
efe05f9ecde56550699213909fd4152ef8ef6438krishna
efe05f9ecde56550699213909fd4152ef8ef6438krishna#
efe05f9ecde56550699213909fd4152ef8ef6438krishna# VBoxSVC wrapper module
efe05f9ecde56550699213909fd4152ef8ef6438krishna#
efe05f9ecde56550699213909fd4152ef8ef6438krishna
efe05f9ecde56550699213909fd4152ef8ef6438krishnaifdef VBOX_WITH_XPCOM
efe05f9ecde56550699213909fd4152ef8ef6438krishna
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxSVCM_TEMPLATE = VBOXMAINDLL
efe05f9ecde56550699213909fd4152ef8ef6438krishnaifneq ($(BUILD_TARGET),linux)
efe05f9ecde56550699213909fd4152ef8ef6438krishnaVBoxSVCM_INST = $(INST_BIN)components/
efe05f9ecde56550699213909fd4152ef8ef6438krishnaendif
efe05f9ecde56550699213909fd4152ef8ef6438krishnaVBoxSVCM_DEFS = IN_RING3 IN_CFGLDR_R3
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxSVCM_INCS = \
c28749e97052f09388969427adf7df641cdcdc22kais include \
efe05f9ecde56550699213909fd4152ef8ef6438krishna $(PATH_VBoxC) \
efe05f9ecde56550699213909fd4152ef8ef6438krishna $(PATH_CURRENT)
efe05f9ecde56550699213909fd4152ef8ef6438krishnaVBoxSVCM_SOURCES = \
efe05f9ecde56550699213909fd4152ef8ef6438krishna linux/server_module.cpp
efe05f9ecde56550699213909fd4152ef8ef6438krishnaVBoxSVCM_LDFLAGS.darwin = \
efe05f9ecde56550699213909fd4152ef8ef6438krishna -install_name @executable_path/components/VBoxSVCM.dylib \
efe05f9ecde56550699213909fd4152ef8ef6438krishna -exported_symbols_list $(PATH_TARGET)/VBoxSVCM.def
efe05f9ecde56550699213909fd4152ef8ef6438krishnaifeq ($(BUILD_TARGET),darwin)
efe05f9ecde56550699213909fd4152ef8ef6438krishnaVBoxSVCM_ORDERDEPS += $(PATH_TARGET)/VBoxSVCM.def
efe05f9ecde56550699213909fd4152ef8ef6438krishnaVBoxSVCM_CLEAN += $(PATH_TARGET)/VBoxSVCM.def
efe05f9ecde56550699213909fd4152ef8ef6438krishna$(PATH_TARGET)/VBoxSVCM.def:
efe05f9ecde56550699213909fd4152ef8ef6438krishna $(RM) -f $@
efe05f9ecde56550699213909fd4152ef8ef6438krishna $(APPEND) $@ _NSGetModule
efe05f9ecde56550699213909fd4152ef8ef6438krishnaendif
efe05f9ecde56550699213909fd4152ef8ef6438krishna
efe05f9ecde56550699213909fd4152ef8ef6438krishnaendif # VBOX_WITH_XPCOM
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais#
efe05f9ecde56550699213909fd4152ef8ef6438krishna# VBoxC module
efe05f9ecde56550699213909fd4152ef8ef6438krishna#
efe05f9ecde56550699213909fd4152ef8ef6438krishna
51dd2c77f06e5663c28bd4f7a760cae4cf159e79vkVBoxC_TEMPLATE = VBOXMAINDLL
51dd2c77f06e5663c28bd4f7a760cae4cf159e79vkifneq ($(filter-out linux win,$(BUILD_TARGET)),)
efe05f9ecde56550699213909fd4152ef8ef6438krishnaVBoxC_INST = $(INST_BIN)components/
efe05f9ecde56550699213909fd4152ef8ef6438krishnaendif
c28749e97052f09388969427adf7df641cdcdc22kais
efe05f9ecde56550699213909fd4152ef8ef6438krishnaVBoxC_DEFS = IN_RING3 IN_CFGLDR_R3
efe05f9ecde56550699213909fd4152ef8ef6438krishnaVBoxC_DEFS += VBOX_COM_INPROC
efe05f9ecde56550699213909fd4152ef8ef6438krishna
efe05f9ecde56550699213909fd4152ef8ef6438krishnaifdef VBOX_WITH_VRDP
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxC_DEFS += VBOX_VRDP IN_VRDP_R3
51dd2c77f06e5663c28bd4f7a760cae4cf159e79vkendif
c28749e97052f09388969427adf7df641cdcdc22kaisifdef VBOX_WITH_HGCM
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxC_DEFS += VBOX_HGCM
c28749e97052f09388969427adf7df641cdcdc22kaisendif
c28749e97052f09388969427adf7df641cdcdc22kaisifdef VBOX_MAIN_RELEASE_LOG
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxC_DEFS += VBOX_MAIN_RELEASE_LOG LOG_ENABLED
51dd2c77f06e5663c28bd4f7a760cae4cf159e79vkendif
c28749e97052f09388969427adf7df641cdcdc22kaisifdef VBOX_WITH_USB
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxC_DEFS += VBOX_WITH_USB
c28749e97052f09388969427adf7df641cdcdc22kaisendif
c28749e97052f09388969427adf7df641cdcdc22kaisifdef VBOX_WITH_ALSA
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxC_DEFS += VBOX_WITH_ALSA
c28749e97052f09388969427adf7df641cdcdc22kaisendif
c28749e97052f09388969427adf7df641cdcdc22kaisifdef VBOX_WITH_WINMM
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxC_DEFS += VBOX_WITH_WINMM
c28749e97052f09388969427adf7df641cdcdc22kaisendif
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxC_DEFS.win.x86 += _WIN32_WINNT=0x0500
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxC_DEFS.win.amd64 += _WIN32_WINNT=0x0510
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxC_INCS = \
c28749e97052f09388969427adf7df641cdcdc22kais include \
c28749e97052f09388969427adf7df641cdcdc22kais $(PATH_VBoxC) \
c28749e97052f09388969427adf7df641cdcdc22kais $(PATH_VBoxCOM)
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxC_INCS.win := \
c28749e97052f09388969427adf7df641cdcdc22kais $(PATH_SUB_CURRENT)
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxC_LDFLAGS.darwin = \
c28749e97052f09388969427adf7df641cdcdc22kais -install_name @executable_path/components/VBoxSVCM.dylib \
c28749e97052f09388969427adf7df641cdcdc22kais -exported_symbols_list $(PATH_TARGET)/VBoxC.def
c28749e97052f09388969427adf7df641cdcdc22kaisifdef VBOX_USE_VCC80
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxC_LDFLAGS.win = /MANIFEST
c28749e97052f09388969427adf7df641cdcdc22kaisendif
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxC_LIBS += \
c28749e97052f09388969427adf7df641cdcdc22kais $(LIB_VMM) \
c28749e97052f09388969427adf7df641cdcdc22kais $(LIB_REM)
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxC_SOURCES = \
c28749e97052f09388969427adf7df641cdcdc22kais Logging.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais VBoxDll.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais USBDeviceImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais RemoteUSBDeviceImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais VirtualBoxBase.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais VirtualBoxErrorInfoImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais ProgressImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais SharedFolderImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais SessionImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais ConsoleImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais ConsoleVRDPServer.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais GuestImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais KeyboardImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais MouseImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais DisplayImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais FramebufferImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais MachineDebuggerImpl.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais VBoxDriversRegister.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais AudioSnifferInterface.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais VMMDevInterface.cpp
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxC_SOURCES.win = \
c28749e97052f09388969427adf7df641cdcdc22kais win32/dllmain.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais win32/VBoxC.def \
c28749e97052f09388969427adf7df641cdcdc22kais win32/VBoxC.rc
c28749e97052f09388969427adf7df641cdcdc22kaisifdef VBOX_WITH_XPCOM
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxC_SOURCES += \
c28749e97052f09388969427adf7df641cdcdc22kais linux/module.cpp
c28749e97052f09388969427adf7df641cdcdc22kaisendif
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaisifdef VBOX_WITH_HGCM
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxC_SOURCES += \
c28749e97052f09388969427adf7df641cdcdc22kais hgcm/HGCMObjects.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais hgcm/HGCMThread.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais hgcm/HGCM.cpp
c28749e97052f09388969427adf7df641cdcdc22kaisendif
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaisifdef VBOX_WITH_USB
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxC_SOURCES += \
c28749e97052f09388969427adf7df641cdcdc22kais RemoteUSBBackend.cpp
c28749e97052f09388969427adf7df641cdcdc22kaisendif
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaisifeq ($(BUILD_TARGET),darwin)
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxC_ORDERDEPS += $(PATH_TARGET)/VBoxC.def
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxC_CLEAN += $(PATH_TARGET)/VBoxC.def
c28749e97052f09388969427adf7df641cdcdc22kais$(PATH_TARGET)/VBoxC.def: $(MAKEFILE_CURRENT)
c28749e97052f09388969427adf7df641cdcdc22kais $(RM) -f $@
c28749e97052f09388969427adf7df641cdcdc22kais $(APPEND) $@ _NSGetModule
c28749e97052f09388969427adf7df641cdcdc22kais $(APPEND) $@ _VBoxDriversRegister
c28749e97052f09388969427adf7df641cdcdc22kaisendif
51dd2c77f06e5663c28bd4f7a760cae4cf159e79vk
c28749e97052f09388969427adf7df641cdcdc22kais#
c28749e97052f09388969427adf7df641cdcdc22kais# VBoxXML
c28749e97052f09388969427adf7df641cdcdc22kais#
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxXML_TEMPLATE = VBOXMAINDLL
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxXML_SDKS = VBOX_XALAN VBOX_XERCES
c28749e97052f09388969427adf7df641cdcdc22kais## @todo Why do we need this? Why isn't it in the template?!?
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxXML_CXXFLAGS.win = -EHsc
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxXML_DEFS = \
c28749e97052f09388969427adf7df641cdcdc22kais CFGLDR_HAVE_COM IN_RING3 IN_CFGLDR_R3
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxXML_INCS = \
c28749e97052f09388969427adf7df641cdcdc22kais include \
c28749e97052f09388969427adf7df641cdcdc22kais $(PATH_TARGET)
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxXML_SOURCES = \
c28749e97052f09388969427adf7df641cdcdc22kais xml/cfgldr.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais xml/cfgldrhlp.cpp
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxXML_LDFLAGS.darwin = -install_name @executable_path/VBoxXML.dylib -Wl,-x # no debug info please.
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais## @todo (dmik): temporarily embed SettingsConverter.xsl into VBoxXML,
c28749e97052f09388969427adf7df641cdcdc22kais# later it should go to VBoxSVC as well
c28749e97052f09388969427adf7df641cdcdc22kaisxml/cfgldr.cpp_DEPS = $(PATH_TARGET)/SettingsConverter_xsl.h
c28749e97052f09388969427adf7df641cdcdc22kaisOTHER_CLEAN += $(PATH_TARGET)/SettingsConverter_xsl.h
c28749e97052f09388969427adf7df641cdcdc22kais$(PATH_TARGET)/SettingsConverter_xsl.h: xml/SettingsConverter.xsl $(VBOX_BIN2C) | $(call DIRDEP,$(PATH_TARGET))
c28749e97052f09388969427adf7df641cdcdc22kais $(call MSG_TOOL,bin2c,VBoxXML,$<,$@)
c28749e97052f09388969427adf7df641cdcdc22kais $(QUIET)$(VBOX_BIN2C) SettingsConverter_xsl $< $@
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais#
c28749e97052f09388969427adf7df641cdcdc22kais# tstCFGLdr - broken.
c28749e97052f09388969427adf7df641cdcdc22kais#
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaiststCFGLdr_TEMPLATE = VBOXMAINCLIENTEXE
c28749e97052f09388969427adf7df641cdcdc22kaiststCFGLdr_SDKS = VBOX_XALAN VBOX_XERCES
c28749e97052f09388969427adf7df641cdcdc22kaiststCFGLdr_DEFS = IN_CFGLDR_R3 STANDALONE_TEST
c28749e97052f09388969427adf7df641cdcdc22kaiststCFGLdr_SOURCES = \
c28749e97052f09388969427adf7df641cdcdc22kais xml/cfgldr.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais xml/cfgldrhlp.cpp
c28749e97052f09388969427adf7df641cdcdc22kaiststCFGLdr_INCS = \
c28749e97052f09388969427adf7df641cdcdc22kais include \
c28749e97052f09388969427adf7df641cdcdc22kais $(PATH_TARGET)
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais#
c28749e97052f09388969427adf7df641cdcdc22kais# VBoxCOM - COM Abstraction Layer library
c28749e97052f09388969427adf7df641cdcdc22kais#
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxCOM_TEMPLATE = VBOXMAINLIB
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxCOM_SOURCES = \
c28749e97052f09388969427adf7df641cdcdc22kais glue/com.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais glue/initterm.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais glue/string.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais glue/EventQueue.cpp \
c28749e97052f09388969427adf7df641cdcdc22kais glue/ErrorInfo.cpp
51dd2c77f06e5663c28bd4f7a760cae4cf159e79vkifeq ($(BUILD_TARGET),win)
51dd2c77f06e5663c28bd4f7a760cae4cf159e79vk VBoxCOM_DEFS.x86 += _WIN32_WINNT=0x0500
51dd2c77f06e5663c28bd4f7a760cae4cf159e79vk VBoxCOM_DEFS.amd64 += _WIN32_WINNT=0x0510
51dd2c77f06e5663c28bd4f7a760cae4cf159e79vk VBoxCOM_SOURCES += \
51dd2c77f06e5663c28bd4f7a760cae4cf159e79vk $(PATH_VBoxCOM)/VirtualBox_i.c
c28749e97052f09388969427adf7df641cdcdc22kaiselse
c28749e97052f09388969427adf7df641cdcdc22kais VBoxCOM_INCS += \
c28749e97052f09388969427adf7df641cdcdc22kais include
c28749e97052f09388969427adf7df641cdcdc22kais VBoxCOM_SOURCES += \
c28749e97052f09388969427adf7df641cdcdc22kais linux/helpers.cpp
c28749e97052f09388969427adf7df641cdcdc22kaisendif
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais#
c28749e97052f09388969427adf7df641cdcdc22kais# Generate _DEPS on all sources which depends on generated headers.
c28749e97052f09388969427adf7df641cdcdc22kais#
c28749e97052f09388969427adf7df641cdcdc22kaisifeq ($(BUILD_TARGET),win)
c28749e97052f09388969427adf7df641cdcdc22kaisPREREQS = $(PATH_VBoxCOM)/VirtualBox_i.c
c28749e97052f09388969427adf7df641cdcdc22kaiselse
c28749e97052f09388969427adf7df641cdcdc22kaisPREREQS = $(IDLTYPELIB) $(IDLHEADER)
c28749e97052f09388969427adf7df641cdcdc22kaisendif
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais# brute force way to ensure the prereqs are generated before anything is compiled.
c28749e97052f09388969427adf7df641cdcdc22kaisdefine def_src_deps
c28749e97052f09388969427adf7df641cdcdc22kais$(src)_DEPS = $(PREREQS)
c28749e97052f09388969427adf7df641cdcdc22kaisendef
c28749e97052f09388969427adf7df641cdcdc22kais$(foreach src,\
c28749e97052f09388969427adf7df641cdcdc22kais $(VBoxC_SOURCES) $(VBoxC_SOURCES.$(BUILD_TARGET)) \
c28749e97052f09388969427adf7df641cdcdc22kais $(VBoxSVC_SOURCES) $(VBoxSVC_SOURCES.$(BUILD_TARGET)) \
c28749e97052f09388969427adf7df641cdcdc22kais $(VBoxCOM_SOURCES) \
c28749e97052f09388969427adf7df641cdcdc22kais ,$(eval $(value def_src_deps)))
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais#
c28749e97052f09388969427adf7df641cdcdc22kais# Embed XML Schema files to VBoxSVC
c28749e97052f09388969427adf7df641cdcdc22kais#
c28749e97052f09388969427adf7df641cdcdc22kaisVBOX_XML_ENTITIES = $(PATH_TARGET)/VirtualBoxXMLUtil_entities.h
c28749e97052f09388969427adf7df641cdcdc22kaisVBOX_XML_ENTITIES_COMMON = $(PATH_TARGET)/VirtualBoxXMLUtil_common_entities.h
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaisVBOX_XML_SCHEMA_COMMON = xml/VirtualBox-settings-common.xsd
c28749e97052f09388969427adf7df641cdcdc22kaisVBOX_XML_SCHEMA.darwin = xml/VirtualBox-settings-macosx.xsd
c28749e97052f09388969427adf7df641cdcdc22kaisVBOX_XML_SCHEMA.linux = xml/VirtualBox-settings-linux.xsd
51144063f3afc862c6cb3f54fd4341724f765075Krishna YenduriVBOX_XML_SCHEMA.win = xml/VirtualBox-settings-windows.xsd
51144063f3afc862c6cb3f54fd4341724f765075Krishna YenduriVBOX_XML_SCHEMA.os2 = xml/VirtualBox-settings-os2.xsd
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri
51144063f3afc862c6cb3f54fd4341724f765075Krishna YenduriVirtualBoxXMLUtil.cpp_DEPS = $(VBOX_XML_ENTITIES) $(VBOX_XML_ENTITIES_COMMON)
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri$(VBOX_XML_ENTITIES_COMMON): $(VBOX_XML_SCHEMA_COMMON) $(VBOX_BIN2C)
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri $(call MSG_TOOL,bin2c,VBoxXML,$<,$@)
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri $(QUIET)$(VBOX_BIN2C) VirtualBox_settings_common_xsd $< $@
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri
c28749e97052f09388969427adf7df641cdcdc22kais$(VBOX_XML_ENTITIES): $(VBOX_XML_SCHEMA.$(BUILD_TARGET)) $(VBOX_BIN2C)
c28749e97052f09388969427adf7df641cdcdc22kais $(call MSG_TOOL,bin2c,VBoxXML,$<,$@)
c28749e97052f09388969427adf7df641cdcdc22kais $(QUIET)$(VBOX_BIN2C) VirtualBox_settings_xsd $< $@
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaisOTHER_CLEAN += $(VBOX_XML_ENTITIES) $(VBOX_XML_ENTITIES_COMMON)
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais#
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri# Generate SchemaDefs.h from XML Schema
c28749e97052f09388969427adf7df641cdcdc22kais#
c28749e97052f09388969427adf7df641cdcdc22kaisVBOX_XML_SCHEMADEFS_H = $(PATH_TARGET)/SchemaDefs.h
c28749e97052f09388969427adf7df641cdcdc22kaisVBOX_XML_SCHEMADEFS_XSL = xml/SchemaDefs.xsl
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxC_DEPS += $(VBOX_XML_SCHEMADEFS_H)
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxC_INCS += $(PATH_TARGET)
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxSVC_DEPS += $(VBOX_XML_SCHEMADEFS_H)
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxSVC_INCS += $(PATH_TARGET)
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais$(VBOX_XML_SCHEMADEFS_H): $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(BUILD_TARGET)) $(VBOX_XML_SCHEMA_COMMON)
c28749e97052f09388969427adf7df641cdcdc22kais $(call MSG_TOOL,xsltproc,VBoxXML,$<,$@)
c28749e97052f09388969427adf7df641cdcdc22kais $(QUIET)$(VBOX_XSLTPROC) -o $@ $(filter-out $(VBOX_XML_SCHEMA_COMMON),$^)
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaisOTHER_CLEAN += $(VBOX_XML_SCHEMADEFS_H)
c28749e97052f09388969427adf7df641cdcdc22kais.NOTPARALLEL: $(VBOX_XML_SCHEMADEFS_H)
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais
51dd2c77f06e5663c28bd4f7a760cae4cf159e79vk#
51dd2c77f06e5663c28bd4f7a760cae4cf159e79vk# Creates the symlinks necessary for making XPCOM work.
51dd2c77f06e5663c28bd4f7a760cae4cf159e79vk#
51dd2c77f06e5663c28bd4f7a760cae4cf159e79vk## @todo Figure out why Linux really needs this, darwin doesn't...
c28749e97052f09388969427adf7df641cdcdc22kaisxpcom-components_INST = $(INST_BIN)components/
c28749e97052f09388969427adf7df641cdcdc22kaisifeq ($(BUILD_TARGET),linux)
c28749e97052f09388969427adf7df641cdcdc22kaisxpcom-components_SYMLINKS = \
c28749e97052f09388969427adf7df641cdcdc22kais VirtualBox_XPCOM.xpt=>../VirtualBox_XPCOM.xpt \
c28749e97052f09388969427adf7df641cdcdc22kais VBoxXPCOMBase.xpt=>../VBoxXPCOMBase.xpt \
c28749e97052f09388969427adf7df641cdcdc22kais VBoxC$(SUFF_DLL)=>../VBoxC$(SUFF_DLL) \
c28749e97052f09388969427adf7df641cdcdc22kais VBoxSVCM$(SUFF_DLL)=>../VBoxSVCM$(SUFF_DLL) \
c28749e97052f09388969427adf7df641cdcdc22kais VBoxXPCOMIPCC$(SUFF_DLL)=>../VBoxXPCOMIPCC$(SUFF_DLL)
c28749e97052f09388969427adf7df641cdcdc22kaisendif
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais# generate
c28749e97052f09388969427adf7df641cdcdc22kaisinclude $(PATH_KBUILD)/footer.kmk
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais#
c28749e97052f09388969427adf7df641cdcdc22kais# Additions rules.
c28749e97052f09388969427adf7df641cdcdc22kais#
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaisXIDLFILE = idl/VirtualBox.xidl
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaisifneq ($(BUILD_TARGET),win)
c28749e97052f09388969427adf7df641cdcdc22kais
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yendurilinux/helpers.cpp: $(IDLTYPELIB)
c28749e97052f09388969427adf7df641cdcdc22kais
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri$(IDLFILE): idl/xpidl.xsl $(XIDLFILE) | $(call DIRDEP,$(dir $(IDLFILE)))
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri $(call MSG_TOOL,xsltproc,VBoxXML,$<,$@)
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri $(QUIET)$(MKDIR) -p $(@D)
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri $(QUIET)$(VBOX_XSLTPROC) -o $@ $^
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri$(IDLTYPELIB): $(IDLFILE) | $(call DIRDEP,$(dir $(IDLTYPELIB)))
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri $(call MSG_TOOL,xpidl,VBoxXML,$<,$@)
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri $(QUIET)$(VBOX_XPIDL) -m typelib -I $(VBOX_PATH_XPCOM_IDL) -e $@ $<
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri$(IDLHEADER): $(IDLFILE) | $(call DIRDEP,$(dir $(IDLHEADER)))
c28749e97052f09388969427adf7df641cdcdc22kais $(call MSG_TOOL,xpidl,VBoxXML,$<,$@)
c28749e97052f09388969427adf7df641cdcdc22kais $(QUIET)$(VBOX_XPIDL) -m header -I $(VBOX_PATH_XPCOM_IDL) -e $@ $<
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yendurielse
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri
c28749e97052f09388969427adf7df641cdcdc22kaisMAIN_IDL ?= $(EXEC_X86_WIN32) $(firstword $(wildcard \
c28749e97052f09388969427adf7df641cdcdc22kais $(PATH_SDK_WINPSDK_BIN)/Midl.Exe\
c28749e97052f09388969427adf7df641cdcdc22kais $(PATH_SDK_WINPSDK)/Bin/Midl.Exe\
c28749e97052f09388969427adf7df641cdcdc22kais $(PATH_DEVTOOLS)/win.x86/bin/midl.exe\
c28749e97052f09388969427adf7df641cdcdc22kais ) Sorry_Cannot_Find_The_Midl_Compiler_In_The_PSDK)
51144063f3afc862c6cb3f54fd4341724f765075Krishna YenduriIDL_DEFS = /nologo
c28749e97052f09388969427adf7df641cdcdc22kaisifdef VBOX_WITH_VRDP
c28749e97052f09388969427adf7df641cdcdc22kais IDL_DEFS += /D VBOX_VRDP
c28749e97052f09388969427adf7df641cdcdc22kaisendif
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais$(IDLFILE): idl/midl.xsl $(XIDLFILE)
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri $(call MSG_TOOL,xsltproc,VBoxXML,$<,$@)
c28749e97052f09388969427adf7df641cdcdc22kais $(QUIET)$(MKDIR) -p $(VBOX_PATH_SDK)/idl
c28749e97052f09388969427adf7df641cdcdc22kais $(QUIET)$(VBOX_XSLTPROC) -o $@ $^
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais## @todo r=bird: last changes to this rule showed incorrect dependencies here as it broke testcase (see testboxwin2).
c28749e97052f09388969427adf7df641cdcdc22kais# This is kind of obvious when looking at the rule, because it's (a) not specifing all it output
c28749e97052f09388969427adf7df641cdcdc22kais# and (b) generating more stuff *after* the maintarget has been completed.
c28749e97052f09388969427adf7df641cdcdc22kais#
c28749e97052f09388969427adf7df641cdcdc22kais# What needs to be done is to not depend on _i.c in the object subdir, but on all the final outputs.
c28749e97052f09388969427adf7df641cdcdc22kais$(PATH_VBoxCOM)/VirtualBox_i.c: $(IDLFILE) | $(call DIRDEP,$(PATH_VBoxCOM))
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri $(MAIN_IDL) $(IDL_DEFS) \
c28749e97052f09388969427adf7df641cdcdc22kais /out $(subst /,\\,$(PATH_VBoxCOM)) \
c28749e97052f09388969427adf7df641cdcdc22kais /cpp_cmd $(subst /,\\,$(TOOL_$(VBOX_VCC_TOOL)_CC)) \
c28749e97052f09388969427adf7df641cdcdc22kais /I $(subst /,\\,$(PATH_SDK_WINPSDK_INC)) \
c28749e97052f09388969427adf7df641cdcdc22kais /I idl \
c28749e97052f09388969427adf7df641cdcdc22kais $(subst /,\\,$<)
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri $(MKDIR) -p $(VBOX_PATH_SDK)/include
c28749e97052f09388969427adf7df641cdcdc22kais $(CP) $(PATH_VBoxCOM)/VirtualBox.h $(VBOX_PATH_SDK)/include
c28749e97052f09388969427adf7df641cdcdc22kais $(MKDIR) -p $(VBOX_PATH_SDK)/lib
c28749e97052f09388969427adf7df641cdcdc22kais $(CP) $(PATH_VBoxCOM)/VirtualBox.tlb $(VBOX_PATH_SDK)/lib
c28749e97052f09388969427adf7df641cdcdc22kais $(CP) $(PATH_VBoxCOM)/VirtualBox_i.c $(VBOX_PATH_SDK)/lib
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaisendif
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais# bird: anyone still using this? If not it's a gonner.
c28749e97052f09388969427adf7df641cdcdc22kais## Hack to work around wine's trouble with midl.exe and rc.exe (seems to be msvcrt.dll related)
51dd2c77f06e5663c28bd4f7a760cae4cf159e79vk#gen: $(PREREQS)
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais#
c28749e97052f09388969427adf7df641cdcdc22kais# Translation stuff
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri#
c28749e97052f09388969427adf7df641cdcdc22kaisVBoxSVC_HEADERS = \
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri include/collection.h \
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri include/MachineImpl.h \
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri include/HostDVDDriveImpl.h \
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri include/HostFloppyDriveImpl.h
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri
51144063f3afc862c6cb3f54fd4341724f765075Krishna YenduriVBoxC_HEADERS = \
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri include/ConsoleImpl.h
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri
51144063f3afc862c6cb3f54fd4341724f765075Krishna YenduriVBoxSVC_TRANSLATIONS = \
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri nls/VBoxSVC_de.ts
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri
51144063f3afc862c6cb3f54fd4341724f765075Krishna YenduriVBoxC_TRANSLATIONS = \
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri nls/VBoxC_de.ts
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduriupdatenls:
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri $(VBOX_LUPDATE) $(VBoxSVC_SOURCES) $(VBoxSVC_HEADERS) -ts $(VBoxSVC_TRANSLATIONS)
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduri $(VBOX_LUPDATE) $(VBoxC_SOURCES) $(VBoxC_HEADERS) -ts $(VBoxC_TRANSLATIONS)
c28749e97052f09388969427adf7df641cdcdc22kais
51144063f3afc862c6cb3f54fd4341724f765075Krishna Yenduriifdef VBOX_WITH_XPCOM
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaistestidl: $(IDLFILE) $(IDLTYPELIB)
c28749e97052f09388969427adf7df641cdcdc22kaistestidlhdr: $(IDLHEADER)
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaiselse
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaistestidl: $(IDLFILE) $(PATH_VBoxCOM)/VirtualBox_i.c
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kaisendif
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais$(PATH_BIN)/comregister.cmd: win32/comregister.cmd
c28749e97052f09388969427adf7df641cdcdc22kais $(CP) $< $@
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais# Hot fix when dependencies goes bad again...
c28749e97052f09388969427adf7df641cdcdc22kais#.NOTPARALLEL: $(TARGET_VBoxC) $(TARGET_VBoxSVC) $(TARGET_VBoxCOM) $(IDLHEADER) $(IDLFILE) $(PATH_VBoxCOM)/VirtualBox_i.c
c28749e97052f09388969427adf7df641cdcdc22kais
c28749e97052f09388969427adf7df641cdcdc22kais