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