Makefile.kmk revision 2d2e3a2d00c18309a6f67d626972b29f58fe7879
af062818b47340eef15700d2f0211576ba3506eevboxsync# $Id$
af062818b47340eef15700d2f0211576ba3506eevboxsync## @file
af062818b47340eef15700d2f0211576ba3506eevboxsync# Sub-Makefile for VBoxSDL (a simple frontend based on SDL).
af062818b47340eef15700d2f0211576ba3506eevboxsync#
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#
af062818b47340eef15700d2f0211576ba3506eevboxsync# Copyright (C) 2006-2007 Oracle Corporation
af062818b47340eef15700d2f0211576ba3506eevboxsync#
af062818b47340eef15700d2f0211576ba3506eevboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
af062818b47340eef15700d2f0211576ba3506eevboxsync# available from http://www.virtualbox.org. This file is free software;
af062818b47340eef15700d2f0211576ba3506eevboxsync# you can redistribute it and/or modify it under the terms of the GNU
af062818b47340eef15700d2f0211576ba3506eevboxsync# General Public License (GPL) as published by the Free Software
af062818b47340eef15700d2f0211576ba3506eevboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
af062818b47340eef15700d2f0211576ba3506eevboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
af062818b47340eef15700d2f0211576ba3506eevboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
af062818b47340eef15700d2f0211576ba3506eevboxsync#
af062818b47340eef15700d2f0211576ba3506eevboxsync
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsyncSUB_DEPTH = ../../../..
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsyncinclude $(KBUILD_PATH)/subheader.kmk
4b9d6701570cb98fd36e209314239d104ec584d3vboxsyncif !defined(VBOX_WITH_HARDENING) || "$(KBUILD_TARGET)" != "darwin" # No hardened VBoxSDL on darwin.
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync#
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync# Targets.
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync#
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsyncifdef VBOX_WITH_HARDENING
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync PROGRAMS += VBoxSDLHardened
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync DLLS += VBoxSDL
af062818b47340eef15700d2f0211576ba3506eevboxsyncelse
af062818b47340eef15700d2f0211576ba3506eevboxsync PROGRAMS += VBoxSDL
af062818b47340eef15700d2f0211576ba3506eevboxsyncendif
af062818b47340eef15700d2f0211576ba3506eevboxsyncPROGRAMS += tstSDL
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#
af062818b47340eef15700d2f0211576ba3506eevboxsync# Hardened VBoxSDL
af062818b47340eef15700d2f0211576ba3506eevboxsync#
af062818b47340eef15700d2f0211576ba3506eevboxsyncVBoxSDLHardened_TEMPLATE = VBOXR3HARDENEDEXE
af062818b47340eef15700d2f0211576ba3506eevboxsyncVBoxSDLHardened_SOURCES = VBoxSDLHardened.cpp
af062818b47340eef15700d2f0211576ba3506eevboxsyncVBoxSDLHardened_NAME = VBoxSDL
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#
af062818b47340eef15700d2f0211576ba3506eevboxsync# VBoxSDL
af062818b47340eef15700d2f0211576ba3506eevboxsync#
af062818b47340eef15700d2f0211576ba3506eevboxsyncVBoxSDL_TEMPLATE := $(if $(VBOX_WITH_HARDENING),VBOXMAINCLIENTDLL,VBOXMAINCLIENTEXE)
af062818b47340eef15700d2f0211576ba3506eevboxsyncVBoxSDL_SDKS = LIBSDL
af062818b47340eef15700d2f0211576ba3506eevboxsyncVBoxSDL_SOURCES = \
af062818b47340eef15700d2f0211576ba3506eevboxsync VBoxSDL.cpp \
af062818b47340eef15700d2f0211576ba3506eevboxsync Framebuffer.cpp \
af062818b47340eef15700d2f0211576ba3506eevboxsync Helper.cpp
af062818b47340eef15700d2f0211576ba3506eevboxsyncVBoxSDL_SOURCES.darwin = \
af062818b47340eef15700d2f0211576ba3506eevboxsync VBoxSDLMain-darwin.m
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncVBoxSDL_DEFS =
af062818b47340eef15700d2f0211576ba3506eevboxsyncifdef VBOX_WITH_SDL13
af062818b47340eef15700d2f0211576ba3506eevboxsync VBoxSDL_DEFS += VBOX_WITH_SDL13
af062818b47340eef15700d2f0211576ba3506eevboxsyncelse
af062818b47340eef15700d2f0211576ba3506eevboxsync ifdef VBOX_WITH_SECURELABEL
af062818b47340eef15700d2f0211576ba3506eevboxsync VBoxSDL_DEFS += VBOX_SECURELABEL
af062818b47340eef15700d2f0211576ba3506eevboxsync endif
af062818b47340eef15700d2f0211576ba3506eevboxsyncendif
af062818b47340eef15700d2f0211576ba3506eevboxsyncifdef VBOX_WITH_VRDP
af062818b47340eef15700d2f0211576ba3506eevboxsync VBoxSDL_DEFS += VBOX_WITH_VRDP
af062818b47340eef15700d2f0211576ba3506eevboxsyncendif
af062818b47340eef15700d2f0211576ba3506eevboxsyncVBoxSDL_DEFS.freebsd = VBOXSDL_WITH_X11
af062818b47340eef15700d2f0211576ba3506eevboxsyncVBoxSDL_DEFS.linux = _GNU_SOURCE VBOXSDL_WITH_X11
af062818b47340eef15700d2f0211576ba3506eevboxsyncVBoxSDL_DEFS.solaris = VBOXSDL_WITH_X11
af062818b47340eef15700d2f0211576ba3506eevboxsyncifdef VBOX_OPENGL
af062818b47340eef15700d2f0211576ba3506eevboxsync #VBoxSDL_DEFS.linux += VBOX_OPENGL
af062818b47340eef15700d2f0211576ba3506eevboxsyncendif
af062818b47340eef15700d2f0211576ba3506eevboxsyncifndef VBOX_OSE
af062818b47340eef15700d2f0211576ba3506eevboxsync# disable for now as this customer-specific GUI
af062818b47340eef15700d2f0211576ba3506eevboxsync# VBoxSDL_DEFS.win = VBOX_WIN32_UI
af062818b47340eef15700d2f0211576ba3506eevboxsyncendif
af062818b47340eef15700d2f0211576ba3506eevboxsyncVBoxSDL_DEFS.win.x86 = _WIN32_WINNT=0x0500
af062818b47340eef15700d2f0211576ba3506eevboxsyncVBoxSDL_DEFS.win.amd64 = _WIN32_WINNT=0x0510
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncVBoxSDL_INCS = \
af062818b47340eef15700d2f0211576ba3506eevboxsync $(PATH_VBoxSDL)
af062818b47340eef15700d2f0211576ba3506eevboxsyncifeq ($(filter-out freebsd linux netbsd openbsd solaris,$(KBUILD_TARGET)),) # X11
af062818b47340eef15700d2f0211576ba3506eevboxsyncVBoxSDL_INCS += \
af062818b47340eef15700d2f0211576ba3506eevboxsync $(VBOX_XCURSOR_INCS)
af062818b47340eef15700d2f0211576ba3506eevboxsyncendif
af062818b47340eef15700d2f0211576ba3506eevboxsyncifneq ($(filter-out win solaris,$(KBUILD_TARGET)),)
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncVBoxSDL_LIBS = \
af062818b47340eef15700d2f0211576ba3506eevboxsync $(LIB_SDK_LIBSDL_SDLMAIN)
af062818b47340eef15700d2f0211576ba3506eevboxsyncendif
af062818b47340eef15700d2f0211576ba3506eevboxsyncifeq ($(filter-out freebsd linux netbsd openbsd solaris,$(KBUILD_TARGET)),) # X11
af062818b47340eef15700d2f0211576ba3506eevboxsyncVBoxSDL_LIBS += \
af062818b47340eef15700d2f0211576ba3506eevboxsync $(PATH_DLL)/VBoxKeyboard$(VBOX_SUFF_DLL) \
af062818b47340eef15700d2f0211576ba3506eevboxsync $(VBOX_XCURSOR_LIBS) \
af062818b47340eef15700d2f0211576ba3506eevboxsync X11
af062818b47340eef15700d2f0211576ba3506eevboxsyncVBoxSDL_LIBPATH = \
af062818b47340eef15700d2f0211576ba3506eevboxsync $(VBOX_LIBPATH_X11)
af062818b47340eef15700d2f0211576ba3506eevboxsyncendif
af062818b47340eef15700d2f0211576ba3506eevboxsyncifdef VBOX_OPENGL
af062818b47340eef15700d2f0211576ba3506eevboxsync #VBoxSDL_LIBS.linux += GL
af062818b47340eef15700d2f0211576ba3506eevboxsyncendif
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncVBoxSDL_LDFLAGS.darwin = \
af062818b47340eef15700d2f0211576ba3506eevboxsync -framework Foundation -framework AppKit
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncVBoxSDL_CLEAN = $(PATH_VBoxSDL)/Ico64x01.h
af062818b47340eef15700d2f0211576ba3506eevboxsyncVBoxSDL_INTERMEDIATES = $(PATH_VBoxSDL)/Ico64x01.h
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync# Convert the pnm-file to a byte array.
af062818b47340eef15700d2f0211576ba3506eevboxsync$$(PATH_VBoxSDL)/Ico64x01.h: $(PATH_ROOT)/src/VBox/Frontends/VBoxSDL/ico64x01.pnm $(VBOX_BIN2C) | $$(dir $$@)
af062818b47340eef15700d2f0211576ba3506eevboxsync $(call MSG_TOOL,bin2c,VBoxSDL,$<,$@)
af062818b47340eef15700d2f0211576ba3506eevboxsync $(QUIET)$(VBOX_BIN2C) Ico64x01 $< $@
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync# Icon include file.
af062818b47340eef15700d2f0211576ba3506eevboxsync$$(PATH_VBoxSDL)/VBoxSDL-icon.rc: $(VBOX_WINDOWS_ICON_FILE) $$(VBoxSDL_PATH)/Makefile.kmk | $$(dir $$@)
af062818b47340eef15700d2f0211576ba3506eevboxsync $(RM) -f $@
af062818b47340eef15700d2f0211576ba3506eevboxsync $(APPEND) $@ 'IDI_VIRTUALBOX ICON DISCARDABLE "$(subst /,\\,$(VBOX_WINDOWS_ICON_FILE))"'
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#
af062818b47340eef15700d2f0211576ba3506eevboxsync# tstSDL
af062818b47340eef15700d2f0211576ba3506eevboxsync#
af062818b47340eef15700d2f0211576ba3506eevboxsynctstSDL_TEMPLATE = VBOXR3NPEXE
af062818b47340eef15700d2f0211576ba3506eevboxsynctstSDL_SDKS = LIBSDL
af062818b47340eef15700d2f0211576ba3506eevboxsynctstSDL_INST = $(INST_TESTCASE)
af062818b47340eef15700d2f0211576ba3506eevboxsynctstSDL_SOURCES = \
af062818b47340eef15700d2f0211576ba3506eevboxsync VBoxSDLTest.cpp
af062818b47340eef15700d2f0211576ba3506eevboxsynctstSDL_SOURCES.darwin = \
af062818b47340eef15700d2f0211576ba3506eevboxsync VBoxSDLMain-darwin.m
af062818b47340eef15700d2f0211576ba3506eevboxsynctstSDL_DEFS = IN_RING3 IN_RT_R3 _GNU_SOURCE
af062818b47340eef15700d2f0211576ba3506eevboxsynctstSDL_DEFS.win.x86 = _WIN32_WINNT=0x0500
af062818b47340eef15700d2f0211576ba3506eevboxsyncifdef VBOX_OPENGL
af062818b47340eef15700d2f0211576ba3506eevboxsynctstSDL_DEFS.linux = VBOX_OPENGL
af062818b47340eef15700d2f0211576ba3506eevboxsyncendif
af062818b47340eef15700d2f0211576ba3506eevboxsynctstSDL_INCS = \
af062818b47340eef15700d2f0211576ba3506eevboxsync $(PATH_tstSDL)
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctstSDL_LIBS = \
af062818b47340eef15700d2f0211576ba3506eevboxsync $(LIB_RUNTIME)
af062818b47340eef15700d2f0211576ba3506eevboxsyncifneq ($(filter-out win solaris,$(KBUILD_TARGET)),)
af062818b47340eef15700d2f0211576ba3506eevboxsynctstSDL_LIBS += \
af062818b47340eef15700d2f0211576ba3506eevboxsync $(LIB_SDK_LIBSDL_SDLMAIN)
af062818b47340eef15700d2f0211576ba3506eevboxsyncendif
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncifdef VBOX_OPENGL
af062818b47340eef15700d2f0211576ba3506eevboxsynctstSDL_LIBS.linux += GL
af062818b47340eef15700d2f0211576ba3506eevboxsyncendif
af062818b47340eef15700d2f0211576ba3506eevboxsyncifeq ($(filter-out freebsd linux netbsd openbsd solaris,$(KBUILD_TARGET)),) # X11
af062818b47340eef15700d2f0211576ba3506eevboxsynctstSDL_LIBPATH = \
af062818b47340eef15700d2f0211576ba3506eevboxsync $(VBOX_LIBPATH_X11)
af062818b47340eef15700d2f0211576ba3506eevboxsyncendif
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctstSDL_LDFLAGS.darwin = \
af062818b47340eef15700d2f0211576ba3506eevboxsync -framework Foundation -framework AppKit
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync## @todo What was this stuff doing here? The exception config is saying two different things, and why just -O for release builds?
af062818b47340eef15700d2f0211576ba3506eevboxsync#tstSDL_CXXFLAGS.win = \
af062818b47340eef15700d2f0211576ba3506eevboxsync# -EHsc
af062818b47340eef15700d2f0211576ba3506eevboxsync#tstSDL_CXXFLAGS.linux = \
af062818b47340eef15700d2f0211576ba3506eevboxsync# -DNDEBUG -DTRIMMED -O -Wall -fno-rtti -fno-exceptions \
af062818b47340eef15700d2f0211576ba3506eevboxsync# -Wno-non-virtual-dtor -Wno-long-long -fshort-wchar -pthread -pipe
af062818b47340eef15700d2f0211576ba3506eevboxsync# Is this what's intended? Why -fshort-wchar?
af062818b47340eef15700d2f0211576ba3506eevboxsynctstSDL_DEFS.linux = NDEBUG TRIMMED
af062818b47340eef15700d2f0211576ba3506eevboxsynctstSDL_CXXFLAGS.linux = -O -Wall -Wno-non-virtual-dtor -Wno-long-long -fshort-wchar
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncendif # !VBOX_WITH_HARDENING || "$(KBUILD_TARGET)" != "darwin"
af062818b47340eef15700d2f0211576ba3506eevboxsyncinclude $(KBUILD_PATH)/subfooter.kmk
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync