VirtualBox

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

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

Copyright year updates by scm.

  • 屬性 svn:eol-style 設為 native
  • 屬性 svn:keywords 設為 Author Date Id Revision
檔案大小: 4.9 KB
 
1# $Id: Makefile.kmk 82968 2020-02-04 10:35:17Z 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_SOURCES = \
35 main.cpp \
36 display-svga.cpp \
37 display-svga-x11.cpp \
38 seamless.cpp \
39 seamless-x11.cpp \
40 display.cpp \
41 hostversion.cpp
42
43VBoxClient_SOURCES.linux = \
44 chk_stubs.c
45VBoxClient_LIBPATH = \
46 $(VBOX_LIBPATH32_X11)
47VBoxClient_LIBS.freebsd = \
48 iconv
49VBoxClient_LIBS.linux = \
50 dl
51VBoxClient_LIBS.netbsd = \
52 crypt
53VBoxClient_LIBS.solaris = \
54 dl
55VBoxClient_LIBS = \
56 X11 Xrandr Xt Xext Xmu
57
58# XXX: -L comes from the template, but not rpath
59VBoxClient_LDFLAGS.netbsd = \
60 -Wl,-rpath /usr/X11R7/lib
61
62ifdef VBOX_WITH_DRAG_AND_DROP
63 ifdef VBOX_DND_WITH_XTEST
64 VBoxClient_DEFS += VBOX_DND_WITH_XTEST
65 VBoxClient_LIBS += \
66 Xtst
67 endif
68endif
69
70# This forces the memcpy references in the static libraries to go to
71# __wrap_memcpy, which we can wrap around memcpy@GLIBC_2.2.5. I do not know
72# how else to do that without recompiling or implementing our own memcpy.
73ifeq ($(KBUILD_TARGET),linux)
74VBoxClient_LDFLAGS.amd64 += \
75 -Wl,--wrap=memcpy
76endif
77
78ifdef VBOX_WITH_GUEST_PROPS
79VBoxClient_DEFS += VBOX_WITH_GUEST_PROPS
80endif
81
82ifdef VBOX_WITH_DRAG_AND_DROP
83VBoxClient_DEFS += \
84 VBOX_WITH_DRAG_AND_DROP \
85 $(if $(VBOX_WITH_DRAG_AND_DROP_GH),VBOX_WITH_DRAG_AND_DROP_GH,)
86VBoxClient_SOURCES += \
87 draganddrop.cpp
88VBoxClient_LIBS += \
89 $(VBOX_LIB_VBGL_R3) \
90 $(PATH_STAGE_LIB)/additions/VBoxDnDGuestR3Lib$(VBOX_SUFF_LIB)
91endif
92
93ifdef VBOX_WITH_SHARED_CLIPBOARD
94 VBoxClient_DEFS += \
95 VBOX_WITH_SHARED_CLIPBOARD \
96 $(if $(VBOX_WITH_SHARED_CLIPBOARD_TRANSFERS),VBOX_WITH_SHARED_CLIPBOARD_TRANSFERS,)
97 VBoxClient_SOURCES += \
98 $(PATH_ROOT)/src/VBox/GuestHost/SharedClipboard/clipboard-common.cpp \
99 $(PATH_ROOT)/src/VBox/GuestHost/SharedClipboard/clipboard-x11.cpp \
100 clipboard.cpp
101 ifdef VBOX_WITH_SHARED_CLIPBOARD_TRANSFERS
102 VBoxClient_DEFS += VBOX_WITH_SHARED_CLIPBOARD_GUEST
103 VBoxClient_SOURCES += \
104 $(PATH_ROOT)/src/VBox/GuestHost/SharedClipboard/clipboard-transfers.cpp \
105 $(PATH_ROOT)/src/VBox/GuestHost/SharedClipboard/ClipboardPath.cpp
106 ifdef VBOX_WITH_SHARED_CLIPBOARD_FUSE
107 VBoxClient_DEFS += VBOX_WITH_SHARED_CLIPBOARD_FUSE
108 # @todo Make this dynamic loading more generic.
109 VBoxClient_SOURCES += \
110 $(PATH_ROOT)/src/VBox/ImageMounter/vboximg-mount/fuse.cpp \
111 clipboard-fuse.cpp
112 # @todo Ditto.
113 VBoxClient_INCS += \
114 $(PATH_ROOT)/src/VBox/ImageMounter/vboximg-mount
115 endif
116 endif
117endif
118
119if defined(VBOX_WITH_TESTCASES) && !defined(VBOX_ONLY_ADDITIONS) && !defined(VBOX_ONLY_SDK)
120 if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris)
121
122# Set this in LocalConfig.kmk if you are working on the X11 clipboard service
123# to automatically run the unit test at build time.
124# OTHERS += $(tstSeamlessX11-auto_0_OUTDIR)/tstSeamlessX11-auto.run
125
126 PROGRAMS += tstSeamlessX11-auto
127 tstSeamlessX11-auto_TEMPLATE = VBOXR3TSTEXE
128 tstSeamlessX11-auto_SOURCES = \
129 testcase/tstSeamlessX11-auto.cpp \
130 seamless-x11.cpp
131 tstSeamlessX11-auto_DEFS = TESTCASE
132 tstSeamlessX11-auto_LIBS = \
133 $(LIB_RUNTIME)
134
135 TESTING += $(tstSeamlessX11-auto_0_OUTDIR)/tstSeamlessX11-auto
136$$(tstSeamlessX11-auto_0_OUTDIR)/tstSeamlessX11-auto.run: \
137 $$(tstSeamlessX11-auto_1_STAGE_TARGET)
138 export VBOX_LOG_DEST=nofile; $(tstSeamlessX11-auto_1_STAGE_TARGET) quiet
139 $(QUIET)$(APPEND) -t "$@" "done"
140
141 #
142 # Additional testcase designed to be run manually, which initiates and starts the Linux
143 # guest client part of the seamless additions in the host, faking seamless events from
144 # the host and writing information about guest events to standard output.
145 #
146 PROGRAMS += tstSeamlessX11
147 tstSeamlessX11_TEMPLATE = VBOXR3TSTEXE
148 tstSeamlessX11_SOURCES = \
149 testcase/tstSeamlessX11.cpp \
150 seamless.cpp \
151 seamless-x11.cpp
152 tstSeamlessX11_LIBPATH = \
153 $(VBOX_LIBPATH_X11)
154 tstSeamlessX11_LIBS = \
155 $(LIB_RUNTIME) \
156 Xext \
157 Xmu \
158 X11
159 endif
160endif
161
162include $(FILE_KBUILD_SUB_FOOTER)
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

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