VirtualBox

source: vbox/trunk/src/VBox/Additions/linux/Makefile.kmk@ 66017

Last change on this file since 66017 was 66017, checked in by vboxsync, 8 years ago

bugref:4567: Linux kernel driver maintenance: do test builds of kernel modules as test cases; disable r113873 for now due to test box burns.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 17.7 KB
Line 
1# $Id: Makefile.kmk 66017 2017-03-09 16:05:58Z vboxsync $
2## @file
3# Makefile for the linux guest additions base directory.
4#
5
6#
7# Copyright (C) 2006-2016 Oracle Corporation
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
18SUB_DEPTH = ../../../..
19include $(KBUILD_PATH)/subheader.kmk
20
21#
22# Include sub-makefiles.
23#
24include $(PATH_SUB_CURRENT)/sharedfolders/Makefile.kmk
25include $(PATH_SUB_CURRENT)/drm/Makefile.kmk
26ifdef VBOX_WITH_LIGHTDM_GREETER
27 include $(PATH_SUB_CURRENT)/lightdm-greeter/Makefile.kmk
28endif
29
30#
31# Build test for the Guest Additions kernel modules
32#
33
34if 0 # def VBOX_WITH_TESTCASES
35 ifndef VBOX_ONLY_SDK
36 VBOX_LNX_ADD_TEST=$(PATH_TARGET)/tstguest_mod
37 VBOX_LNX_ADD_TEST_TARGET=$(PATH_TARGET)/tstguest_mod.run
38 VBOX_LNX_ADD_SOURCES=$(vboxguest-src_2_INST_TARGETS) $(vboxsf-mod_2_INST_TARGETS) $(vboxvideo_drm-mod_2_INST_TARGETS)
39 TESTING += $(VBOX_LNX_ADD_TEST_TARGET)
40 OTHERS += $(VBOX_LNX_ADD_TEST_TARGET)
41 OTHER_CLEAN += $(VBOX_LNX_ADD_TEST)
42$$(VBOX_LNX_ADD_TEST_TARGET): $$(VBOX_LNX_ADD_SOURCES)
43 $(QUIET)$(call MSG_L1,Doing a test build of the guest kernel modules)
44 $(QUIET)$(ASH) -c "rm -f $@"
45 $(QUIET)$(ASH) -c "mkdir -p $(VBOX_LNX_ADD_TEST) && cp -r $(PATH_STAGE_BIN)/additions/src/* $(VBOX_LNX_ADD_TEST)"
46 $(QUIET)$(ASH) -c "cd $(VBOX_LNX_ADD_TEST) && if ! make > build.log 2>&1; then echo Failed: check file $(VBOX_LNX_ADD_TEST)/build.log && false; fi"
47 $(QUIET)$(APPEND) -t "$@" "done"
48 endif
49endif
50
51
52
53#
54# Globals
55#
56
57# Basic path components
58VBOX_LNX_ADD_PACKAGE_NAME := VBoxGuestAdditions
59VBOX_LNX_ADD_INST_OUT_DIR := $(PATH_TARGET)/Additions/Installer/linux/
60VBOX_LNX_ADD_INST_DBG_DIR := $(VBOX_LNX_ADD_INST_OUT_DIR)debug/
61VBOX_LNX_ADD_INST_STAGE_DIR := $(VBOX_LNX_ADD_INST_OUT_DIR)install/
62
63# Installation paths for binaries and files
64VBOX_LNX_ADD_INST_BIN_DIR := $(VBOX_LNX_ADD_INST_OUT_DIR)bin/
65VBOX_LNX_ADD_INST_SBIN_DIR := $(VBOX_LNX_ADD_INST_OUT_DIR)sbin/
66VBOX_LNX_ADD_INST_LIB_DIR := $(VBOX_LNX_ADD_INST_OUT_DIR)lib/
67VBOX_LNX_ADD_INST_OTHER_DIR := $(VBOX_LNX_ADD_INST_OUT_DIR)other/
68VBOX_LNX_ADD_INST_KMOD_DIR_BASE := $(VBOX_LNX_ADD_INST_OUT_DIR)src/
69VBOX_LNX_ADD_INST_KMOD_DIR := $(VBOX_LNX_ADD_INST_KMOD_DIR_BASE)vboxguest-$(VBOX_VERSION_STRING)/
70VBOX_LNX_ADD_INST_INIT_DIR := $(VBOX_LNX_ADD_INST_OUT_DIR)init/
71
72VBOX_LNX_ADD_ARCH_INST_DIRS := \
73 $(VBOX_LNX_ADD_INST_OUT_DIR) \
74 $(VBOX_LNX_ADD_INST_BIN_DIR) \
75 $(VBOX_LNX_ADD_INST_SBIN_DIR) \
76 $(if $(VBOX_WITH_CROGL),$(VBOX_LNX_ADD_INST_LIB_DIR),) \
77 $(VBOX_LNX_ADD_INST_KMOD_DIR_BASE) \
78 $(VBOX_LNX_ADD_INST_KMOD_DIR) \
79 $(VBOX_LNX_ADD_INST_INIT_DIR)
80
81# Installation paths for debug symbols
82VBOX_LNX_ADD_DBG_BIN_DIR := $(VBOX_LNX_ADD_INST_DBG_DIR)bin/
83VBOX_LNX_ADD_DBG_SBIN_DIR := $(VBOX_LNX_ADD_INST_DBG_DIR)sbin/
84VBOX_LNX_ADD_DBG_LIB_DIR := $(VBOX_LNX_ADD_INST_DBG_DIR)lib/
85VBOX_LNX_ADD_DBG_OTHER_DIR := $(VBOX_LNX_ADD_INST_DBG_DIR)other/
86
87VBOX_LNX_ADD_DBG_DIRS := \
88 $(VBOX_LNX_ADD_DBG_BIN_DIR) \
89 $(VBOX_LNX_ADD_DBG_SBIN_DIR) \
90 $(if $(VBOX_WITH_CROGL),$(VBOX_LNX_ADD_DBG_LIB_DIR),) \
91 $(VBOX_LNX_ADD_DBG_OTHER_DIR)
92
93# Script source directories
94VBOX_PATH_LNX_ADD_INST := $(PATH_SUB_CURRENT)/installer/
95VBOX_REL_LNX_ADD_INST := $(subst $(PATH_ROOT)/src/VBox, ../..,$(VBOX_PATH_LNX_ADD_INST))
96VBOX_PATH_X11_ADD_INST := $(PATH_ROOT)/src/VBox/Additions/x11/Installer/
97VBOX_REL_X11_ADD_INST := $(subst $(PATH_ROOT)/src/VBox, ../..,$(VBOX_PATH_X11_ADD_INST))
98VBOX_PATH_LNX_INST_SRC := $(PATH_ROOT)/src/VBox/Installer/linux/
99VBOX_REL_LNX_INST_SRC := $(subst $(PATH_ROOT)/src/VBox, ../..,$(VBOX_PATH_LNX_INST_SRC))
100VBOX_PATH_LNX_HOST_DRV := $(PATH_ROOT)/src/VBox/HostDrivers/linux/
101VBOX_REL_LNX_HOST_DRV := $(subst $(PATH_ROOT)/src/VBox, ../..,$(VBOX_PATH_LNX_HOST_DRV))
102
103# Unset this to speed up things during makefile hacking.
104VBOX_LNX_ADD_INST_DEP_ON_MAKEFILE := $(MAKEFILE_CURRENT)
105
106
107#
108# Targets
109#
110VBOX_SELINUX_CMPLD := $(PATH_SUB_CURRENT)/selinux-fedora/vbox_x11.pp
111VBOX_LNX_ADD_ARCHIVE.x86 := $(PATH_OUT_BASE)/linux.x86/$(KBUILD_TYPE)/bin/additions/VBoxGuestAdditions-x86.tar.bz2
112VBOX_LNX_ADD_ARCHIVE.amd64 := $(PATH_OUT_BASE)/linux.amd64/$(KBUILD_TYPE)/bin/additions/VBoxGuestAdditions-amd64.tar.bz2
113ifndef VBOX_WITH_COMBINED_LINUX_GUEST_PACKAGE
114 VBOX_LNX_ADD_ARCHIVES := $(PATH_STAGE_BIN)/additions/VBoxGuestAdditions-$(KBUILD_TARGET_ARCH).tar.bz2
115else
116 VBOX_LNX_ADD_ARCHIVES := \
117 $(VBOX_LNX_ADD_ARCHIVE.x86) \
118 $(VBOX_LNX_ADD_ARCHIVE.amd64)
119endif
120BLDDIRS += \
121 $(VBOX_LNX_ADD_ARCH_INST_DIRS) \
122 $(VBOX_LNX_ADD_DBG_DIRS) \
123 $(VBOX_LNX_ADD_INST_STAGE_DIR)
124
125# Use VBOX_WITHOUT_LINUX_GUEST_PACKAGE to skip building the .run installer.
126# This will only take effect if you also use VBOX_WITHOUT_ADDITIONS_ISO.
127PACKING += \
128 $(if-expr !defined(VBOX_WITHOUT_LINUX_GUEST_PACKAGE), $(PATH_STAGE_BIN)/additions/VBoxLinuxAdditions.run,) \
129 $(VBOX_LNX_ADD_ARCHIVES) \
130 $(PATH_STAGE_BIN)/additions/VBoxGuestAdditions-dbg.tar.bz2
131OTHER_CLEAN += \
132 $(PACKING) \
133 $(foreach file, $(VBOX_LNX_ADD_ARCHIVES), $(VBOX_LNX_ADD_INST_STAGE_DIR)$(subst -r$(VBOX_SVN_REV),,$(notdir $(file))))
134
135
136#
137# Files to install
138#
139VBOX_LNX_ADD_STRIP_BIN += \
140 VBoxControl \
141 VBoxClient
142
143VBOX_LNX_ADD_STRIP_SBIN += \
144 VBoxService \
145 $(if $(VBOX_WITH_LIGHTDM_GREETER),vbox-greeter)
146
147ifdef VBOX_WITH_CROGL
148VBOX_LNX_ADD_STRIP_LIB += \
149 VBoxOGLarrayspu.so \
150 VBoxOGLcrutil.so \
151 VBoxOGLerrorspu.so \
152 VBoxOGLfeedbackspu.so \
153 VBoxOGLpackspu.so \
154 VBoxOGLpassthroughspu.so \
155 VBoxOGL.so \
156 VBoxEGL.so
157endif
158
159VBOX_LNX_ADD_STRIP_MOD = \
160 vboxmouse_drv_70.so \
161 vboxmouse_drv_71.so \
162 vboxmouse_drv_13.so \
163 vboxmouse_drv_14.so \
164 vboxmouse_drv_15.so \
165 vboxmouse_drv_16.so \
166 $(addsuffix .so,$(filter-out %_32,$(filter vboxvideo_drv_%,$(DLLS)))) \
167 $(if $(VBOX_WITH_PAM),pam_vbox.so,) \
168 mount.vboxsf
169
170VBOX_LNX_ADD_MOD = \
171 98vboxadd-xclient \
172 x11config.sh
173
174VBOX_LNX_ADD_STRIP_OBJ = \
175 vboxmouse_drv.o \
176 vboxvideo_drv.o
177
178VBOX_LNX_ADD_KMOD_FILES = Makefile build_in_tmp
179VBOX_LNX_ADD_KMOD_DIRS = vboxguest/ vboxsf/ vboxvideo/
180
181VBOX_LNX_ADD_INIT = \
182 vboxadd \
183 vboxadd-service \
184 vboxadd-x11
185
186#
187# All the files that go into the archive
188#
189VBOX_LNX_ADD_INST_FILES := \
190 $(addprefix $(VBOX_LNX_ADD_INST_BIN_DIR),$(VBOX_LNX_ADD_STRIP_BIN)) \
191 $(addprefix $(VBOX_LNX_ADD_INST_BIN_DIR),$(VBOX_LNX_ADD_BIN)) \
192 $(addprefix $(VBOX_LNX_ADD_INST_SBIN_DIR),$(VBOX_LNX_ADD_STRIP_SBIN)) \
193 $(addprefix $(VBOX_LNX_ADD_INST_LIB_DIR),$(VBOX_LNX_ADD_STRIP_LIB)) \
194 $(addprefix $(VBOX_LNX_ADD_INST_OTHER_DIR),$(VBOX_LNX_ADD_STRIP_MOD)) \
195 $(addprefix $(VBOX_LNX_ADD_INST_OTHER_DIR),$(VBOX_LNX_ADD_MOD)) \
196 $(addprefix $(VBOX_LNX_ADD_INST_OTHER_DIR),$(VBOX_LNX_ADD_STRIP_OBJ)) \
197 $(addprefix $(VBOX_LNX_ADD_INST_KMOD_DIR),$(VBOX_LNX_ADD_KMOD_FILES)) \
198 $(addprefix $(VBOX_LNX_ADD_INST_INIT_DIR),$(VBOX_LNX_ADD_INIT))
199
200## @todo figure how to clean these... Or maybe rewrite everything here to somehow use install targets?
201VBOX_LNX_ADD_INST_DIRS := \
202 $(addprefix $(VBOX_LNX_ADD_INST_KMOD_DIR),$(VBOX_LNX_ADD_KMOD_DIRS))
203
204VBOX_LNX_ADD_DBG_FILES := \
205 $(addprefix $(VBOX_LNX_ADD_DBG_BIN_DIR),$(VBOX_LNX_ADD_STRIP_BIN)) \
206 $(addprefix $(VBOX_LNX_ADD_DBG_SBIN_DIR),$(VBOX_LNX_ADD_STRIP_SBIN)) \
207 $(addprefix $(VBOX_LNX_ADD_DBG_LIB_DIR),$(VBOX_LNX_ADD_STRIP_LIB)) \
208 $(addprefix $(VBOX_LNX_ADD_DBG_OTHER_DIR),$(VBOX_LNX_ADD_STRIP_MOD))
209
210ifdef VBOX_WITH_LIGHTDM_GREETER_PACKING
211VBOX_LNX_ADD_INST_FILES += \
212 $(addprefix $(VBOX_LNX_ADD_INST_SBIN_DIR),vbox-greeter)
213endif
214
215# Cleanup of the installer directory files
216OTHER_CLEAN += $(VBOX_LNX_ADD_INST_FILES) $(VBOX_LNX_ADD_DBG_FILES)
217
218# pattern rules for copying the debug info from the VBOX_LNX_ADD_STRIP_* files to the installation directory
219$(addprefix $(VBOX_LNX_ADD_DBG_BIN_DIR),$(VBOX_LNX_ADD_STRIP_BIN)): \
220 $(VBOX_LNX_ADD_DBG_BIN_DIR)% : $(PATH_STAGE_BIN)/additions/% | $$(dir $$@)
221 $(call MSG_TOOL,copydbg,$<,$@)
222 $(QUIET)objcopy --only-keep-debug $< $@
223
224$(addprefix $(VBOX_LNX_ADD_DBG_SBIN_DIR),$(VBOX_LNX_ADD_STRIP_SBIN)): \
225 $(VBOX_LNX_ADD_DBG_SBIN_DIR)% : $(PATH_STAGE_BIN)/additions/% | $$(dir $$@)
226 $(call MSG_TOOL,copydbg,$<,$@)
227 $(QUIET)objcopy --only-keep-debug $< $@
228
229$(addprefix $(VBOX_LNX_ADD_DBG_LIB_DIR),$(VBOX_LNX_ADD_STRIP_LIB)): \
230 $(VBOX_LNX_ADD_DBG_LIB_DIR)% : $(PATH_STAGE_BIN)/additions/% | $$(dir $$@)
231 $(call MSG_TOOL,copydbg,$<,$@)
232 $(QUIET)objcopy --only-keep-debug $< $@
233
234$(addprefix $(VBOX_LNX_ADD_DBG_OTHER_DIR),$(VBOX_LNX_ADD_STRIP_MOD)): \
235 $(VBOX_LNX_ADD_DBG_OTHER_DIR)% : $(PATH_STAGE_BIN)/additions/% | $$(dir $$@)
236 $(call MSG_TOOL,copydbg,$<,$@)
237 $(QUIET)objcopy --only-keep-debug $< $@
238
239# pattern rule for stripping and copying the VBOX_LNX_ADD_STRIP_BIN files to the installation directory
240$(addprefix $(VBOX_LNX_ADD_INST_BIN_DIR),$(VBOX_LNX_ADD_STRIP_BIN)): \
241 $(VBOX_LNX_ADD_INST_BIN_DIR)% : $(PATH_STAGE_BIN)/additions/% \
242 $(VBOX_LNX_ADD_DBG_BIN_DIR)% \
243 | $$(dir $$@)
244 $(call MSG_INST_FILE,$<,$@)
245 $(QUIET)$(INSTALL) -m 0755 $(if $(VBOX_DO_STRIP),-s,) $< $@
246 $(QUIET)objcopy --add-gnu-debuglink=$(subst $(VBOX_LNX_ADD_INST_BIN_DIR),$(VBOX_LNX_ADD_DBG_BIN_DIR),$@) $@
247
248# pattern rule for stripping and copying the VBOX_LNX_ADD_STRIP_SBIN files to the installation directory
249$(addprefix $(VBOX_LNX_ADD_INST_SBIN_DIR),\
250 $(filter-out vbox-greeter,$(VBOX_LNX_ADD_STRIP_SBIN))): \
251 $(VBOX_LNX_ADD_INST_SBIN_DIR)% : $(PATH_STAGE_BIN)/additions/% \
252 $(VBOX_LNX_ADD_DBG_SBIN_DIR)% \
253 | $$(dir $$@)
254 $(call MSG_INST_FILE,$<,$@)
255 $(QUIET)$(INSTALL) -m 0755 $(if $(VBOX_DO_STRIP),-s,) $< $@
256 $(QUIET)objcopy --add-gnu-debuglink=$(subst $(VBOX_LNX_ADD_INST_SBIN_DIR),$(VBOX_LNX_ADD_DBG_SBIN_DIR),$@) $@
257
258# pattern rule for stripping and copying vbox-greeter to the installation directory
259$(addprefix $(VBOX_LNX_ADD_INST_SBIN_DIR),vbox-greeter): \
260 $(VBOX_LNX_ADD_INST_SBIN_DIR)% : $(subst linux.amd64/release,linux.amd64/release/greeter,$(subst linux.x86/release,linux.x86/release/greeter,$(PATH_STAGE_BIN)))/additions/% \
261 | $$(dir $$@)
262 $(call MSG_INST_FILE,$<,$@)
263 $(QUIET)$(INSTALL) -m 0755 $< $@
264
265# pattern rule for stripping and copying the VBOX_LNX_ADD_STRIP_LIB files to the installation directory
266$(addprefix $(VBOX_LNX_ADD_INST_LIB_DIR),$(VBOX_LNX_ADD_STRIP_LIB)): \
267 $(VBOX_LNX_ADD_INST_LIB_DIR)% : $(PATH_STAGE_BIN)/additions/% \
268 $(VBOX_LNX_ADD_DBG_LIB_DIR)% \
269 | $$(dir $$@)
270 $(call MSG_INST_FILE,$<,$@)
271 $(QUIET)$(INSTALL) -m 0755 $(if $(VBOX_DO_STRIP),-s,) $< $@
272 $(QUIET)objcopy --add-gnu-debuglink=$(subst $(VBOX_LNX_ADD_INST_LIB_DIR),$(VBOX_LNX_ADD_DBG_LIB_DIR),$@) $@
273
274# pattern rule for stripping and copying the VBOX_LNX_ADD_STRIP_MOD files to the installation directory
275$(addprefix $(VBOX_LNX_ADD_INST_OTHER_DIR),$(VBOX_LNX_ADD_STRIP_MOD)): \
276 $(VBOX_LNX_ADD_INST_OTHER_DIR)% : $(PATH_STAGE_BIN)/additions/% \
277 $(VBOX_LNX_ADD_DBG_OTHER_DIR)% \
278 | $$(dir $$@)
279 $(call MSG_INST_FILE,$<,$@)
280 $(QUIET)$(INSTALL) -m 0755 $(if $(VBOX_DO_STRIP),-s,) $< $@
281 $(QUIET)objcopy --add-gnu-debuglink=$(subst $(VBOX_LNX_ADD_INST_OTHER_DIR),$(VBOX_LNX_ADD_DBG_OTHER_DIR),$@) $@
282
283# pattern rule for stripping and copying the VBOX_LNX_ADD_STRIP_OBJ files to the installation directory
284$(addprefix $(VBOX_LNX_ADD_INST_OTHER_DIR),$(VBOX_LNX_ADD_STRIP_OBJ)): \
285 $(VBOX_LNX_ADD_INST_OTHER_DIR)% : $(PATH_STAGE_BIN)/additions/% | $$(dir $$@)
286 $(call MSG_INST_FILE,$<,$@)
287ifeq ($(VBOX_DO_STRIP),)
288 $(QUIET)$(INSTALL) -m 0644 $< $@
289else # strip to temp file because of umask.
290 $(QUIET)objcopy --strip-unneeded -R .comment $< [email protected]
291 $(QUIET)$(INSTALL) -m 0644 [email protected] $@
292 $(QUIET)$(RM) -f -- [email protected]
293endif
294
295# pattern rules for copying the VBOX_LNX_ADD_KMOD files to the installation directory
296$(addprefix $(VBOX_LNX_ADD_INST_KMOD_DIR),$(VBOX_LNX_ADD_KMOD_DIRS)): \
297 $(VBOX_LNX_ADD_INST_KMOD_DIR)% : \
298 $(PATH_STAGE_BIN)/additions/src/% \
299 $(wildcard $(PATH_STAGE_BIN)/additions/src/%*) \
300 $(wildcard $(PATH_STAGE_BIN)/additions/src/%*/*) \
301 $(wildcard $(PATH_STAGE_BIN)/additions/src/%*/*/*) \
302 $(wildcard $(PATH_STAGE_BIN)/additions/src/%*/*/*/*) \
303 $(wildcard $(PATH_STAGE_BIN)/additions/src/%*/*/*/*/*) \
304 $(VBOX_VERSION_STAMP) $(VBOX_SVN_REV_HEADER) \
305 | $$(dir $$(patsubst $$(PERCENT)/,$$(PERCENT),$$@))
306 $(call MSG_INST_DIR,$<,$@)
307 $(QUIET)$(RM) -Rf $(filter-out $(VBOX_LNX_ADD_INST_KMOD_DIR),$(wildcard $(VBOX_LNX_ADD_INST_KMOD_DIR_BASE)*/))
308 $(QUIET)$(CP) -RPf -- $< $@
309
310$(addprefix $(VBOX_LNX_ADD_INST_KMOD_DIR),$(VBOX_LNX_ADD_KMOD_FILES)): \
311 $(VBOX_LNX_ADD_INST_KMOD_DIR)% : \
312 $(PATH_STAGE_BIN)/additions/src/% \
313 | $$(dir $$(patsubst $$(PERCENT)/,$$(PERCENT),$$@))
314 $(call MSG_INST_FILE,$<,$@)
315 $(QUIET)$(CP) -RPf -- $< $@
316
317INSTALLS += GuestDrivers-src
318GuestDrivers-src_INST = $(INST_ADDITIONS)src/
319GuestDrivers-src_MODE = a+r,u+w
320GuestDrivers-src_SOURCES = Makefile
321
322
323INSTALLS += lnx_add_inst-exec
324lnx_add_inst-exec_INST = $(VBOX_LNX_ADD_INST_OTHER_DIR)
325lnx_add_inst-exec_INSTTYPE = stage
326lnx_add_inst-exec_EXEC_SOURCES = \
327 $(VBOX_REL_X11_ADD_INST)98vboxadd-xclient \
328 $(VBOX_REL_X11_ADD_INST)x11config.sh \
329 $(VBOX_REL_LNX_INST_SRC)check_module_dependencies.sh
330
331
332INSTALLS += lnx_add_inst-noexec
333lnx_add_inst-noexec_INST = $(VBOX_LNX_ADD_INST_OTHER_DIR)
334lnx_add_inst-noexec_INSTTYPE = stage
335lnx_add_inst-noexec_SOURCES = \
336 $(VBOX_REL_X11_ADD_INST)vboxclient.desktop \
337 $(VBOX_REL_X11_ADD_INST)vboxvideo.ids \
338 $(if $(VBOX_WITH_LIGHTDM_GREETER_PACKING),lightdm-greeter/vbox-greeter.desktop,) \
339 selinux-fedora/vbox_x11.pp \
340 selinux-fedora/vbox_accel.pp
341
342INSTALLS += lnx_add_inst-license
343lnx_add_inst-license_INST = $(VBOX_LNX_ADD_INST_OUT_DIR)
344lnx_add_inst-license_INSTTYPE = stage
345lnx_add_inst-license_SOURCES = \
346 $(VBOX_BRAND_LICENSE_TXT)=>LICENSE
347
348
349#
350# We need our routines.sh and the uninstallation scripts in the staging
351# directory too
352#
353INSTALLS += LnxAdd-scripts
354LnxAdd-scripts_INST = $(VBOX_LNX_ADD_INST_STAGE_DIR)
355LnxAdd-scripts_INSTTYPE = stage
356LnxAdd-scripts_SOURCES = \
357 $(VBOX_REL_LNX_ADD_INST)deffiles
358LnxAdd-scripts_EXEC_SOURCES = \
359 $(VBOX_REL_LNX_INST_SRC)routines.sh
360
361ifdef VBOX_WITH_LIGHTDM_GREETER_PACKING
362 LnxAdd-scripts_EXEC_SOURCES += \
363 $(VBOX_REL_LNX_ADD_INST)module-autologon.sh=>installer/module-autologon
364endif
365
366
367#
368# And the init scripts
369#
370INSTALLS += LnxAdd-init-scripts
371LnxAdd-init-scripts_INST = $(VBOX_LNX_ADD_INST_INIT_DIR)
372LnxAdd-init-scripts_INSTTYPE = stage
373LnxAdd-init-scripts_EXEC_SOURCES = \
374 $(foreach i,$(VBOX_LNX_ADD_INIT), installer/$(i).sh=>$(i))
375
376# this file needs editing before it can be included in the generic installer.
377$(VBOX_LNX_ADD_INST_STAGE_DIR)install.sh: \
378 $(VBOX_PATH_LNX_ADD_INST)install.sh.in \
379 $(VBOX_VERSION_STAMP) | $$(dir $$@)
380 $(RM) -f -- $@
381 $(QUIET)$(SED) \
382 -e "s;_VERSION_;$(VBOX_VERSION_STRING);g" \
383 -e "s;_BUILDTYPE_;$(KBUILD_TYPE);g" \
384 -e "s;_USERNAME_;$(USERNAME);g" \
385 --output $@ \
386 $<
387 $(QUIET)$(CHMOD) 0755 $@
388OTHER_CLEAN += \
389 $(VBOX_LNX_ADD_INST_OUT_DIR)install.sh \
390 $(VBOX_LNX_ADD_INST_STAGE_DIR)install.sh
391
392
393include $(FILE_KBUILD_SUB_FOOTER)
394
395
396# All the files that go into our archive
397VBOX_LNX_ADD_ARCH_FILES = \
398 $(lnx_add_inst-noexec_2_STAGE_TARGETS) \
399 $(lnx_add_inst-exec_2_STAGE_TARGETS) \
400 $(lnx_add_inst-license_2_STAGE_TARGETS) \
401 $(VBOX_LNX_ADD_INST_FILES) \
402 $(VBOX_LNX_ADD_INST_DIRS)
403
404#
405# .tar.bz2 for converting into .run
406#
407$(VBOX_LNX_ADD_ARCHIVE.$(KBUILD_TARGET_ARCH)): \
408 $(VBOX_LNX_ADD_ARCH_FILES) \
409 $(VBOX_LNX_ADD_INST_DEP_ON_MAKEFILE) \
410 $(VBOX_VERSION_STAMP)
411 $(call MSG_L1,Packing $@)
412 $(QUIET)$(RM) -f -- $(wildcard $(dir $@)VBoxGuestAdditions-*r*.tar.bz2)
413 $(QUIET)$(MKDIR) -p $(@D)
414 $(QUIET)$(CHMOD) 0755 $(VBOX_LNX_ADD_ARCH_INST_DIRS)
415ifdef VBOX_USE_PBZIP2
416 $(QUIET)tar --dereference --owner 0 --group 0 -cRf $(patsubst %.bz2,%,$@) \
417 -C $(VBOX_LNX_ADD_INST_OUT_DIR) \
418 LICENSE bin init lib other sbin src \
419 $(if $(filter $(KBUILD_TYPE),debug),debug)
420 $(QUIET)pbzip2 $(patsubst %.bz2,%,$@)
421else
422 $(QUIET)tar --dereference --owner 0 --group 0 --ignore-failed-read -cjRf $@ \
423 -C $(VBOX_LNX_ADD_INST_OUT_DIR) \
424 LICENSE bin init lib other sbin src \
425 $(if $(filter $(KBUILD_TYPE),debug),debug)
426endif
427 $(QUIET)$(CHMOD) 0644 $@
428
429
430#
431# .tar.bz2 containing the debug information
432#
433$(PATH_STAGE_BIN)/additions/VBoxGuestAdditions-dbg.tar.bz2: \
434 $(VBOX_LNX_ADD_DBG_FILES) \
435 $(VBOX_LNX_ADD_INST_DEP_ON_MAKEFILE)
436 $(call MSG_L1,Packing $@)
437 $(QUIET)$(RM) -f -- $@ $(patsubst %.bz2,%,$@)
438 $(QUIET)$(MKDIR) -p $(@D)
439 $(QUIET)$(CHMOD) 0755 $(VBOX_LNX_ADD_DBG_DIRS)
440ifdef VBOX_USE_PBZIP2
441 $(QUIET)tar --dereference --owner 0 --group 0 -cRf $(patsubst %.bz2,%,$@) \
442 -C $(VBOX_LNX_ADD_INST_DBG_DIR) \
443 bin lib sbin
444 $(QUIET)pbzip2 $(patsubst %.bz2,%,$@)
445else
446 $(QUIET)tar --dereference --owner 0 --group 0 --ignore-failed-read -cjRf $@ \
447 -C $(VBOX_LNX_ADD_INST_DBG_DIR) \
448 bin lib sbin
449endif
450 $(QUIET)$(CHMOD) 0644 $@
451
452
453#
454# Build the Linux Guest Additions self extracting installer.
455#
456# Note that $(PATH_SUB_CURRENT) was changed by subfooter.kmk above and
457# any references should be made via variables assigned a know value via := .
458#
459$(PATH_STAGE_BIN)/additions/VBoxLinuxAdditions.run: \
460 $(VBOX_LNX_ADD_ARCHIVES) \
461 $(VBOX_LNX_ADD_INST_STAGE_DIR)install.sh \
462 $$(LnxAdd-scripts_2_STAGE_TARGETS) \
463 $(VBOX_VERSION_STAMP)
464 # Remove any archives left over from previous builds so that they don't
465 # end up in our installer as well.
466 $(QUIET)$(RM) -f $(foreach file, $(wildcard $(VBOX_LNX_ADD_INST_STAGE_DIR)$(VBOX_LNX_ADD_PACKAGE_NAME)-*.tar.bz2), $(file))
467 $(QUIET)$(foreach file, $(VBOX_LNX_ADD_ARCHIVES), \
468 $(CP) -f $(file) $(VBOX_LNX_ADD_INST_STAGE_DIR)$(subst -r$(VBOX_SVN_REV),,$(notdir $(file)))$(NLTAB) )
469 $(QUIET)$(VBOX_MAKESELF) --nocomp $(VBOX_LNX_ADD_INST_STAGE_DIR) $@ \
470 "VirtualBox $(VBOX_VERSION_STRING) Guest Additions for Linux" \
471 /bin/sh ./install.sh "\$$0 1> /dev/null"
472
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