Makefile.kmk revision 18c1bc480987bdd5c8d202b8bd6859dd9756de92
fd9abdda70912b99b24e3bf1a38f26fde908a74cnd# Makefile for the VirtualBox Qt GUI.
a78048ccbdb6256da15e6b0e7e95355e480c2301nd# Copyright (C) 2006-2014 Oracle Corporation
a78048ccbdb6256da15e6b0e7e95355e480c2301nd# This file is part of VirtualBox Open Source Edition (OSE), as
96ad5d81ee4a2cc66a4ae19893efc8aa6d06fae7jailletc# available from http://www.virtualbox.org. This file is free software;
a78048ccbdb6256da15e6b0e7e95355e480c2301nd# you can redistribute it and/or modify it under the terms of the GNU
a78048ccbdb6256da15e6b0e7e95355e480c2301nd# General Public License (GPL) as published by the Free Software
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen# Foundation, in version 2 as it comes in the "COPYING" file of the
2e545ce2450a9953665f701bb05350f0d3f26275nd# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
a78048ccbdb6256da15e6b0e7e95355e480c2301ndSUB_DEPTH = ../../../..
a78048ccbdb6256da15e6b0e7e95355e480c2301ndinclude $(KBUILD_PATH)/subheader.kmk
a78048ccbdb6256da15e6b0e7e95355e480c2301ndVBOX_VIRTUALBOX4_SRC := $(PATH_SUB_CURRENT)
3f08db06526d6901aa08c110b5bc7dde6bc39905ndVBOX_VIRTUALBOX4_OUT_DIR := $(PATH_TARGET)/VirtualBox/misc
a78048ccbdb6256da15e6b0e7e95355e480c2301nd# Show the update notifier dialog during startup. If this setting is disabled
a78048ccbdb6256da15e6b0e7e95355e480c2301nd# the user can still update using the menu if desired.
a78048ccbdb6256da15e6b0e7e95355e480c2301ndifndef VBOX_OSE
11495c9f0bd33e51a25b4d532beadfbcf9b944a3nilgunVBOX_WITH_UPDATE_REQUEST := 1
a78048ccbdb6256da15e6b0e7e95355e480c2301nd# The targets.
4b575a6b6704b516f22d65a3ad35696d7b9ba372rpluemifdef VBOX_WITH_HARDENING
a78048ccbdb6256da15e6b0e7e95355e480c2301ndPROGRAMS += VirtualBoxHardened
a78048ccbdb6256da15e6b0e7e95355e480c2301ndDLLS += VirtualBox
a78048ccbdb6256da15e6b0e7e95355e480c2301ndPROGRAMS += VirtualBox
a78048ccbdb6256da15e6b0e7e95355e480c2301nd# Include the language lists.
a78048ccbdb6256da15e6b0e7e95355e480c2301ndinclude $(PATH_SUB_CURRENT)/nls/ApprovedLanguages.kmk
6aadbc6fd703e73d1d419e9f06b84a4338c898f1maczniak# Hardened VirtualBox.
6aadbc6fd703e73d1d419e9f06b84a4338c898f1maczniakVirtualBoxHardened_TEMPLATE = VBOXR3HARDENEDEXE
6aadbc6fd703e73d1d419e9f06b84a4338c898f1maczniakVirtualBoxHardened_SOURCES = src/hardenedmain.cpp
6aadbc6fd703e73d1d419e9f06b84a4338c898f1maczniakVirtualBoxHardened_SOURCES.win = src/platform/win/VirtualBoxHardened.rc
a78048ccbdb6256da15e6b0e7e95355e480c2301ndVirtualBoxHardened_NAME = VirtualBox
1f1b6bf13313fdd14a45e52e553d3ff28689b717coarVirtualBoxHardened_INST.darwin = $(INST_BIN)VirtualBox $(INST_BIN)VirtualBoxVM
1f1b6bf13313fdd14a45e52e553d3ff28689b717coarVirtualBoxHardened_LDFLAGS.win = /SUBSYSTEM:$(if-expr "$(KBUILD_TYPE)" != "release",console,windows)
1f1b6bf13313fdd14a45e52e553d3ff28689b717coarsrc/platform/win/VirtualBoxHardened.rc_INCS = $(VirtualBox_0_OUTDIR)
1f1b6bf13313fdd14a45e52e553d3ff28689b717coarsrc/platform/win/VirtualBoxHardened.rc_DEPS = $(VirtualBox_0_OUTDIR)/VirtualBox-icon.rc
a78048ccbdb6256da15e6b0e7e95355e480c2301nd# Include Qt project file, we'll use FORMS and TRANSLATIONS in
a78048ccbdb6256da15e6b0e7e95355e480c2301nd# the VirtualBox setup below.
a78048ccbdb6256da15e6b0e7e95355e480c2301ndSAVED_TEMPLATE := $(TEMPLATE)
a78048ccbdb6256da15e6b0e7e95355e480c2301ndinclude $(PATH_SUB_CURRENT)/VBoxUI.pro
a78048ccbdb6256da15e6b0e7e95355e480c2301nd# VirtualBox - The GUI program.
a78048ccbdb6256da15e6b0e7e95355e480c2301ndUSES += qt4
30471a4650391f57975f60bbb6e4a90be7b284bfhumbedoohVirtualBox_TEMPLATE := $(if $(VBOX_WITH_HARDENING),VBOXQT4GUI,VBOXQT4GUIEXE)
a78048ccbdb6256da15e6b0e7e95355e480c2301ndVirtualBox_NAME = VirtualBox
1f1b6bf13313fdd14a45e52e553d3ff28689b717coarifndef VBOX_WITH_HARDENING # For the launch trick we need different inode numbers.
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar VirtualBox_INST.darwin = $(INST_BIN)VirtualBox $(INST_BIN)VirtualBoxVM
1f1b6bf13313fdd14a45e52e553d3ff28689b717coarVirtualBox_SDKS.win = ReorderCompilerIncs $(VBOX_WINPSDK) $(VBOX_WINDDK)
1f1b6bf13313fdd14a45e52e553d3ff28689b717coarVirtualBox_DEFS =
1f1b6bf13313fdd14a45e52e553d3ff28689b717coarVirtualBox_DEFS.debug = VBOX_CHECK_STATE # QT_FATAL_ASSERT
1f1b6bf13313fdd14a45e52e553d3ff28689b717coarVirtualBox_DEFS.linux = VBOX_WITH_MASKED_SEAMLESS VBOX_WITH_TRANSLUCENT_SEAMLESS
1f1b6bf13313fdd14a45e52e553d3ff28689b717coarVirtualBox_DEFS.darwin = VBOX_WITH_TRANSLUCENT_SEAMLESS # VBOX_WITH_MASKED_SEAMLESS
1f1b6bf13313fdd14a45e52e553d3ff28689b717coarVirtualBox_DEFS.win = VBOX_WITH_MASKED_SEAMLESS # VBOX_WITH_TRANSLUCENT_SEAMLESS
1f1b6bf13313fdd14a45e52e553d3ff28689b717coarVirtualBox_DEFS.win += UNICODE QT_DLL
1f1b6bf13313fdd14a45e52e553d3ff28689b717coarifdef VBOX_WITH_ICHAT_THEATER
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar VirtualBox_DEFS.darwin += VBOX_WITH_ICHAT_THEATER
1f1b6bf13313fdd14a45e52e553d3ff28689b717coarVirtualBox_DEFS += \
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar $(if $(VBOX_WITH_ADDITIONS_AUTOUPDATE_UI),VBOX_WITH_ADDITIONS_AUTOUPDATE_UI) \
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar $(if $(VBOX_WITH_UPDATE_REQUEST),VBOX_WITH_UPDATE_REQUEST) \
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar $(if $(VBOX_WITH_ALSA),VBOX_WITH_ALSA) \
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar $(if $(VBOX_WITH_PULSE),VBOX_WITH_PULSE) \
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar $(if $(VBOX_WITH_SOLARIS_OSS),VBOX_WITH_SOLARIS_OSS) \
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar $(if $(VBOX_WITH_E1000),VBOX_WITH_E1000) \
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar $(if $(VBOX_WITH_NETFLT)$(eq $(KBUILD_TARGET),freebsd),VBOX_WITH_NETFLT) \
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar $(if $(VBOX_WITH_VDE),VBOX_WITH_VDE) \
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar $(if $(VBOX_WITH_UDPTUNNEL),VBOX_WITH_UDPTUNNEL) \
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar $(if $(VBOX_WITH_EXTPACK),VBOX_WITH_EXTPACK) \
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar $(if $(VBOX_WITH_EHCI),VBOX_WITH_EHCI) \
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar $(if $(VBOX_WITH_HARDENING),VBOXR3_HARDENED_DLL) \
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar $(if $(VBOX_WITH_DRAG_AND_DROP),VBOX_WITH_DRAG_AND_DROP) \
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar $(if $(VBOX_WITH_DRAG_AND_DROP_GH),VBOX_WITH_DRAG_AND_DROP_GH) \
a78048ccbdb6256da15e6b0e7e95355e480c2301nd $(if $(VBOX_WITH_CRHGSMI),VBOX_WITH_CRHGSMI) \
a78048ccbdb6256da15e6b0e7e95355e480c2301nd $(if $(VBOX_WITH_VIRTIO),VBOX_WITH_VIRTIO) \
a78048ccbdb6256da15e6b0e7e95355e480c2301nd $(if $(VBOX_WITH_WDDM),VBOX_WITH_WDDM) \
a78048ccbdb6256da15e6b0e7e95355e480c2301nd $(if $(VBOX_WITH_CROGL),VBOX_WITH_CROGL) \
a78048ccbdb6256da15e6b0e7e95355e480c2301nd $(if $(VBOX_GUI_WITH_HIDPI),VBOX_GUI_WITH_HIDPI) \
a78048ccbdb6256da15e6b0e7e95355e480c2301nd $(if $(VBOX_GUI_WITH_PIDFILE),VBOX_GUI_WITH_PIDFILE) \
a78048ccbdb6256da15e6b0e7e95355e480c2301nd $(if $(VBOX_GUI_WITH_KEYS_RESET_HANDLER),VBOX_GUI_WITH_KEYS_RESET_HANDLER) \
a78048ccbdb6256da15e6b0e7e95355e480c2301nd $(if $(VBOX_GUI_WITH_CUSTOMIZATIONS1),VBOX_GUI_WITH_CUSTOMIZATIONS1)
a78048ccbdb6256da15e6b0e7e95355e480c2301ndifdef VBOX_WITH_DEBUGGER_GUI
a78048ccbdb6256da15e6b0e7e95355e480c2301nd VirtualBox_DEFS += VBOX_WITH_DEBUGGER_GUI
a78048ccbdb6256da15e6b0e7e95355e480c2301nd if "$(KBUILD_TYPE)" != "release"
a78048ccbdb6256da15e6b0e7e95355e480c2301nd VirtualBox_DEFS += VBOX_WITH_DEBUGGER_GUI_MENU
a78048ccbdb6256da15e6b0e7e95355e480c2301ndifdef VBOX_WITH_VIDEOHWACCEL
a78048ccbdb6256da15e6b0e7e95355e480c2301nd VirtualBox_DEFS += VBOX_WITH_VIDEOHWACCEL \
a78048ccbdb6256da15e6b0e7e95355e480c2301nd VBOX_GUI_USE_QGL
a78048ccbdb6256da15e6b0e7e95355e480c2301ndelse ifdef VBOX_GUI_USE_QGL
a78048ccbdb6256da15e6b0e7e95355e480c2301nd VirtualBox_DEFS += VBOX_GUI_USE_QGL
a78048ccbdb6256da15e6b0e7e95355e480c2301ndifdef VBOX_WITH_LIBCURL
a78048ccbdb6256da15e6b0e7e95355e480c2301nd VirtualBox_DEFS += VBOX_GUI_WITH_NETWORK_MANAGER
a78048ccbdb6256da15e6b0e7e95355e480c2301nd VBOX_GUI_WITH_NETWORK_MANAGER := 1
a78048ccbdb6256da15e6b0e7e95355e480c2301ndifdef VBOX_BLEEDING_EDGE
a78048ccbdb6256da15e6b0e7e95355e480c2301nd VBOX_BLEEDING_EDGE=\"$(VBOX_BLEEDING_EDGE)\"
a78048ccbdb6256da15e6b0e7e95355e480c2301nd VBOX_BLEEDING_EDGE=\"$(VBOX_BLEEDING_EDGE)\"
a78048ccbdb6256da15e6b0e7e95355e480c2301nd VBOX_BLEEDING_EDGE=\"$(VBOX_BLEEDING_EDGE)\"
a78048ccbdb6256da15e6b0e7e95355e480c2301nd VBOX_BLEEDING_EDGE=\"$(VBOX_BLEEDING_EDGE)\"
a78048ccbdb6256da15e6b0e7e95355e480c2301ndVBOX_GUI_INC_DIRS = \
a78048ccbdb6256da15e6b0e7e95355e480c2301ndifdef VBOX_GUI_WITH_NETWORK_MANAGER
a78048ccbdb6256da15e6b0e7e95355e480c2301ndVBOX_GUI_INC_DIRS += \
a78048ccbdb6256da15e6b0e7e95355e480c2301ndVirtualBox_INCS = \
a78048ccbdb6256da15e6b0e7e95355e480c2301nd $(VBOX_GUI_INC_DIRS) \
a78048ccbdb6256da15e6b0e7e95355e480c2301nd $(VirtualBox_0_OUTDIR)/include
a78048ccbdb6256da15e6b0e7e95355e480c2301nd# Necessary for the hdd backend enumeration
a78048ccbdb6256da15e6b0e7e95355e480c2301ndVirtualBox_LIBS = $(LIB_DDU)
a78048ccbdb6256da15e6b0e7e95355e480c2301ndif1of ($(KBUILD_TARGET), linux freebsd netbsd openbsd)
a78048ccbdb6256da15e6b0e7e95355e480c2301nd VirtualBox_LIBS += dl
a78048ccbdb6256da15e6b0e7e95355e480c2301nd# This library is required for multi-monitor support
a78048ccbdb6256da15e6b0e7e95355e480c2301ndifneq ($(KBUILD_TARGET),win)
a78048ccbdb6256da15e6b0e7e95355e480c2301ndVirtualBox_CXXFLAGS += -Wno-switch
a78048ccbdb6256da15e6b0e7e95355e480c2301ndifeq ($(KBUILD_TYPE),release)
a78048ccbdb6256da15e6b0e7e95355e480c2301nd VirtualBox_LDFLAGS.win += /SUBSYSTEM:windows
a78048ccbdb6256da15e6b0e7e95355e480c2301nd VirtualBox_LDFLAGS.linux += -rdynamic # for backtrace_symbols()
a78048ccbdb6256da15e6b0e7e95355e480c2301nd VirtualBox_LDFLAGS.win += /SUBSYSTEM:console
a78048ccbdb6256da15e6b0e7e95355e480c2301nd# delay loading causes VM process crashes due to the misbehave of the current QtOpenGLVBox4.dll we use
a78048ccbdb6256da15e6b0e7e95355e480c2301nd# (i.e. it does not create the ogl context properly when loaded this way)
a78048ccbdb6256da15e6b0e7e95355e480c2301nd# @todo: investigate a better work-around and enable back delay loading since it is needed to avoid
a78048ccbdb6256da15e6b0e7e95355e480c2301nd# crashes caused by buggy ogl drivers for the case 2D is not used (i.e. no ogl stuff loaded)
a78048ccbdb6256da15e6b0e7e95355e480c2301nd#if defined(VBOX_WITH_VIDEOHWACCEL) || defined(VBOX_GUI_USE_QGL)
a78048ccbdb6256da15e6b0e7e95355e480c2301nd# VirtualBox_LDFLAGS.win += /DelayLoad:QtOpenGLVBox4.dll /DelayLoad:OPENGL32.dll
a78048ccbdb6256da15e6b0e7e95355e480c2301nd -framework AppKit -framework Carbon -framework IOKit \
a78048ccbdb6256da15e6b0e7e95355e480c2301nd $(if $(VBOX_WITH_HARDENING),-install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VirtualBox.dylib)
a78048ccbdb6256da15e6b0e7e95355e480c2301ndifdef VBOX_WITH_ICHAT_THEATER
a78048ccbdb6256da15e6b0e7e95355e480c2301nd VirtualBox_LDFLAGS.darwin += -framework InstantMessage -framework QuartzCore
a78048ccbdb6256da15e6b0e7e95355e480c2301nd $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/Htmlhelp.Lib \
a78048ccbdb6256da15e6b0e7e95355e480c2301nd $(PATH_SDK_$(VBOX_WINDDK)_LIB)/ddraw.lib \
a78048ccbdb6256da15e6b0e7e95355e480c2301nd $(PATH_SDK_$(VBOX_WINDDK)_LIB)/dxguid.lib
a78048ccbdb6256da15e6b0e7e95355e480c2301ndif1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris) # X11
a78048ccbdb6256da15e6b0e7e95355e480c2301nd VirtualBox_LIBS += $(PATH_STAGE_DLL)/VBoxKeyboard$(VBOX_SUFF_DLL)
a78048ccbdb6256da15e6b0e7e95355e480c2301ndif defined(VBOX_WITH_VIDEOHWACCEL) || defined(VBOX_GUI_USE_QGL)
a78048ccbdb6256da15e6b0e7e95355e480c2301nd VirtualBox_LIBS.win += $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/Opengl32.lib
a78048ccbdb6256da15e6b0e7e95355e480c2301nd VirtualBox_LDFLAGS.darwin += -framework OpenGL
a78048ccbdb6256da15e6b0e7e95355e480c2301ndifdef VBOX_WITH_CROGL
a78048ccbdb6256da15e6b0e7e95355e480c2301nd VirtualBox_LIBS += $(PATH_STAGE_LIB)/VBoxOGLTest$(VBOX_SUFF_LIB)
a78048ccbdb6256da15e6b0e7e95355e480c2301nd# Headers containing definitions of classes that use the Q_OBJECT macro.
a78048ccbdb6256da15e6b0e7e95355e480c2301ndVirtualBox_QT_MOCHDRS = \
a78048ccbdb6256da15e6b0e7e95355e480c2301nd src/selector/graphics/chooser/UIGChooserHandlerKeyboard.h \
727872d18412fc021f03969b8641810d8896820bhumbedooh src/settings/global/UIGlobalSettingsNetworkDetailsNAT.h \
0d0ba3a410038e179b695446bb149cce6264e0abnd src/settings/global/UIGlobalSettingsNetworkDetailsHost.h \
727872d18412fc021f03969b8641810d8896820bhumbedooh src/settings/global/UIGlobalSettingsPortForwardingDlg.h \
0d0ba3a410038e179b695446bb149cce6264e0abnd src/settings/machine/UIMachineSettingsPortForwardingDlg.h \
ac082aefa89416cbdc9a1836eaf3bed9698201c8humbedooh src/settings/machine/UIMachineSettingsSFDetails.h \
0d0ba3a410038e179b695446bb149cce6264e0abnd src/settings/machine/UIMachineSettingsUSBFilterDetails.h \
VirtualBox_DEFS.darwin += VBOX_DARWIN_USE_NATIVE_CONTROLS
# (The include directory and lib/framework for each module will be added by the Qt4 unit.)
# Resource files with some OSE differences (VirtualBoxBrand.qrc is created further down).
VirtualBox_SOURCES += VirtualBox1.qrc
VirtualBox1.qrc_RCCFLAGS = -name BASIC1
VirtualBox_SOURCES += VirtualBox2.qrc
VirtualBox2.qrc_RCCFLAGS = -name BASIC2
VirtualBox_SOURCES += VirtualBox1_hidpi.qrc
VirtualBox1_hidpi.qrc_RCCFLAGS = -name BASIC1_HIDPI
VirtualBox_SOURCES += VirtualBox2_hidpi.qrc
VirtualBox2_hidpi.qrc_RCCFLAGS = -name BASIC2_HIDPI
VirtualBox_SOURCES += VirtualBoxMac.qrc
VirtualBoxMac.qrc_RCCFLAGS = -name MAC
VirtualBox_SOURCES += VirtualBoxOther.qrc
VirtualBoxOther.qrc_RCCFLAGS = -name OTHER
VirtualBox_SOURCES += $(VBOX_VIRTUALBOX4_OUT_DIR)/VirtualBoxBrand.qrc
$(VBOX_VIRTUALBOX4_OUT_DIR)/VirtualBoxBrand.qrc_RCCFLAGS = -name BRAND
VirtualBox_SOURCES += VirtualBoxShaders.qrc
VirtualBoxShaders.qrc_RCCFLAGS = -name SHADERS
# Import the translation source from VBoxUI.pro and add the qt_xx_YY counterparts
# bird: What about $(if $(VBOX_GCC_Wno-missing-base-class-initializer),$(VBOX_GCC_Wno-missing-base-class-initializer),$(VBOX_GCC_Wno-extra))?
VirtualBox_src/globals/COMDefs.cpp_CXXFLAGS = $(VBOX_GCC_Wno-extra)
includedep $(PATH_TARGET)/VirtualBoxComWrapperFiles.dep
VirtualBox_INTERMEDIATES += $(VirtualBox_0_OUTDIR)/include/COMWrappers
VirtualBox_CLEAN += $(wildcard $(VirtualBox_0_OUTDIR)/include/*) $(PATH_TARGET)/VirtualBoxComWrapperFiles.dep
VirtualBox_SOURCES += $(VirtualBox_0_OUTDIR)/include/COMWrappers.cpp
$$(VirtualBox_0_OUTDIR)/include/COMWrappers \
+ $(PATH_TARGET)/VirtualBoxComWrapperFiles.dep \
, $$(VirtualBox_0_OUTDIR)/include/COMEnums.h \
$$(VirtualBox_0_OUTDIR)/include/COMWrappers.cpp \
$(VBOX_VIRTUALBOX4_SRC)/src/globals/COMWrappers.xsl \
$(QUIET)$(RM) -f -- "$@" "$(PATH_TARGET)/VirtualBoxComWrapperFiles.dep"
$(QUIET)$(VBOX_XSLTPROC) -o $@ $(VBOX_VIRTUALBOX4_SRC)/src/globals/COMWrappers.xsl $<
$(PATH_TARGET)/VirtualBoxComWrapperFiles.dep VirtualBox_VBOX_COMWRAPPERS
testwrappers:: $$(VirtualBox_0_OUTDIR)/include/COMWrappers
VirtualBox_CLEAN += $(VBOX_VIRTUALBOX4_OUT_DIR)/VirtualBoxBrand.qrc
$(VBOX_VIRTUALBOX4_OUT_DIR)/VirtualBoxBrand.qrc: \
$(VBOX_VIRTUALBOX4_SRC)/VirtualBoxBrand.qrc \
$(PATH_ROOT)/Config.kmk \
# VirtualBox_INTERMEDIATES += $(VirtualBox_0_OUTDIR)/include/precomp.h.gch
$(foreach x,$(filter-out include/COMWrappers.cpp, $(filter %.cpp, \
)),$(eval $(abspath $(PATH_OBJ)/VirtualBox/$(basename $(x)).o): $$$$(VirtualBoxPch_0_OUTDIR)/src/precomp.h.gch))
VirtualBoxPch_INTERMEDIATES = $(filter-out %.h.gch, $(VirtualBox_INTERMEDIATES))
VirtualBoxPch_SOURCES = src/precomp.cpp
VirtualBoxPch_SOURCES = src/precomp.h
VirtualBoxPch_CXXFLAGS = $(filter-out -Winvalid-pch -fpch-preprocess, $(VirtualBox_CXXFLAGS)) -x c++-header
VirtualBoxPch_CXXOBJSUFF = .h.gch
VirtualBoxPch_SOURCES.darwin = $(NO_SUCH_VARIABLE)
VirtualBoxPch_SOURCES.solaris = $(NO_SUCH_VARIABLE)
VirtualBoxPch_SOURCES.freebsd = $(NO_SUCH_VARIABLE)
VirtualBoxPch_SOURCES.linux = $(NO_SUCH_VARIABLE)
VirtualBoxPch_SOURCES.win = $(NO_SUCH_VARIABLE)
# On Windows we'll have to generate/edit part of the resource file.
src/platform/win/VirtualBox.rc_INCS = $(VirtualBox_0_OUTDIR)
$$(VirtualBox_0_OUTDIR)/VirtualBox-icon.rc: $(MAKEFILE_CURRENT) $(VBOX_WINDOWS_ICON_FILE) | $$(dir $$@)
INSTALLS += VirtualBox.lproj
VirtualBox.lproj_MODE = 755
VirtualBox.lproj_DIRS := $(addsuffix .lproj,$(VBOX_APPROVED_GUI_LANGUAGES))
# The VirtualBoxVM.app helper is for launching VMs (fixes some issues with the dock).
INSTALLS += VirtualBox.app
VirtualBox.app_INST = $(INST_VIRTUALBOX)Contents/
VirtualBox.app_MODE = 644
$(VBOX_MACOSX_ICON_FILE)=>Resources/virtualbox.icns \
$(VBOX_BRAND_GUI_VBOX_64PX_PNG)=>Resources/virtualbox.png \
$(PATH_ROOT)/src/VBox/Resources/darwin/virtualbox-vbox-extpack.icns=>Resources/virtualbox-vbox-extpack.icns \
$$(VirtualBox.app_0_OUTDIR)/Info.plist: $(PATH_SUB_CURRENT)/src/platform/darwin/Info.plist $(VBOX_VERSION_MK) | $$(@D)/
$(call MSG_GENERATE,VirtualBox.app,$<,$@)
INSTALLS += VirtualBoxVM.app
VirtualBoxVM.app_MODE = 644
src/platform/darwin/VM-PkgInfo=>PkgInfo \
$(foreach mysrc,$(VirtualBox.app_SOURCES),$(if-expr $(pos =>Resources/,$(mysrc)) > 0,$(mysrc),))
$$(VirtualBoxVM.app_0_OUTDIR)/VM-Info.plist: $(PATH_SUB_CURRENT)/src/platform/darwin/VM-Info.plist $(VBOX_VERSION_MK) | $$(@D)/
$(call MSG_GENERATE,VirtualBoxVM.app,$<,$@)
vmstarter_SOURCES = src/platform/darwin/vmstarter.mm
INSTALLS += vmstarter.app
vmstarter.app_MODE = 644
src/platform/darwin/vmstarter-PkgInfo=>PkgInfo \
$(foreach mysrc,$(VirtualBox.app_SOURCES),$(if-expr $(pos =>Resources/,$(mysrc)) > 0,$(mysrc),))
$$(vmstarter.app_0_OUTDIR)/vmstarter-Info.plist: $(PATH_SUB_CURRENT)/src/platform/darwin/vmstarter-Info.plist $(VBOX_VERSION_MK) | $$(@D)/
$(call MSG_GENERATE,vmstarter.app,$<,$@)
VBoxOGL2D_TEMPLATE = $(if $(VBOX_WITH_VIDEOHWACCEL),$(if $(VBOX_WITH_HARDENING),VBOXQT4GUI,VBOXQT4GUIEXE),VBOXMAINEXE)
VBoxOGL2D_DEFS = QT_NO_DEBUG QT_THREAD_SUPPORT QT_SHARED HAVE_CONFIG_H VBOX_WITH_VIDEOHWACCEL VBOX_GUI_USE_QGL
PROGRAMS.darwin += tstDarwinKeyboard
tstDarwinKeyboard_DEFS.x86 = USE_HID_FOR_MODIFIERS
# Unset everything that was loaded from VBoxUI.pro.
QTGUI_DOXYFILE_OUTPUT = $(PATH_OUT)/docs/qtgui
$(QTGUI_DOXYFILE_OUTPUT)/Doxyfile.qtgui \
$(QTGUI_DOXYFILE_OUTPUT)/docs.qtgui
$(QTGUI_DOXYFILE_OUTPUT)/Doxyfile.qtgui: \
$(PATH_SUB_CURRENT)/Makefile.kmk \
$(QTGUI_DOXYFILE_OUTPUT)/docs.qtgui: $(QTGUI_DOXYFILE_OUTPUT)/Doxyfile.qtgui $$(QTGUI_DOXYFILE_INPUT) | $(QTGUI_DOXYFILE_OUTPUT)/
doxygen $(QTGUI_DOXYFILE_OUTPUT)/Doxyfile.qtgui
$(APPEND) $(QTGUI_DOXYFILE_OUTPUT)/docs.qtgui
docs: $(QTGUI_DOXYFILE_OUTPUT)/docs.qtgui
# before a new product release. VirtualBox_xx_YY.ts is a template for new
#VirtualBox_QT_TRANSLATIONS = nls/VirtualBox_de.ts
grep -i "src=[^:%]" $(filter-out nls/qt_%.ts,$(VirtualBox_QT_TRANSLATIONS))
updatenls:: makeallnls nls/VirtualBox_en.ts