Makefile.kmk revision 27537ffef7291d0bb3a24e459a6b94c65586defe
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync# $Id$
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync## @file
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync# Sub-Makefile for the VirtualBox Guest Addition X11 Client.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync# Copyright (C) 2006-2007 Sun Microsystems, Inc.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync# available from http://www.virtualbox.org. This file is free software;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync# you can redistribute it and/or modify it under the terms of the GNU
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync# General Public License (GPL) as published by the Free Software
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync# Clara, CA 95054 USA or visit http://www.sun.com if you need
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync# additional information or have any questions.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncDEPTH ?= ../../../../..
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncSUB_DEPTH = ../..
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncinclude $(KBUILD_PATH)/subheader.kmk
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync# VBoxClient - clipboard and seamless.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncPROGRAMS += VBoxClient
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncVBoxClient_TEMPLATE = VBOXGUESTR3CPPEXE
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncVBoxClient_DEFS += VBOX_X11_CLIPBOARD VBOX_HGCM
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncVBoxClient_DEFS.linux += _GNU_SOURCE
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncVBoxClient_SOURCES = \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync main.cpp
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncVBoxClient_SOURCES += \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync clipboard.cpp
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncVBoxClient_LIBPATH = \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync $(VBOX_LIBPATH32_X11)
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncVBoxClient_LIBS = \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync $(VBOX_LIB_IPRT_GUEST_R3) \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync $(VBOX_LIB_VBGL_R3) \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync $(VBOX_LIB_IPRT_GUEST_R3) \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync X11 \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Xt
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync## @todo r=bird: move to the template (that's what they are there for). ditto for VBoxService.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncVBoxClient_LIBPATH.freebsd += \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync /usr/local/lib
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncVBoxClient_LIBS.freebsd += \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync iconv
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncifdef VBOX_X11_SEAMLESS_GUEST
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync VBoxClient_DEFS += SEAMLESS_GUEST DYNAMIC_RESIZE
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync VBoxClient_SOURCES += \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync seamless-host.cpp \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync seamless-x11.cpp \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync thread.cpp \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync displaychange-x11.cpp
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync VBoxClient_LIBS += \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Xext Xmu
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncendif
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync# Link aginst libstdc++.a. (http://www.trilithium.com/johan/2005/06/static-libstdc/).
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync# (It would've been preferred to avoid features depending on libstdc++, of course...)
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncVBoxClient_LIBPATH += $(PATH_TARGET)/VBoxClient
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncVBoxClient_ORDERDEPS = $(PATH_TARGET)/VBoxClient/libstdc++.a
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncVBoxClient_CLEAN = $(PATH_TARGET)/VBoxClient/libstdc++.a
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync$(PATH_TARGET)/VBoxClient/libstdc++.a:
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync $(call MSG_L1,Forcing static libstdc++)
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync $(QUIET)$(MKDIR) -p $(@D)
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync $(QUIET)$(LN_EXT) -sf `$(TOOL_$(VBOX_GCC32_TOOL)_CXX) -print-file-name=libstdc++.a` $@ \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync || $(CP_EXT) -f `$(TOOL_$(VBOX_GCC32_TOOL)_CXX) -print-file-name=libstdc++.a` $@
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncifdef VBOX_X11_SEAMLESS_GUEST
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ifdef VBOX_WITH_TESTCASES
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ifndef VBOX_ONLY_ADDITIONS
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync #
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync # Additional testcase designed to be run manually, which initiates and starts the Linux
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync # guest client part of the seamless additions in the host, faking seamless events from
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync # the host and writing information about guest events to standard output.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync #
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PROGRAMS += tstSeamlessX11
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync tstSeamlessX11_TEMPLATE = VBOXR3TSTEXE
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync tstSeamlessX11_SOURCES = \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync testcase/tstSeamlessX11.cpp \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync seamless-host.cpp \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync seamless-x11.cpp \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync thread.cpp
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync tstSeamlessX11_LIBPATH = \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync $(VBOX_LIBPATH_X11)
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync tstSeamlessX11_LIBS = \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync $(LIB_RUNTIME) \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Xext \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Xmu \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync X11
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync endif
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync endif
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncendif
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncinclude $(KBUILD_PATH)/subfooter.kmk