VirtualBox

source: vbox/trunk/src/VBox/Additions/x11/VBoxClient/Makefile.kmk@ 83207

最後變更 在這個檔案從83207是 83207,由 vboxsync 提交於 5 年 前

bugref:9637. Using xinerama includes from our tree instead of the distros includes

  • 屬性 svn:eol-style 設為 native
  • 屬性 svn:keywords 設為 Author Date Id Revision
檔案大小: 4.9 KB
 
1# $Id: Makefile.kmk 83207 2020-03-05 13:27:29Z vboxsync $
2## @file
3# Sub-Makefile for the VirtualBox Guest Addition X11 Client.
4#
5
6#
7# Copyright (C) 2006-2020 Oracle Corporation
8#
9# This file is part of VirtualBox Open Source Edition (OSE), as
10# available from http://www.alldomusa.eu.org. This file is free software;
11# you can redistribute it and/or modify it under the terms of the GNU
12# General Public License (GPL) as published by the Free Software
13# Foundation, in version 2 as it comes in the "COPYING" file of the
14# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16#
17
18SUB_DEPTH = ../../../../..
19include $(KBUILD_PATH)/subheader.kmk
20
21#
22# VBoxClient - clipboard and seamless.
23#
24PROGRAMS += VBoxClient
25
26VBoxClient_TEMPLATE = NewVBoxGuestR3Exe
27VBoxClient_DEFS += VBOX_X11_CLIPBOARD VBOX_WITH_HGCM
28VBoxClient_DEFS += VBOX_BUILD_TARGET=\"$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)\"
29ifdef VBOX_WITH_DBUS
30 VBoxClient_DEFS += VBOX_WITH_DBUS
31endif
32VBoxClient_DEFS.linux += _GNU_SOURCE
33VBoxClient_INCS = $(VBOX_GRAPHICS_INCS)
34VBoxClient_INCS += ../x11include/libxinerama-1.1.4
35VBoxClient_SOURCES = \
36 main.cpp \
37 display-svga.cpp \
38 display-svga-x11.cpp \
39 seamless.cpp \
40 seamless-x11.cpp \
41 display.cpp \
42 hostversion.cpp
43
44VBoxClient_SOURCES.linux = \
45 chk_stubs.c
46VBoxClient_LIBPATH = \
47 $(VBOX_LIBPATH32_X11)
48VBoxClient_LIBS.freebsd = \
49 iconv
50VBoxClient_LIBS.linux = \
51 dl
52VBoxClient_LIBS.netbsd = \
53 crypt
54VBoxClient_LIBS.solaris = \
55 dl
56VBoxClient_LIBS = \
57 X11 Xrandr Xt Xext Xmu
58
59# XXX: -L comes from the template, but not rpath
60VBoxClient_LDFLAGS.netbsd = \
61 -Wl,-rpath /usr/X11R7/lib
62
63ifdef VBOX_WITH_DRAG_AND_DROP
64 ifdef VBOX_DND_WITH_XTEST
65 VBoxClient_DEFS += VBOX_DND_WITH_XTEST
66 VBoxClient_LIBS += \
67 Xtst
68 endif
69endif
70
71# This forces the memcpy references in the static libraries to go to
72# __wrap_memcpy, which we can wrap around memcpy@GLIBC_2.2.5. I do not know
73# how else to do that without recompiling or implementing our own memcpy.
74ifeq ($(KBUILD_TARGET),linux)
75VBoxClient_LDFLAGS.amd64 += \
76 -Wl,--wrap=memcpy
77endif
78
79ifdef VBOX_WITH_GUEST_PROPS
80VBoxClient_DEFS += VBOX_WITH_GUEST_PROPS
81endif
82
83ifdef VBOX_WITH_DRAG_AND_DROP
84VBoxClient_DEFS += \
85 VBOX_WITH_DRAG_AND_DROP \
86 $(if $(VBOX_WITH_DRAG_AND_DROP_GH),VBOX_WITH_DRAG_AND_DROP_GH,)
87VBoxClient_SOURCES += \
88 draganddrop.cpp
89VBoxClient_LIBS += \
90 $(VBOX_LIB_VBGL_R3) \
91 $(PATH_STAGE_LIB)/additions/VBoxDnDGuestR3Lib$(VBOX_SUFF_LIB)
92endif
93
94ifdef VBOX_WITH_SHARED_CLIPBOARD
95 VBoxClient_DEFS += \
96 VBOX_WITH_SHARED_CLIPBOARD \
97 $(if $(VBOX_WITH_SHARED_CLIPBOARD_TRANSFERS),VBOX_WITH_SHARED_CLIPBOARD_TRANSFERS,)
98 VBoxClient_SOURCES += \
99 $(PATH_ROOT)/src/VBox/GuestHost/SharedClipboard/clipboard-common.cpp \
100 $(PATH_ROOT)/src/VBox/GuestHost/SharedClipboard/clipboard-x11.cpp \
101 clipboard.cpp
102 ifdef VBOX_WITH_SHARED_CLIPBOARD_TRANSFERS
103 VBoxClient_DEFS += VBOX_WITH_SHARED_CLIPBOARD_GUEST
104 VBoxClient_SOURCES += \
105 $(PATH_ROOT)/src/VBox/GuestHost/SharedClipboard/clipboard-transfers.cpp \
106 $(PATH_ROOT)/src/VBox/GuestHost/SharedClipboard/ClipboardPath.cpp
107 ifdef VBOX_WITH_SHARED_CLIPBOARD_FUSE
108 VBoxClient_DEFS += VBOX_WITH_SHARED_CLIPBOARD_FUSE
109 # @todo Make this dynamic loading more generic.
110 VBoxClient_SOURCES += \
111 $(PATH_ROOT)/src/VBox/ImageMounter/vboximg-mount/fuse.cpp \
112 clipboard-fuse.cpp
113 # @todo Ditto.
114 VBoxClient_INCS += \
115 $(PATH_ROOT)/src/VBox/ImageMounter/vboximg-mount
116 endif
117 endif
118endif
119
120if defined(VBOX_WITH_TESTCASES) && !defined(VBOX_ONLY_ADDITIONS) && !defined(VBOX_ONLY_SDK)
121 if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris)
122
123# Set this in LocalConfig.kmk if you are working on the X11 clipboard service
124# to automatically run the unit test at build time.
125# OTHERS += $(tstSeamlessX11-auto_0_OUTDIR)/tstSeamlessX11-auto.run
126
127 PROGRAMS += tstSeamlessX11-auto
128 tstSeamlessX11-auto_TEMPLATE = VBOXR3TSTEXE
129 tstSeamlessX11-auto_SOURCES = \
130 testcase/tstSeamlessX11-auto.cpp \
131 seamless-x11.cpp
132 tstSeamlessX11-auto_DEFS = TESTCASE
133 tstSeamlessX11-auto_LIBS = \
134 $(LIB_RUNTIME)
135
136 TESTING += $(tstSeamlessX11-auto_0_OUTDIR)/tstSeamlessX11-auto
137$$(tstSeamlessX11-auto_0_OUTDIR)/tstSeamlessX11-auto.run: \
138 $$(tstSeamlessX11-auto_1_STAGE_TARGET)
139 export VBOX_LOG_DEST=nofile; $(tstSeamlessX11-auto_1_STAGE_TARGET) quiet
140 $(QUIET)$(APPEND) -t "$@" "done"
141
142 #
143 # Additional testcase designed to be run manually, which initiates and starts the Linux
144 # guest client part of the seamless additions in the host, faking seamless events from
145 # the host and writing information about guest events to standard output.
146 #
147 PROGRAMS += tstSeamlessX11
148 tstSeamlessX11_TEMPLATE = VBOXR3TSTEXE
149 tstSeamlessX11_SOURCES = \
150 testcase/tstSeamlessX11.cpp \
151 seamless.cpp \
152 seamless-x11.cpp
153 tstSeamlessX11_LIBPATH = \
154 $(VBOX_LIBPATH_X11)
155 tstSeamlessX11_LIBS = \
156 $(LIB_RUNTIME) \
157 Xext \
158 Xmu \
159 X11
160 endif
161endif
162
163include $(FILE_KBUILD_SUB_FOOTER)
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette