# $Id: Makefile.kmk 41477 2012-05-29 11:43:27Z vboxsync $ ## @file # Sub-Makefile for VBoxBFE (a basic frontend which doesn't make use of Main). # # # Copyright (C) 2006-2012 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; # you can redistribute it and/or modify it under the terms of the GNU # General Public License (GPL) as published by the Free Software # Foundation, in version 2 as it comes in the "COPYING" file of the # VirtualBox OSE distribution. VirtualBox OSE is distributed in the # hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. # SUB_DEPTH = ../../../.. include $(KBUILD_PATH)/subheader.kmk if !defined(VBOX_WITH_HARDENING) || "$(KBUILD_TARGET)" != "darwin" # No hardened VBoxBFE on darwin (.m). # # Files from Main needed for building VBoxBFE # VBOXBFE_MAIN_SRCS = src-client/MouseImpl.cpp VBOXBFE_MAIN_HDRS = MouseImpl.h ConsoleEvents.h # # Targets. # ifdef VBOX_WITH_HARDENING PROGRAMS += VBoxBFEHardened DLLS += VBoxBFE else PROGRAMS += VBoxBFE endif # # Hardened VBoxBFE. # VBoxBFEHardened_TEMPLATE = VBOXR3HARDENEDEXE VBoxBFEHardened_SOURCES = VBoxBFEHardened.cpp VBoxBFEHardened_NAME = VBoxBFE # # VBoxBFE # VBoxBFE_TEMPLATE := $(if $(VBOX_WITH_HARDENING),VBOXR3NP,VBOXR3NPEXE) #ifdef VBOX_WITH_SECURELABEL #VBoxBFE_DEFS += VBOX_SECURELABEL #endif VBoxBFE_DEFS += VBOXBFE_WITHOUT_COM ifdef VBOX_WITH_LINUX_COMPILER_H VBoxBFE_DEFS += VBOX_WITH_LINUX_COMPILER_H endif VBoxBFE_DEFS.freebsd = VBOXBFE_WITH_X11 VBoxBFE_DEFS.linux = _GNU_SOURCE VBOXBFE_WITH_X11 VBoxBFE_DEFS.solaris = VBOXBFE_WITH_X11 VBoxBFE_DEFS.win.x86 = _WIN32_WINNT=0x0500 VBoxBFE_SOURCES = \ VBoxBFE.cpp \ VMMDevInterface.cpp \ DisplayImpl.cpp \ KeyboardImpl.cpp \ StatusImpl.cpp \ MachineDebuggerImpl.cpp \ VMControl.cpp \ $(addprefix $(VBoxBFE_0_OUTDIR)/,$(notdir $(VBOXBFE_MAIN_SRCS))) ifdef VBOX_WITH_HGCM VBoxBFE_DEFS += VBOX_WITH_HGCM VBoxBFE_SOURCES += \ HGCM.cpp \ HGCMThread.cpp \ HGCMObjects.cpp endif VBoxBFE_SOURCES.darwin = \ VBoxBFEMain-darwin.m # SDL VBoxBFE_SDKS += LIBSDL VBoxBFE_DEFS += USE_SDL VBoxBFE_SOURCES += \ SDLConsole.cpp \ SDLFramebuffer.cpp VBoxBFE_INCS = \ $(VBoxBFE_0_OUTDIR) \ $(VBOX_PATH_SDK)/include \ $(PATH_ROOT)/src/VBox/Frontends/VBoxBFE ifneq ($(filter-out win os2 darwin,$(KBUILD_TARGET)),) # X11 VBoxBFE_INCS += \ $(VBOX_XCURSOR_INCS) endif VBoxBFE_LIBS = \ $(LIB_RUNTIME) \ $(LIB_VMM) ifneq ($(filter-out win os2,$(KBUILD_TARGET)),) VBoxBFE_LIBS += \ $(LIB_REM) endif ifneq ($(filter-out win os2 darwin,$(KBUILD_TARGET)),) # X11 VBoxBFE_LIBS += \ $(VBOX_XCURSOR_LIBS) \ X11 VBoxBFE_LIBPATH += \ $(VBOX_LIBPATH_X11) endif ifndef VBOX_WITHOUT_COM VBoxBFE_LIBS.win = \ $(PATH_TOOL_$(VBOX_VCC_TOOL)_ATLMFC_LIB)/atls.lib endif VBoxBFE_LIBS.darwin = \ $(LIB_SDK_LIBSDL_SDLMAIN) VBoxBFE_LDFLAGS.darwin = -framework Foundation -framework AppKit ## @todo why is it all this cool stuff here only for linux? If it's important, -fshort-wchar would apply to all GCC platforms. VBoxBFE_DEFS.linux = \ NDEBUG TRIMMED VBoxBFE_CXXFLAGS.linux = \ -fno-rtti -fno-exceptions -fshort-wchar -pthread VBoxBFE_CLEAN = $(VBoxBFE_0_OUTDIR)/Ico64x01.h VBoxBFE_SDLConsole.cpp_DEPS = $(VBoxBFE_0_OUTDIR)/Ico64x01.h # Convert the pnm-file to a byte array. $$(VBoxBFE_0_OUTDIR)/Ico64x01.h: $(PATH_ROOT)/src/VBox/Frontends/VBoxBFE/ico64x01.pnm $(VBOX_BIN2C) | $$(dir $$@) $(call MSG_TOOL,bin2c,VBoxBFE,$<,$@) $(QUIET)$(VBOX_BIN2C) Ico64x01 $< $@ # Files we share with Main needs to be copied into the output dir. VBoxBFE_INTERMEDIATES = $(addprefix $(VBoxBFE_0_OUTDIR)/, $(VBOXBFE_MAIN_HDRS)) VBoxBFE_CLEAN += $(addprefix $(VBoxBFE_0_OUTDIR)/, $(VBOXBFE_MAIN_HDRS) $(notdir $(VBOXBFE_MAIN_SRCS))) define def_copy_main_file $$(VBoxBFE_0_OUTDIR)/$(notdir $(file)): $(PATH_ROOT)/src/VBox/Main/$(file) | $$(dir $$@) $(call MSG_INST_FILE,$<,$@) $(QUIET)$(CP_EXT) -f $< $@ endef $(foreach file,$(addprefix include/,$(VBOXBFE_MAIN_HDRS)), $(evalval def_copy_main_file)) $(foreach file,$(VBOXBFE_MAIN_SRCS), $(evalval def_copy_main_file)) if !defined(VBOX_ONLY_SDK) && defined(VBOX_WITH_TESTCASES) # # tstMouseImpl # PROGRAMS += tstMouseImpl tstMouseImpl_TEMPLATE = VBOXR3TSTEXE tstMouseImpl_DEFS = VBOXBFE_WITHOUT_COM tstMouseImpl_SOURCES = \ testcase/tstMouseImpl.cpp \ $(addprefix $(VBoxBFE_0_OUTDIR)/,$(notdir $(VBOXBFE_MAIN_SRCS))) tstMouseImpl_INCS = \ $(VBoxBFE_0_OUTDIR) \ $(VBOX_PATH_SDK)/include \ . tstMouseImpl_INTERMEDIATES = $(addprefix $(VBoxBFE_0_OUTDIR)/, $(VBOXBFE_MAIN_HDRS)) endif # !VBOX_ONLY_SDK endif # !VBOX_WITH_HARDENING || !darwin include $(FILE_KBUILD_SUB_FOOTER)