Makefile.kmk revision 9e201d78ac6efdd08550263f2e146cdb76e9d49b
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift# $Id$
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift## @file
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift# Makefile for VBoxSDL (a simple frontend based on SDL).
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift#
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift#
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift# Copyright (C) 2006 InnoTek Systemberatung GmbH
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift#
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift# This file is part of VirtualBox Open Source Edition (OSE), as
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift# available from http://www.virtualbox.org. This file is free software;
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift# you can redistribute it and/or modify it under the terms of the GNU
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift# General Public License as published by the Free Software Foundation,
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift# in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift# distribution. VirtualBox OSE is distributed in the hope that it will
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift# be useful, but WITHOUT ANY WARRANTY of any kind.
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift#
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift# If you received this file as part of a commercial VirtualBox
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift# distribution, then only the terms of your commercial VirtualBox
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift# license agreement apply instead of the previous paragraph.
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift#
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftDEPTH = ../../../..
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftinclude $(PATH_KBUILD)/header.kmk
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftPROGRAMS = VBoxSDL tstSDL
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift#
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift# VBoxSDL
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift#
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftifneq ($(filter win linux,$(BUILD_TARGET)),) ## @todo Convert these two to the other template too!
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swift VBoxSDL_TEMPLATE = VBOXR3NPEXE
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swift VBoxSDL_CXXFLAGS.win = \
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swift -EHsc
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swift VBoxSDL_CXXFLAGS.linux = \
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift -DNDEBUG -DTRIMMED -DVBOX_WITH_XPCOM -O -Wall -fno-rtti -fno-exceptions \
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift -Wno-non-virtual-dtor -Wno-long-long -fshort-wchar -pthread -pipe
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftelse
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift VBoxSDL_TEMPLATE = VBOXMAINCLIENT
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftendif
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftVBoxSDL_SDKS = LIBSDL
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftVBoxSDL_SOURCES = \
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swift VBoxSDL.cpp \
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swift Framebuffer.cpp \
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swift Helper.cpp
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swiftifndef VBOX_OSE
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swift VBoxSDL_SOURCES.win= \
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift win32/WinUI.cpp \
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift win32/TitlebarButtons.cpp \
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift win32/VBoxSDL.rc
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftendif
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftVBoxSDL_DEFS =
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftifdef VBOX_WITH_SECURELABEL
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift VBoxSDL_DEFS += VBOX_SECURELABEL
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftendif
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swiftifdef VBOX_WITH_VRDP
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swift VBoxSDL_DEFS += VBOX_VRDP
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftendif
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swiftVBoxSDL_DEFS.linux = _GNU_SOURCE
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swiftifdef VBOX_OPENGL
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swift #VBoxSDL_DEFS.linux += VBOX_OPENGL
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftendif
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swiftifndef VBOX_OSE
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swift VBoxSDL_DEFS.win = VBOX_WIN32_UI
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swiftendif
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swiftVBoxSDL_DEFS.win.x86 = _WIN32_WINNT=0x0500
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swiftVBoxSDL_DEFS.win.amd64 = _WIN32_WINNT=0x0510
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swiftVBoxSDL_INCS = \
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift $(PATH_BIN)/sdk/include
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftifdef VBOX_WITH_XPCOM
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift VBoxSDL_INCS = \
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swift $(PATH_BIN)/sdk/include \
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swift $(VBOX_XPCOM_INCS) \
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swift $(PATH_VBoxSDL)
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swift VBoxSDL_LIBS = \
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swift $(LIB_SDK_LIBSDL_SDLMAIN) \
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swift $(PATH_LIB)/VBoxXPCOM$(VBOX_SUFF_LIB) \
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swift $(LIB_RUNTIME) \
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift $(PATH_LIB)/VBoxXPCOMGlue$(VBOX_SUFF_LIB) \
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift $(PATH_BIN)/VBoxXPCOM$(VBOX_SUFF_DLL)
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift VBoxSDL_LIBS.linux = \
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swift $(LIB_XCURSOR)
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift VBoxSDL_LDFLAGS.darwin = \
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift -framework Foundation -framework AppKit
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftelse # !VBOX_WITH_XPCOM
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift VBoxSDL_INCS.win = \
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift $(PATH_BIN)/sdk/include \
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift $(PATH_TOOL_$(VBOX_VCC_TOOL)_ATLMFC_INC) \
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift $(PATH_VBoxSDL)
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift VBoxSDL_LIBS.win = \
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift $(PATH_LIB)/VBoxCOM$(VBOX_SUFF_LIB) \
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift $(PATH_TOOL_$(VBOX_VCC_TOOL)_ATLMFC_LIB)/atls.lib \
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift $(LIB_RUNTIME)
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftendif # !VBOX_WITH_XPCOM
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftifdef VBOX_OPENGL
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift #VBoxSDL_LIBS.linux += GL
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftendif
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftVBoxSDL_LIBPATH.linux = \
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swift $(VBOX_LIBPATH_X11)
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swift
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swiftVBoxSDL_CLEAN = $(PATH_VBoxSDL)/Ico64x01.h
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swiftFramebuffer.cpp_DEPS = $(PATH_VBoxSDL)/Ico64x01.h
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swift
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swift
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swift#
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swift# tstSDL
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swift#
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swifttstSDL_TEMPLATE = VBOXR3NPEXE
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swifttstSDL_SDKS = LIBSDL
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swifttstSDL_INST = $(INST_TESTCASE)
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swifttstSDL_SOURCES = \
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swift VBoxSDLTest.cpp
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swifttstSDL_DEFS = IN_RING3 IN_RT_R3 _GNU_SOURCE
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swifttstSDL_DEFS.win.x86 = _WIN32_WINNT=0x0500
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftifdef VBOX_OPENGL
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swifttstSDL_DEFS.linux = VBOX_OPENGL
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swiftendif
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swifttstSDL_INCS = \
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swift $(PATH_tstSDL)
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift
49f497cfbd8165bbec0080a46c450e2672fd47e3matthew_swifttstSDL_LIBS = \
49f497cfbd8165bbec0080a46c450e2672fd47e3matthew_swift $(LIB_RUNTIME)
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftifneq ($(filter-out win,$(BUILD_TARGET)),) # someone PLEASE explain why we don't use sdl main!
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swifttstSDL_LIBS += \
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift $(LIB_SDK_LIBSDL_SDLMAIN)
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftendif
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftifdef VBOX_OPENGL
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swifttstSDL_LIBS.linux += GL
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swiftendif
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swifttstSDL_LIBPATH.linux = \
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift $(VBOX_LIBPATH_X11)
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swifttstSDL_LDFLAGS.darwin = \
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swift -framework Foundation -framework AppKit
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swifttstSDL_CXXFLAGS.win = \
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift -EHsc
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swifttstSDL_CXXFLAGS.linux = \
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift -DNDEBUG -DTRIMMED -O -Wall -fno-rtti -fno-exceptions \
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift -Wno-non-virtual-dtor -Wno-long-long -fshort-wchar -pthread -pipe
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift# generate rules
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftinclude $(PATH_KBUILD)/footer.kmk
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swift
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swift
e32b0f1464ea290b749a43d5ee7a6085b14532c9matthew_swift# Convert the pnm-file to a byte array.
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift$(PATH_VBoxSDL)/Ico64x01.h: ico64x01.pnm $(VBOX_BIN2C) | $(call DIRDEP,$(PATH_VBoxSDL))
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift $(call MSG_TOOL,bin2c,VBoxSDL,$<,$@)
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift $(QUIET)$(VBOX_BIN2C) Ico64x01 $< $@
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift