Makefile.kmk revision 10f224d85cd1135f0ca4ee1c1c1a7e15988bed58
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay# $Id$
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay## @file
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay# Makefile for VBoxSDL (a simple frontend based on SDL).
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay#
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay#
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay# Copyright (C) 2006-2007 innotek GmbH
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay#
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay# This file is part of VirtualBox Open Source Edition (OSE), as
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay# available from http://www.virtualbox.org. This file is free software;
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay# you can redistribute it and/or modify it under the terms of the GNU
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay# General Public License as published by the Free Software Foundation,
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay# in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
088fa5d9eaa83bf4b3d59a64c0519f42a143aaa9Alin Brici# distribution. VirtualBox OSE is distributed in the hope that it will
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay# be useful, but WITHOUT ANY WARRANTY of any kind.
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason LemayDEPTH = ../../../..
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemayinclude $(PATH_KBUILD)/header.kmk
4d154727feb7fbe69dd1451fa5462f558e7165c7Brendan Mmiller
088fa5d9eaa83bf4b3d59a64c0519f42a143aaa9Alin BriciPROGRAMS = VBoxSDL tstSDL
088fa5d9eaa83bf4b3d59a64c0519f42a143aaa9Alin Brici
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay#
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay# VBoxSDL
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay#
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason LemayVBoxSDL_TEMPLATE = VBOXMAINCLIENTEXE
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason LemayVBoxSDL_SDKS = LIBSDL
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason LemayVBoxSDL_SOURCES = \
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay VBoxSDL.cpp \
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay Framebuffer.cpp \
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay Helper.cpp
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemayifndef VBOX_OSE
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay VBoxSDL_SOURCES.win= \
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay win32/WinUI.cpp \
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay win32/TitlebarButtons.cpp \
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay win32/VBoxSDL.rc
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemayendif
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason LemayVBoxSDL_DEFS =
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemayifdef VBOX_WITH_SECURELABEL
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay VBoxSDL_DEFS += VBOX_SECURELABEL
4d154727feb7fbe69dd1451fa5462f558e7165c7Brendan Mmillerendif
4d154727feb7fbe69dd1451fa5462f558e7165c7Brendan Mmillerifdef VBOX_WITH_VRDP
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay VBoxSDL_DEFS += VBOX_VRDP
4d154727feb7fbe69dd1451fa5462f558e7165c7Brendan Mmillerendif
4d154727feb7fbe69dd1451fa5462f558e7165c7Brendan MmillerVBoxSDL_DEFS.freebsd = VBOXSDL_WITH_X11
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason LemayVBoxSDL_DEFS.linux = _GNU_SOURCE VBOXSDL_WITH_X11
4d154727feb7fbe69dd1451fa5462f558e7165c7Brendan MmillerVBoxSDL_DEFS.solaris = VBOXSDL_WITH_X11
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason LemayVBoxSDL_DEFS.solaris += VBOX_WITHOUT_XCURSOR ## @todo build xcursor or something.
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemayifdef VBOX_OPENGL
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay #VBoxSDL_DEFS.linux += VBOX_OPENGL
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemayendif
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemayifndef VBOX_OSE
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay VBoxSDL_DEFS.win = VBOX_WIN32_UI
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemayendif
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason LemayVBoxSDL_DEFS.win.x86 = _WIN32_WINNT=0x0500
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason LemayVBoxSDL_DEFS.win.amd64 = _WIN32_WINNT=0x0510
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason LemayVBoxSDL_INCS = \
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay $(PATH_BIN)/sdk/include \
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay $(PATH_VBoxSDL)
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemayifndef ($(filter-out win solaris,$(BUILD_TARGET),)
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason LemayVBoxSDL_LIBS = \
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay $(LIB_SDK_LIBSDL_SDLMAIN)
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemayendif
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemayifeq ($(filter-out freebsd linux netbsd openbsd solaris,$(BUILD_TARGET)),) # X11
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemayifneq ($(BUILD_TARGET),solaris) ## @todo Xcursor on solaris.
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason LemayVBoxSDL_LIBS += \
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay $(LIB_XCURSOR)
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemayendif
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason LemayVBoxSDL_LIBPATH = \
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay $(VBOX_LIBPATH_X11)
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemayendif
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason LemayVBoxSDL_LIBS.solaris = \
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay $(LIB_X11)
4d154727feb7fbe69dd1451fa5462f558e7165c7Brendan Mmillerifdef VBOX_OPENGL
4d154727feb7fbe69dd1451fa5462f558e7165c7Brendan Mmiller #VBoxSDL_LIBS.linux += GL
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemayendif
4d154727feb7fbe69dd1451fa5462f558e7165c7Brendan MmillerVBoxSDL_LDFLAGS.darwin = \
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay -framework Foundation -framework AppKit
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay
3d67e448e54b5acfa464c365cd5a563d0e4ef29aJason LemayVBoxSDL_CLEAN = $(PATH_VBoxSDL)/Ico64x01.h
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason LemayFramebuffer.cpp_DEPS = $(PATH_VBoxSDL)/Ico64x01.h
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay#
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay# tstSDL
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay#
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason LemaytstSDL_TEMPLATE = VBOXR3NPEXE
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason LemaytstSDL_SDKS = LIBSDL
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason LemaytstSDL_INST = $(INST_TESTCASE)
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason LemaytstSDL_SOURCES = \
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay VBoxSDLTest.cpp
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason LemaytstSDL_DEFS = IN_RING3 IN_RT_R3 _GNU_SOURCE
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason LemaytstSDL_DEFS.win.x86 = _WIN32_WINNT=0x0500
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemayifdef VBOX_OPENGL
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason LemaytstSDL_DEFS.linux = VBOX_OPENGL
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemayendif
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason LemaytstSDL_INCS = \
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay $(PATH_tstSDL)
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason LemaytstSDL_LIBS = \
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay $(LIB_RUNTIME)
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemayifneq ($(filter-out win,$(BUILD_TARGET)),) # someone PLEASE explain why we don't use sdl main!
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason LemaytstSDL_LIBS += \
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay $(LIB_SDK_LIBSDL_SDLMAIN)
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemayendif
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemay
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemayifdef VBOX_OPENGL
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason LemaytstSDL_LIBS.linux += GL
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemayendif
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason Lemayifeq ($(filter-out freebsd linux netbsd openbsd solaris,$(BUILD_TARGET)),) # X11
102cd62c1b6b55d0dee627930d058a8cc36e2b4fJason LemaytstSDL_LIBPATH = \
$(VBOX_LIBPATH_X11)
endif
tstSDL_LDFLAGS.darwin = \
-framework Foundation -framework AppKit
tstSDL_CXXFLAGS.win = \
-EHsc
tstSDL_CXXFLAGS.linux = \
-DNDEBUG -DTRIMMED -O -Wall -fno-rtti -fno-exceptions \
-Wno-non-virtual-dtor -Wno-long-long -fshort-wchar -pthread -pipe
# generate rules
include $(PATH_KBUILD)/footer.kmk
# Convert the pnm-file to a byte array.
$(PATH_VBoxSDL)/Ico64x01.h: ico64x01.pnm $(VBOX_BIN2C) | $(call DIRDEP,$(PATH_VBoxSDL))
$(call MSG_TOOL,bin2c,VBoxSDL,$<,$@)
$(QUIET)$(VBOX_BIN2C) Ico64x01 $< $@