VirtualBox

source: vbox/trunk/src/VBox/Additions/x11/vboxvideo/Makefile.kmk@ 23347

Last change on this file since 23347 was 23347, checked in by vboxsync, 15 years ago

Additions/x11/vboxvideo: only build DRI bits if VBOX_OPENGL is defined (c.f. patch by Bernhard Froehlich on vbox-dev)

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 12.9 KB
Line 
1# $Id: Makefile.kmk 23347 2009-09-25 18:42:36Z vboxsync $
2## @file
3# Sub-Makefile for the VBox Linux Additions X.org graphics driver.
4#
5
6#
7# Copyright (C) 2006-2007 Sun Microsystems, Inc.
8#
9# This file is part of VirtualBox Open Source Edition (OSE), as
10# available from http://www.virtualbox.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# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
18# Clara, CA 95054 USA or visit http://www.sun.com if you need
19# additional information or have any questions.
20#
21
22SUB_DEPTH = ../../../../..
23include $(KBUILD_PATH)/subheader.kmk
24
25#
26# vboxvideo_drv
27#
28if1of ($(KBUILD_TARGET), linux)
29 SYSMODS += vboxvideo_drv
30 vboxvideo_drv_TEMPLATE = VBOXGUESTR3XF86MOD
31 vboxvideo_drv_DEFS.linux = linux
32 vboxvideo_drv_DEFS.x86 = __i386__
33 vboxvideo_drv_DEFS = \
34 _POSIX_C_SOURCE=199309L _POSIX_SOURCE _XOPEN_SOURCE \
35 _BSD_SOURCE _SVID_SOURCE _GNU_SOURCE SHAPE XINPUT XKB LBX XAPPGROUP \
36 XCSECURITY TOGCUP XF86BIGFONT DPMSExtension PIXPRIV PANORAMIX RENDER \
37 GCCUSESGAS AVOID_GLYPHBLT PIXPRIV SINGLEDEPTH XFreeXDGA XvExtension \
38 XFree86LOADER XFree86Server XF86VIDMODE XvMCExtension SMART_SCHEDULE \
39 BUILDDEBUG X_BYTE_ORDER=X_LITTLE_ENDIAN DNDEBUG FUNCPROTO=15 NARROWPROTO \
40 IN_MODULE XFree86Module
41 vboxvideo_drv_CFLAGS.linux := \
42 -Wno-conversion -Wno-unused-parameter $(VBOX_GCC_Wno-variadic-macros)
43 ARGB_CURSORS=1
44 ifdef ARGB_CURSORS
45 vboxvideo_drv_INCS = \
46 $(VBOX_PATH_X11_XFREE_4_3)/include \
47 $(VBOX_PATH_X11_XFREE_4_3)/include/X11 \
48 $(VBOX_PATH_X11_XFREE_4_3)/include/X11/extensions \
49 $(VBOX_PATH_X11_XFREE_4_3)/include/fonts \
50 $(VBOX_PATH_X11_XFREE_4_3)/programs/Xserver/afb \
51 $(VBOX_PATH_X11_XFREE_4_3)/programs/Xserver/include \
52 $(VBOX_PATH_X11_XFREE_4_3)/programs/Xserver/fb \
53 $(VBOX_PATH_X11_XFREE_4_3)/programs/Xserver/hw/xfree86 \
54 $(VBOX_PATH_X11_XFREE_4_3)/programs/Xserver/hw/xfree86/common \
55 $(VBOX_PATH_X11_XFREE_4_3)/programs/Xserver/hw/xfree86/ddc \
56 $(VBOX_PATH_X11_XFREE_4_3)/programs/Xserver/hw/xfree86/int10 \
57 $(VBOX_PATH_X11_XFREE_4_3)/programs/Xserver/hw/xfree86/i2c \
58 $(VBOX_PATH_X11_XFREE_4_3)/programs/Xserver/hw/xfree86/os-support \
59 $(VBOX_PATH_X11_XFREE_4_3)/programs/Xserver/hw/xfree86/vbe \
60 $(VBOX_PATH_X11_XFREE_4_3)/programs/Xserver/hw/xfree86/os-support/bus \
61 $(VBOX_PATH_X11_XFREE_4_3)/programs/Xserver/hw/xfree86/rac \
62 $(VBOX_PATH_X11_XFREE_4_3)/programs/Xserver/hw/xfree86/ramdac \
63 $(VBOX_PATH_X11_XFREE_4_3)/programs/Xserver/hw/xfree86/shadowfb \
64 $(VBOX_PATH_X11_XFREE_4_3)/programs/Xserver/hw/xfree86/vgahw \
65 $(VBOX_PATH_X11_XFREE_4_3)/programs/Xserver/hw/xfree86/xf1bpp \
66 $(VBOX_PATH_X11_XFREE_4_3)/programs/Xserver/hw/xfree86/xf24_32bpp \
67 $(VBOX_PATH_X11_XFREE_4_3)/programs/Xserver/hw/xfree86/xf4bpp \
68 $(VBOX_PATH_X11_XFREE_4_3)/programs/Xserver/mfb \
69 $(VBOX_PATH_X11_XFREE_4_3)/programs/Xserver/mi \
70 $(VBOX_PATH_X11_XFREE_4_3)/programs/Xserver/miext/shadow \
71 $(VBOX_PATH_X11_XFREE_4_3)/programs/Xserver/render \
72 $(VBOX_PATH_X11_XFREE_4_3)/programs/Xserver/Xext
73 else
74 vboxvideo_drv_INCS = \
75 $(VBOX_PATH_X11_XFREE_4_2)/exports/include/X11 \
76 $(VBOX_PATH_X11_XFREE_4_2)/include \
77 $(VBOX_PATH_X11_XFREE_4_2)/include/extensions \
78 $(VBOX_PATH_X11_XFREE_4_2)/include/fonts \
79 $(VBOX_PATH_X11_XFREE_4_2)/programs/Xserver/afb \
80 $(VBOX_PATH_X11_XFREE_4_2)/programs/Xserver/include \
81 $(VBOX_PATH_X11_XFREE_4_2)/programs/Xserver/fb \
82 $(VBOX_PATH_X11_XFREE_4_2)/programs/Xserver/hw/xfree86/common \
83 $(VBOX_PATH_X11_XFREE_4_2)/programs/Xserver/hw/xfree86/ddc \
84 $(VBOX_PATH_X11_XFREE_4_2)/programs/Xserver/hw/xfree86/int10 \
85 $(VBOX_PATH_X11_XFREE_4_2)/programs/Xserver/hw/xfree86/i2c \
86 $(VBOX_PATH_X11_XFREE_4_2)/programs/Xserver/hw/xfree86/os-support \
87 $(VBOX_PATH_X11_XFREE_4_2)/programs/Xserver/hw/xfree86/os-support/bus \
88 $(VBOX_PATH_X11_XFREE_4_2)/programs/Xserver/hw/xfree86/os-support/vbe \
89 $(VBOX_PATH_X11_XFREE_4_2)/programs/Xserver/hw/xfree86/rac \
90 $(VBOX_PATH_X11_XFREE_4_2)/programs/Xserver/hw/xfree86/ramdac \
91 $(VBOX_PATH_X11_XFREE_4_2)/programs/Xserver/hw/xfree86/shadowfb \
92 $(VBOX_PATH_X11_XFREE_4_2)/programs/Xserver/hw/xfree86/vgahw \
93 $(VBOX_PATH_X11_XFREE_4_2)/programs/Xserver/hw/xfree86/xf1bpp \
94 $(VBOX_PATH_X11_XFREE_4_2)/programs/Xserver/hw/xfree86/xf24_32bpp \
95 $(VBOX_PATH_X11_XFREE_4_2)/programs/Xserver/hw/xfree86/xf4bpp \
96 $(VBOX_PATH_X11_XFREE_4_2)/programs/Xserver/mfb \
97 $(VBOX_PATH_X11_XFREE_4_2)/programs/Xserver/mi \
98 $(VBOX_PATH_X11_XFREE_4_2)/programs/Xserver/miext/shadow \
99 $(VBOX_PATH_X11_XFREE_4_2)/programs/Xserver/render \
100 $(VBOX_PATH_X11_XFREE_4_2)/programs/Xserver/Xext
101 endif
102 vboxvideo_drv_SOURCES = \
103 vboxvideo_68.c \
104 vboxutils_68.c
105endif # target linux
106
107
108#
109# vboxvideo_drv_70
110#
111# Remark: The other X.org drivers below are derived from this one. So, to make
112# that as simple as possible we do ifeq/if1of test here and extends the
113# base keywords instead of using .solaris or .linux.
114# Also it is *important* to use := and not = when deriving a properity.
115#
116DLLS += vboxvideo_drv_70
117vboxvideo_drv_70_TEMPLATE = VBOXGUESTR3XORGMOD
118if1of ($(KBUILD_TARGET), linux)
119 vboxvideo_drv_70_CFLAGS += \
120 -Wno-conversion -Wno-unused-parameter $(VBOX_GCC_Wno-variadic-macros) # template?
121endif
122vboxvideo_drv_70_DEFS := \
123 XFree86Server IN_MODULE XFree86Module XFree86LOADER XORG_7X RENDER=1
124ifeq ($(KBUILD_TARGET),solaris) # don't use .solaris or anything here.
125 vboxvideo_drv_70_DEFS += _XPG6 __EXTENSIONS__
126endif
127vboxvideo_drv_70_INCS = \
128 $(VBOX_PATH_X11_XORG_7_0) \
129 $(VBOX_PATH_X11_XORG_7_0)/X11 \
130 $(VBOX_PATH_X11_XORG_7_0)/xorg
131vboxvideo_drv_70_SOURCES = \
132 vboxvideo_70.c \
133 vboxutils.c
134
135
136#
137# vboxvideo_drv_71
138#
139DLLS += vboxvideo_drv_71
140vboxvideo_drv_71_TEMPLATE = VBOXGUESTR3XORGMOD
141vboxvideo_drv_71_CFLAGS := $(vboxvideo_drv_70_CFLAGS)
142vboxvideo_drv_71_DEFS := $(vboxvideo_drv_70_DEFS)
143vboxvideo_drv_71_INCS = \
144 $(VBOX_PATH_X11_XORG_7_1) \
145 $(VBOX_PATH_X11_XORG_7_1)/X11 \
146 $(VBOX_PATH_X11_XORG_7_1)/xorg
147vboxvideo_drv_71_SOURCES = \
148 vboxvideo_70.c \
149 vboxutils.c
150
151
152#
153# vboxvideo_drv_13
154#
155DLLS += vboxvideo_drv_13
156vboxvideo_drv_13_TEMPLATE = VBOXGUESTR3XORGMOD
157vboxvideo_drv_13_CFLAGS := $(vboxvideo_drv_70_CFLAGS)
158vboxvideo_drv_13_DEFS := $(vboxvideo_drv_70_DEFS)
159vboxvideo_drv_13_INCS = \
160 $(VBOX_PATH_X11_XORG_1_3) \
161 $(VBOX_PATH_X11_XORG_1_3)/X11 \
162 $(VBOX_PATH_X11_XORG_1_3)/xorg \
163 $(VBOX_PATH_X11_ROOT)/glproto-1.4.10 \
164 $(VBOX_PATH_X11_ROOT)/libdrm-2.4.13 \
165 $(VBOX_PATH_X11_ROOT)/xf86driproto-2.1.0
166vboxvideo_drv_13_SOURCES = \
167 vboxvideo_13.c \
168 vboxutils.c
169
170
171#
172# vboxvideo_drv_14
173#
174# This uses the same code (vboxvideo_13.c) as 1.3, but is built
175# for 1.4 as well in case there should be any relevant header changes.
176#
177DLLS += vboxvideo_drv_14
178vboxvideo_drv_14_TEMPLATE = VBOXGUESTR3XORGMOD
179vboxvideo_drv_14_CFLAGS := $(vboxvideo_drv_70_CFLAGS)
180vboxvideo_drv_14_DEFS := $(vboxvideo_drv_70_DEFS)
181vboxvideo_drv_14_INCS = \
182 $(VBOX_PATH_X11_XORG_1_4) \
183 $(VBOX_PATH_X11_XORG_1_4)/X11 \
184 $(VBOX_PATH_X11_XORG_1_4)/xorg \
185 $(VBOX_PATH_X11_ROOT)/glproto-1.4.10 \
186 $(VBOX_PATH_X11_ROOT)/libdrm-2.4.13 \
187 $(VBOX_PATH_X11_ROOT)/xf86driproto-2.1.0
188vboxvideo_drv_14_SOURCES = \
189 vboxvideo_13.c \
190 vboxutils.c
191
192
193#
194# vboxvideo_drv_15
195#
196DLLS += vboxvideo_drv_15
197vboxvideo_drv_15_TEMPLATE = VBOXGUESTR3XORGMOD
198vboxvideo_drv_15_CFLAGS := $(vboxvideo_drv_70_CFLAGS)
199vboxvideo_drv_15_DEFS := $(vboxvideo_drv_70_DEFS) NO_ANSIC PCIACCESS \
200 VBOX_NO_LOW_COLOUR $(if $(VBOX_OPENGL) VBOX_DRI,)
201vboxvideo_drv_15_INCS = \
202 $(VBOX_PATH_X11_XORG_1_5) \
203 $(VBOX_PATH_X11_XORG_1_5)/X11 \
204 $(VBOX_PATH_X11_ROOT)/glproto-1.4.10 \
205 $(VBOX_PATH_X11_ROOT)/libdrm-2.4.13 \
206 $(VBOX_PATH_X11_ROOT)/xf86driproto-2.1.0 \
207 $(VBOX_PATH_X11_ROOT)/xorg-server-1.5.3
208vboxvideo_drv_15_SOURCES = \
209 vboxvideo_13.c \
210 vboxutils.c \
211 $(if $(VBOX_OPENGL) vboxvideo_dri.c,)
212
213
214#
215# vboxvideo_drv_16
216#
217DLLS += vboxvideo_drv_16
218vboxvideo_drv_16_TEMPLATE = VBOXGUESTR3XORGMOD
219vboxvideo_drv_16_CFLAGS := $(vboxvideo_drv_70_CFLAGS)
220vboxvideo_drv_16_DEFS := $(vboxvideo_drv_15_DEFS)
221vboxvideo_drv_16_INCS = \
222 $(VBOX_PATH_X11_XORG_1_6) \
223 $(VBOX_PATH_X11_XORG_1_6)/X11 \
224 $(VBOX_PATH_X11_ROOT)/glproto-1.4.10 \
225 $(VBOX_PATH_X11_ROOT)/libdrm-2.4.13 \
226 $(VBOX_PATH_X11_ROOT)/xf86driproto-2.1.0 \
227 $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0 \
228 $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local
229vboxvideo_drv_16_SOURCES := $(vboxvideo_drv_15_SOURCES)
230
231
232#
233# vboxvideo_drv_17
234#
235DLLS += vboxvideo_drv_17
236vboxvideo_drv_17_TEMPLATE = VBOXGUESTR3XORGMOD
237vboxvideo_drv_17_CFLAGS := $(vboxvideo_drv_70_CFLAGS)
238vboxvideo_drv_17_DEFS := $(vboxvideo_drv_15_DEFS)
239## @todo replace $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local
240vboxvideo_drv_17_INCS = \
241 $(VBOX_PATH_X11_ROOT)/fontsproto-2.1.0 \
242 $(VBOX_PATH_X11_ROOT)/glproto-1.4.10 \
243 $(VBOX_PATH_X11_ROOT)/inputproto-1.9.99.902 \
244 $(VBOX_PATH_X11_ROOT)/libdrm-2.4.13 \
245 $(VBOX_PATH_X11_ROOT)/libpciaccess-0.10.8 \
246 $(VBOX_PATH_X11_ROOT)/pixman-0.16.0 \
247 $(VBOX_PATH_X11_ROOT)/randrproto-1.3.0 \
248 $(VBOX_PATH_X11_ROOT)/renderproto-0.11 \
249 $(VBOX_PATH_X11_ROOT)/xextproto-7.1.1 \
250 $(VBOX_PATH_X11_ROOT)/xf86driproto-2.1.0 \
251 $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.99-20090831 \
252 $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local \
253 $(VBOX_PATH_X11_ROOT)/xproto-7.0.15
254vboxvideo_drv_17_SOURCES := $(vboxvideo_drv_15_SOURCES)
255
256
257# Check the undefined symbols in the X.Org modules against lists of allowed
258# symbols. Not very elegant, but it will catch problems early.
259ifdef VBOX_WITH_TESTCASES
260# ifndef VBOX_ONLY_ADDITIONS
261 if1of ($(KBUILD_TARGET),linux solaris)
262 ifeq ($(KBUILD_HOST_ARCH),$(KBUILD_TARGET_ARCH))
263 ifndef VBOX_ONLY_SDK
264 OUR_PATH_VBOXVIDEO=$(PATH_ROOT)/src/VBox/Additions/x11/vboxvideo
265
266 ifeq ($(KBUILD_TARGET),linux)
267 TESTING += $(PATH_vboxvideo_drv)/tstvboxvideo68.run
268 OTHERS += $(PATH_vboxvideo_drv)/tstvboxvideo68.run
269$$(PATH_vboxvideo_drv)/tstvboxvideo68.run: $$(INSTARGET_vboxvideo_drv)
270 $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_TARGET) \
271 $(INSTARGET_vboxvideo_drv) $(OUR_PATH_VBOXVIDEO)/undefined_68 --static
272 $(QUIET)$(APPEND) -t "$@" "done"
273 endif
274
275 TESTING += $(PATH_vboxvideo_drv_70)/tstvboxvideo70.run
276 OTHERS += $(PATH_vboxvideo_drv_70)/tstvboxvideo70.run
277$$(PATH_vboxvideo_drv_70)/tstvboxvideo70.run: $$(INSTARGET_vboxvideo_drv_70)
278 $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_TARGET) \
279 $(INSTARGET_vboxvideo_drv_70) $(OUR_PATH_VBOXVIDEO)/undefined_70
280 $(QUIET)$(APPEND) -t "$@" "done"
281
282 TESTING += $(PATH_vboxvideo_drv_71)/tstvboxvideo71.run
283 OTHERS += $(PATH_vboxvideo_drv_71)/tstvboxvideo71.run
284$$(PATH_vboxvideo_drv_71)/tstvboxvideo71.run: $$(INSTARGET_vboxvideo_drv_71)
285 $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_TARGET) \
286 $(INSTARGET_vboxvideo_drv_71) $(OUR_PATH_VBOXVIDEO)/undefined_70
287 $(QUIET)$(APPEND) -t "$@" "done"
288
289 TESTING += $(PATH_vboxvideo_drv_13)/tstvboxvideo13.run
290 OTHERS += $(PATH_vboxvideo_drv_13)/tstvboxvideo13.run
291$$(PATH_vboxvideo_drv_13)/tstvboxvideo13.run: $$(INSTARGET_vboxvideo_drv_13)
292 $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_TARGET) \
293 $(INSTARGET_vboxvideo_drv_13) $(OUR_PATH_VBOXVIDEO)/undefined_13
294 $(QUIET)$(APPEND) -t "$@" "done"
295
296 TESTING += $(PATH_vboxvideo_drv_14)/tstvboxvideo14.run
297 OTHERS += $(PATH_vboxvideo_drv_14)/tstvboxvideo14.run
298$$(PATH_vboxvideo_drv_14)/tstvboxvideo14.run: $$(INSTARGET_vboxvideo_drv_14)
299 $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_TARGET) \
300 $(INSTARGET_vboxvideo_drv_14) $(OUR_PATH_VBOXVIDEO)/undefined_13
301 $(QUIET)$(APPEND) -t "$@" "done"
302
303 TESTING += $(PATH_vboxvideo_drv_15)/tstvboxvideo15.run
304 OTHERS += $(PATH_vboxvideo_drv_15)/tstvboxvideo15.run
305$$(PATH_vboxvideo_drv_15)/tstvboxvideo15.run: $$(INSTARGET_vboxvideo_drv_15)
306 $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_TARGET) \
307 $(INSTARGET_vboxvideo_drv_15) $(OUR_PATH_VBOXVIDEO)/undefined_13
308 $(QUIET)$(APPEND) -t "$@" "done"
309
310 TESTING += $(PATH_vboxvideo_drv_16)/tstvboxvideo16.run
311 OTHERS += $(PATH_vboxvideo_drv_16)/tstvboxvideo16.run
312$$(PATH_vboxvideo_drv_16)/tstvboxvideo16.run: $$(INSTARGET_vboxvideo_drv_16)
313 $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_TARGET) \
314 $(INSTARGET_vboxvideo_drv_16) $(OUR_PATH_VBOXVIDEO)/undefined_13
315 $(QUIET)$(APPEND) -t "$@" "done"
316
317 TESTING += $(PATH_vboxvideo_drv_17)/tstvboxvideo17.run
318 OTHERS += $(PATH_vboxvideo_drv_17)/tstvboxvideo17.run
319$$(PATH_vboxvideo_drv_17)/tstvboxvideo17.run: $$(INSTARGET_vboxvideo_drv_17)
320 $(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_TARGET) \
321 $(INSTARGET_vboxvideo_drv_17) $(OUR_PATH_VBOXVIDEO)/undefined_13
322 $(QUIET)$(APPEND) -t "$@" "done"
323
324 endif # ! VBOX_ONLY_SDK
325 endif # eq ($(KBUILD_HOST_ARCH),$(KBUILD_TARGET_ARCH))
326 endif # eq ($(KBUILD_TARGET),linux)
327# endif # ! VBOX_ONLY_ADDITIONS
328endif # VBOX_WITH_TESTCASES
329
330include $(KBUILD_PATH)/subfooter.kmk
Note: See TracBrowser for help on using the repository browser.

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