summaryrefslogtreecommitdiff
path: root/src/VBox/Additions/x11/VBoxClient/Makefile.kmk
blob: cbbfabe6f416556f90872036e93c9f9f0cd7c1c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# $Id$
## @file
# Sub-Makefile for the VirtualBox Guest Addition X11 Client.
#

#
# Copyright (C) 2006-2012 Oracle Corporation
#
# This file is part of VirtualBox Open Source Edition (OSE), as
# available from http://www.virtualbox.org. This file is free software;
# you can redistribute it and/or modify it under the terms of the GNU
# General Public License (GPL) as published by the Free Software
# Foundation, in version 2 as it comes in the "COPYING" file of the
# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
#

SUB_DEPTH = ../../../../..
include $(KBUILD_PATH)/subheader.kmk

#
# VBoxClient - clipboard and seamless.
#
PROGRAMS += VBoxClient

VBoxClient_TEMPLATE = NewVBoxGuestR3Exe
VBoxClient_DEFS += VBOX_X11_CLIPBOARD VBOX_WITH_HGCM
ifdef VBOX_WITH_DBUS
 VBoxClient_DEFS += VBOX_WITH_DBUS
endif
VBoxClient_DEFS.linux += _GNU_SOURCE
ifdef VBOX_WITH_GUEST_KMS_DRIVER
 VBoxClient_DEFS += VBOX_WITH_GUEST_KMS_DRIVER
endif
VBoxClient_SOURCES = \
	main.cpp
VBoxClient_SOURCES += \
  	$(PATH_ROOT)/src/VBox/GuestHost/SharedClipboard/clipboard-helper.cpp \
  	$(PATH_ROOT)/src/VBox/GuestHost/SharedClipboard/x11-clipboard.cpp \
	clipboard.cpp
VBoxClient_LIBPATH = \
	$(VBOX_LIBPATH32_X11)
VBoxClient_LIBS.freebsd = \
	iconv
VBoxClient_LIBS.linux = \
	dl
VBoxClient_LIBS.solaris = \
	dl
VBoxClient_LIBS = \
	X11 \
	Xrandr \
	Xt
#	Xtst
# These are static replacements for gcc-specific parts of libstdc++
VBoxClient_LIBS += \
	supc++ \
	gcc_eh
ifdef VBOX_X11_SEAMLESS_GUEST
 VBoxClient_DEFS += SEAMLESS_GUEST DYNAMIC_RESIZE
 VBoxClient_SOURCES += \
	seamless.cpp \
	seamless-host.cpp \
	seamless-x11.cpp \
	display.cpp \
	hostversion.cpp
 VBoxClient_LIBS += \
	Xext Xmu
endif
ifdef VBOX_WITH_GUEST_PROPS
 VBoxClient_DEFS += VBOX_WITH_GUEST_PROPS
endif
ifdef VBOX_WITH_DRAG_AND_DROP
 VBoxClient_DEFS += \
	VBOX_WITH_DRAG_AND_DROP \
	$(if $(VBOX_WITH_DRAG_AND_DROP_GH),VBOX_WITH_DRAG_AND_DROP_GH,)
 VBoxClient_SOURCES += \
	draganddrop.cpp
endif

ifdef VBOX_X11_SEAMLESS_GUEST
 if defined(VBOX_WITH_TESTCASES) && !defined(VBOX_ONLY_ADDITIONS) && !defined(VBOX_ONLY_SDK)
  if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris)

# Set this in LocalConfig.kmk if you are working on the X11 clipboard service
# to automatically run the unit test at build time.
#       OTHERS += $(tstSeamlessX11-auto_0_OUTDIR)/tstSeamlessX11-auto.run

   PROGRAMS += tstSeamlessX11-auto
   tstSeamlessX11-auto_TEMPLATE = VBOXR3TSTEXE
   tstSeamlessX11-auto_SOURCES = \
           testcase/tstSeamlessX11-auto.cpp \
           seamless-x11.cpp
   tstSeamlessX11-auto_DEFS = TESTCASE
   tstSeamlessX11-auto_LIBS = \
           $(LIB_RUNTIME)

   TESTING  += $(tstSeamlessX11-auto_0_OUTDIR)/tstSeamlessX11-auto
$$(tstSeamlessX11-auto_0_OUTDIR)/tstSeamlessX11-auto.run: \
        $$(tstSeamlessX11-auto_1_STAGE_TARGET)
	export VBOX_LOG_DEST=nofile; $(tstSeamlessX11-auto_1_STAGE_TARGET) quiet
	$(QUIET)$(APPEND) -t "$@" "done"

   #
   # Additional testcase designed to be run manually, which initiates and starts the Linux
   # guest client part of the seamless additions in the host, faking seamless events from
   # the host and writing information about guest events to standard output.
   #
   PROGRAMS += tstSeamlessX11
   tstSeamlessX11_TEMPLATE = VBOXR3TSTEXE
   tstSeamlessX11_SOURCES = \
           testcase/tstSeamlessX11.cpp \
           seamless-host.cpp \
           seamless-x11.cpp
   tstSeamlessX11_LIBPATH = \
           $(VBOX_LIBPATH_X11)
   tstSeamlessX11_LIBS = \
           $(LIB_RUNTIME) \
           Xext \
           Xmu \
           X11
  endif
 endif
endif

include $(FILE_KBUILD_SUB_FOOTER)