VirtualBox

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

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

Additions/linux: slight correction to r64101 - we want to remove all archives that might have been left by previous builds, possibly with different parameters

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 18.0 KB
Line 
1# $Id: Makefile.kmk 31143 2010-07-27 15:17:16Z vboxsync $
2## @file
3# Makefile for the linux guest additions base directory.
4#
5
6#
7# Copyright (C) 2006-2010 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
26
27#
28# Globals
29#
30
31# Basic path components
32VBOX_LNX_ADD_PACKAGE_NAME := VBoxGuestAdditions
33VBOX_LNX_ADD_INST_OUT_DIR := $(PATH_TARGET)/Additions/Installer/linux/
34VBOX_LNX_ADD_INST_DBG_DIR := $(VBOX_LNX_ADD_INST_OUT_DIR)debug/
35VBOX_LNX_ADD_INST_STAGE_DIR := $(VBOX_LNX_ADD_INST_OUT_DIR)install/
36
37# Installation paths for binaries and files
38VBOX_LNX_ADD_INST_BIN_DIR := $(VBOX_LNX_ADD_INST_OUT_DIR)bin/
39VBOX_LNX_ADD_INST_SBIN_DIR := $(VBOX_LNX_ADD_INST_OUT_DIR)sbin/
40VBOX_LNX_ADD_INST_LIB_DIR := $(VBOX_LNX_ADD_INST_OUT_DIR)lib/
41VBOX_LNX_ADD_INST_SHARE_DIR := $(VBOX_LNX_ADD_INST_OUT_DIR)share/
42VBOX_LNX_ADD_INST_MOD_DIR := $(VBOX_LNX_ADD_INST_OUT_DIR)lib/$(VBOX_LNX_ADD_PACKAGE_NAME)/
43VBOX_LNX_ADD_INST_KMOD_DIR := $(VBOX_LNX_ADD_INST_OUT_DIR)src/
44VBOX_LNX_ADD_INST_INIT_DIR := $(VBOX_LNX_ADD_INST_OUT_DIR)init/
45
46# Installation paths for debug symbols
47VBOX_LNX_ADD_DBG_BIN_DIR := $(VBOX_LNX_ADD_INST_DBG_DIR)bin/
48VBOX_LNX_ADD_DBG_SBIN_DIR := $(VBOX_LNX_ADD_INST_DBG_DIR)sbin/
49VBOX_LNX_ADD_DBG_LIB_DIR := $(VBOX_LNX_ADD_INST_DBG_DIR)lib/
50VBOX_LNX_ADD_DBG_MOD_DIR := $(VBOX_LNX_ADD_INST_DBG_DIR)lib/$(VBOX_LNX_ADD_PACKAGE_NAME)/
51
52# Script source directories
53VBOX_PATH_LNX_ADD_INST := $(PATH_SUB_CURRENT)/installer/
54VBOX_REL_LNX_ADD_INST := $(subst $(PATH_ROOT)/src/VBox, ../..,$(VBOX_PATH_LNX_ADD_INST))
55VBOX_PATH_X11_ADD_INST := $(PATH_ROOT)/src/VBox/Additions/x11/Installer/
56VBOX_REL_X11_ADD_INST := $(subst $(PATH_ROOT)/src/VBox, ../..,$(VBOX_PATH_X11_ADD_INST))
57VBOX_PATH_LNX_INST_SRC := $(PATH_ROOT)/src/VBox/Installer/linux/
58VBOX_REL_LNX_INST_SRC := $(subst $(PATH_ROOT)/src/VBox, ../..,$(VBOX_PATH_LNX_INST_SRC))
59
60# Unset this to speed up things during makefile hacking.
61VBOX_LNX_ADD_INST_DEP_ON_MAKEFILE := $(MAKEFILE_CURRENT)
62
63
64#
65# Targets
66#
67ifndef VBOX_OSE
68 # OSE only contains the source code for this
69 VBOX_SELINUX_CMPLD := $(PATH_SUB_CURRENT)/selinux-fedora/vbox_x11.pp
70 VBOX_LNX_ADD_ARCHIVE.x86 := $(PATH_OUT_BASE)/linux.x86/$(KBUILD_TYPE)/bin/additions/VBoxGuestAdditions-x86-r$(VBOX_SVN_REV).tar.bz2
71 VBOX_LNX_ADD_ARCHIVE.amd64 := $(PATH_OUT_BASE)/linux.amd64/$(KBUILD_TYPE)/bin/additions/VBoxGuestAdditions-amd64-r$(VBOX_SVN_REV).tar.bz2
72 ifndef VBOX_WITH_COMBINED_LINUX_GUEST_PACKAGE
73 VBOX_LNX_ADD_ARCHIVES := $(PATH_BIN)/additions/VBoxGuestAdditions-$(KBUILD_TARGET_ARCH)-r$(VBOX_SVN_REV).tar.bz2
74 else
75 VBOX_LNX_ADD_ARCHIVES := \
76 $(VBOX_LNX_ADD_ARCHIVE.x86) \
77 $(VBOX_LNX_ADD_ARCHIVE.amd64)
78 endif
79 BLDDIRS += \
80 $(VBOX_LNX_ADD_INST_OUT_DIR) \
81 $(VBOX_LNX_ADD_INST_BIN_DIR) \
82 $(VBOX_LNX_ADD_INST_SBIN_DIR) \
83 $(VBOX_LNX_ADD_INST_LIB_DIR) \
84 $(VBOX_LNX_ADD_INST_MOD_DIR) \
85 $(VBOX_LNX_ADD_INST_KMOD_DIR) \
86 $(VBOX_LNX_ADD_INST_INIT_DIR) \
87 $(VBOX_LNX_ADD_INST_DBG_DIR) \
88 $(VBOX_LNX_ADD_DBG_BIN_DIR) \
89 $(VBOX_LNX_ADD_DBG_SBIN_DIR) \
90 $(VBOX_LNX_ADD_DBG_LIB_DIR) \
91 $(VBOX_LNX_ADD_DBG_MOD_DIR) \
92 $(VBOX_LNX_ADD_INST_STAGE_DIR)
93 # Use VBOX_WITHOUT_LINUX_GUEST_PACKAGE to skip building the .run installer.
94 # This will only take effect if you also use VBOX_WITHOUT_ADDITIONS_ISO.
95 PACKING += \
96 $(if-expr !defined(VBOX_WITHOUT_LINUX_GUEST_PACKAGE), $(PATH_BIN)/additions/VBoxLinuxAdditions.run,) \
97 $(VBOX_LNX_ADD_ARCHIVES) \
98 $(PATH_BIN)/additions/VBoxGuestAdditions-dbg.tar.bz2
99 OTHER_CLEAN += \
100 $(PACKING) \
101 $(foreach file, $(VBOX_LNX_ADD_ARCHIVES), $(VBOX_LNX_ADD_INST_STAGE_DIR)$(subst -r$(VBOX_SVN_REV),,$(notdir $(file))))
102endif # !VBOX_OSE
103
104
105#
106# Files to install
107#
108VBOX_ADD_STRIP_BIN += \
109 VBoxControl
110
111VBOX_ADD_STRIP_BIN.linux += \
112 VBoxClient
113
114VBOX_ADD_BIN.linux += \
115 VBoxClient-all
116
117VBOX_ADD_STRIP_SBIN += \
118 VBoxService
119
120VBOX_ADD_STRIP_LIB += \
121 VBoxOGLarrayspu.so \
122 VBoxOGLcrutil.so \
123 VBoxOGLerrorspu.so \
124 VBoxOGLfeedbackspu.so \
125 VBoxOGLpackspu.so \
126 VBoxOGLpassthroughspu.so \
127 VBoxOGL.so
128
129VBOX_ADD_STRIP_MOD.linux = \
130 vboxmouse_drv_70.so \
131 vboxmouse_drv_71.so \
132 vboxmouse_drv_13.so \
133 vboxmouse_drv_14.so \
134 vboxmouse_drv_15.so \
135 vboxmouse_drv_16.so \
136 vboxmouse_drv_17.so \
137 vboxmouse_drv_18.so \
138 vboxvideo_drv_70.so \
139 vboxvideo_drv_71.so \
140 vboxvideo_drv_13.so \
141 vboxvideo_drv_14.so \
142 vboxvideo_drv_15.so \
143 vboxvideo_drv_16.so \
144 vboxvideo_drv_17.so \
145 vboxvideo_drv_18.so \
146 pam_vbox.so \
147 mount.vboxsf
148
149VBOX_ADD_MOD.linux = \
150 98vboxadd-xclient \
151 x11config-new.pl
152
153VBOX_ADD_STRIP_OBJ.linux = \
154 vboxmouse_drv.o \
155 vboxvideo_drv.o
156
157VBOX_ADD_KMOD = \
158 vboxguest
159
160VBOX_ADD_KMOD.linux = \
161 vboxsf \
162 vboxvideo
163
164VBOX_ADD_INIT.linux = \
165 vboxadd \
166 vboxadd-service \
167 vboxadd-x11
168
169VBOX_LNX_ADD_STRIP_BIN = $(VBOX_ADD_STRIP_BIN) $(VBOX_ADD_STRIP_BIN.linux)
170VBOX_LNX_ADD_BIN = $(VBOX_ADD_BIN) $(VBOX_ADD_BIN.linux)
171VBOX_LNX_ADD_STRIP_SBIN= $(VBOX_ADD_STRIP_SBIN) $(VBOX_ADD_STRIP_SBIN.linux)
172VBOX_LNX_ADD_STRIP_LIB = $(VBOX_ADD_STRIP_LIB) $(VBOX_ADD_STRIP_LIB.linux)
173VBOX_LNX_ADD_STRIP_MOD = $(VBOX_ADD_STRIP_MOD) $(VBOX_ADD_STRIP_MOD.linux)
174VBOX_LNX_ADD_MOD = $(VBOX_ADD_MOD) $(VBOX_ADD_MOD.linux)
175VBOX_LNX_ADD_STRIP_OBJ = $(VBOX_ADD_STRIP_OBJ) $(VBOX_ADD_STRIP_OBJ.linux)
176VBOX_LNX_ADD_KMOD = $(VBOX_ADD_KMOD) $(VBOX_ADD_KMOD.linux)
177VBOX_LNX_ADD_INIT = $(VBOX_ADD_INIT) $(VBOX_ADD_INIT.linux)
178
179VBOX_LNX_ADD_KMOD_VERSIONED := $(addsuffix -$(VBOX_VERSION_STRING),$(VBOX_LNX_ADD_KMOD))
180
181#
182# All the files that go into the archive
183#
184VBOX_LNX_ADD_INST_FILES := \
185 $(addprefix $(VBOX_LNX_ADD_INST_BIN_DIR),$(VBOX_LNX_ADD_STRIP_BIN)) \
186 $(addprefix $(VBOX_LNX_ADD_INST_BIN_DIR),$(VBOX_LNX_ADD_BIN)) \
187 $(addprefix $(VBOX_LNX_ADD_INST_SBIN_DIR),$(VBOX_LNX_ADD_STRIP_SBIN)) \
188 $(addprefix $(VBOX_LNX_ADD_INST_LIB_DIR),$(VBOX_LNX_ADD_STRIP_LIB)) \
189 $(addprefix $(VBOX_LNX_ADD_INST_MOD_DIR),$(VBOX_LNX_ADD_STRIP_MOD)) \
190 $(addprefix $(VBOX_LNX_ADD_INST_MOD_DIR),$(VBOX_LNX_ADD_MOD)) \
191 $(addprefix $(VBOX_LNX_ADD_INST_MOD_DIR),$(VBOX_LNX_ADD_STRIP_OBJ)) \
192 $(addprefix $(VBOX_LNX_ADD_INST_KMOD_DIR),$(VBOX_LNX_ADD_KMOD_VERSIONED)) \
193 $(addprefix $(VBOX_LNX_ADD_INST_INIT_DIR),$(VBOX_LNX_ADD_INIT)) \
194 $(addprefix $(VBOX_LNX_ADD_INST_MOD_DIR),$(VBOX_LNX_ADD_INIT))
195
196VBOX_LNX_ADD_DBG_FILES := \
197 $(addprefix $(VBOX_LNX_ADD_DBG_BIN_DIR),$(VBOX_LNX_ADD_STRIP_BIN)) \
198 $(addprefix $(VBOX_LNX_ADD_DBG_SBIN_DIR),$(VBOX_LNX_ADD_STRIP_SBIN)) \
199 $(addprefix $(VBOX_LNX_ADD_DBG_LIB_DIR),$(VBOX_LNX_ADD_STRIP_LIB)) \
200 $(addprefix $(VBOX_LNX_ADD_DBG_MOD_DIR),$(VBOX_LNX_ADD_STRIP_MOD))
201
202# Cleanup of the the installer directory files
203OTHER_CLEAN += $(VBOX_LNX_ADD_INST_FILES) $(VBOX_LNX_ADD_DEBUG_FILES)
204
205# pattern rules for copying the debug info from the VBOX_LNX_ADD_STRIP_* files to the installation directory
206$(addprefix $(VBOX_LNX_ADD_DBG_BIN_DIR),$(VBOX_LNX_ADD_STRIP_BIN)): \
207 $(VBOX_LNX_ADD_DBG_BIN_DIR)% : $(PATH_BIN)/additions/% | $$(dir $$@)
208 $(call MSG_TOOL,copydbg,$<,$@)
209 $(QUIET)objcopy --only-keep-debug $< $@
210
211$(addprefix $(VBOX_LNX_ADD_DBG_SBIN_DIR),$(VBOX_LNX_ADD_STRIP_SBIN)): \
212 $(VBOX_LNX_ADD_DBG_SBIN_DIR)% : $(PATH_BIN)/additions/% | $$(dir $$@)
213 $(call MSG_TOOL,copydbg,$<,$@)
214 $(QUIET)objcopy --only-keep-debug $< $@
215
216$(addprefix $(VBOX_LNX_ADD_DBG_LIB_DIR),$(VBOX_LNX_ADD_STRIP_LIB)): \
217 $(VBOX_LNX_ADD_DBG_LIB_DIR)% : $(PATH_BIN)/additions/% | $$(dir $$@)
218 $(call MSG_TOOL,copydbg,$<,$@)
219 $(QUIET)objcopy --only-keep-debug $< $@
220
221$(addprefix $(VBOX_LNX_ADD_DBG_MOD_DIR),$(VBOX_LNX_ADD_STRIP_MOD)): \
222 $(VBOX_LNX_ADD_DBG_MOD_DIR)% : $(PATH_BIN)/additions/% | $$(dir $$@)
223 $(call MSG_TOOL,copydbg,$<,$@)
224 $(QUIET)objcopy --only-keep-debug $< $@
225
226# pattern rule for stripping and copying the VBOX_LNX_ADD_STRIP_BIN files to the installation directory
227$(addprefix $(VBOX_LNX_ADD_INST_BIN_DIR),$(VBOX_LNX_ADD_STRIP_BIN)): \
228 $(VBOX_LNX_ADD_INST_BIN_DIR)% : $(PATH_BIN)/additions/% \
229 $(VBOX_LNX_ADD_DBG_BIN_DIR)% \
230 | $$(dir $$@)
231 $(call MSG_INST_FILE,$<,$@)
232 $(QUIET)$(INSTALL) -m 0755 $(if $(VBOX_DO_STRIP),-s,) $< $@
233 $(QUIET)objcopy --add-gnu-debuglink=$@ $@
234
235# pattern rule for stripping and copying the VBOX_LNX_ADD_STRIP_SBIN files to the installation directory
236$(addprefix $(VBOX_LNX_ADD_INST_SBIN_DIR),$(VBOX_LNX_ADD_STRIP_SBIN)): \
237 $(VBOX_LNX_ADD_INST_SBIN_DIR)% : $(PATH_BIN)/additions/% \
238 $(VBOX_LNX_ADD_DBG_SBIN_DIR)% \
239 | $$(dir $$@)
240 $(call MSG_INST_FILE,$<,$@)
241 $(QUIET)$(INSTALL) -m 0755 $(if $(VBOX_DO_STRIP),-s,) $< $@
242 $(QUIET)objcopy --add-gnu-debuglink=$@ $@
243
244# pattern rule for stripping and copying the VBOX_LNX_ADD_STRIP_LIB files to the installation directory
245$(addprefix $(VBOX_LNX_ADD_INST_LIB_DIR),$(VBOX_LNX_ADD_STRIP_LIB)): \
246 $(VBOX_LNX_ADD_INST_LIB_DIR)% : $(PATH_BIN)/additions/% \
247 $(VBOX_LNX_ADD_DBG_LIB_DIR)% \
248 | $$(dir $$@)
249 $(call MSG_INST_FILE,$<,$@)
250 $(QUIET)$(INSTALL) -m 0755 $(if $(VBOX_DO_STRIP),-s,) $< $@
251 $(QUIET)objcopy --add-gnu-debuglink=$@ $@
252
253# pattern rule for stripping and copying the VBOX_LNX_ADD_STRIP_MOD files to the installation directory
254$(addprefix $(VBOX_LNX_ADD_INST_MOD_DIR),$(VBOX_LNX_ADD_STRIP_MOD)): \
255 $(VBOX_LNX_ADD_INST_MOD_DIR)% : $(PATH_BIN)/additions/% \
256 $(VBOX_LNX_ADD_DBG_MOD_DIR)% \
257 | $$(dir $$@)
258 $(call MSG_INST_FILE,$<,$@)
259 $(QUIET)$(INSTALL) -m 0755 $(if $(VBOX_DO_STRIP),-s,) $< $@
260 $(QUIET)objcopy --add-gnu-debuglink=$@ $@
261
262# pattern rule for stripping and copying the VBOX_LNX_ADD_STRIP_OBJ files to the installation directory
263$(addprefix $(VBOX_LNX_ADD_INST_MOD_DIR),$(VBOX_LNX_ADD_STRIP_OBJ)): \
264 $(VBOX_LNX_ADD_INST_MOD_DIR)% : $(PATH_BIN)/additions/% | $$(dir $$@)
265 $(call MSG_INST_FILE,$<,$@)
266ifeq ($(VBOX_DO_STRIP),)
267 $(QUIET)$(INSTALL) -m 0644 $< $@
268else # strip to temp file because of umask.
269 $(QUIET)objcopy --strip-unneeded -R .comment $< [email protected]
270 $(QUIET)$(INSTALL) -m 0644 [email protected] $@
271 $(QUIET)$(RM) -f -- [email protected]
272endif
273
274# pattern rule for copying the VBOX_LNX_ADD_KMOD files to the installation directory
275$(addprefix $(VBOX_LNX_ADD_INST_KMOD_DIR),$(VBOX_LNX_ADD_KMOD_VERSIONED)): \
276 $(VBOX_LNX_ADD_INST_KMOD_DIR)%-$(VBOX_VERSION_STRING) : $(PATH_BIN)/additions/src/% | $(VBOX_LNX_ADD_INST_KMOD_DIR)
277 $(call MSG_INST_DIR,$<,$@)
278# Remove target directories first, otherwise the behaviour of cp will not be
279# what we want if it already exists. See the cp manual page for more details.
280 $(QUIET)$(RM) -Rf $@
281 $(QUIET)cp -af $< $@
282
283# pattern rule for copying the VBOX_LNX_ADD_INIT files to the installation directory
284$(addprefix $(VBOX_LNX_ADD_INST_INIT_DIR),$(VBOX_LNX_ADD_INIT)): \
285 $(VBOX_LNX_ADD_INST_INIT_DIR)% : $(PATH_BIN)/additions/% | $$(dir $$@)
286 $(call MSG_INST_FILE,$<,$@)
287# Remove target directories first, otherwise the behaviour of cp will not be
288# what we want if it already exists. See the cp manual page for more details.
289 $(QUIET)$(RM) -Rf $@
290 $(QUIET)cp -af $< $@
291
292# pattern rule for copying the VBOX_LNX_ADD_INIT files to the module directory
293$(addprefix $(VBOX_LNX_ADD_INST_MOD_DIR),$(VBOX_LNX_ADD_INIT)): \
294 $(VBOX_LNX_ADD_INST_MOD_DIR)% : $(PATH_BIN)/additions/% | $$(dir $$@)
295 $(call MSG_INST_FILE,$<,$@)
296# Remove target directories first, otherwise the behaviour of cp will not be
297# what we want if it already exists. See the cp manual page for more details.
298 $(QUIET)$(RM) -Rf $@
299 $(QUIET)cp -af $< $@
300
301
302INSTALLS += GuestDrivers-src
303GuestDrivers-src_INST = bin/additions/src/
304GuestDrivers-src_MODE = a+r,u+w
305GuestDrivers-src_SOURCES = Makefile
306
307
308ifndef VBOX_OSE
309 INSTALLS += lnx_add_inst-exec
310 lnx_add_inst-exec_INST = $(subst $(PATH_TARGET),obj,$(VBOX_LNX_ADD_INST_MOD_DIR))
311 lnx_add_inst-exec_MODE = a+rx,u+w
312 lnx_add_inst-exec_SOURCES = \
313 $(VBOX_REL_X11_ADD_INST)98vboxadd-xclient \
314 $(VBOX_REL_X11_ADD_INST)x11config-new.pl
315
316
317 INSTALLS += lnx_add_inst-noexec
318 lnx_add_inst-noexec_INST = $(subst $(PATH_TARGET),obj,$(VBOX_LNX_ADD_INST_SHARE_DIR)$(VBOX_LNX_ADD_PACKAGE_NAME))/
319 lnx_add_inst-noexec_MODE = a+r,u+w
320 lnx_add_inst-noexec_SOURCES = \
321 $(VBOX_REL_X11_ADD_INST)vboxclient.desktop \
322 $(VBOX_REL_X11_ADD_INST)vboxvideo.ids \
323 $(VBOX_REL_X11_ADD_INST)50-vboxmouse.conf \
324 $(VBOX_REL_LNX_ADD_INST)70-xorg-vboxmouse.rules \
325 $(VBOX_REL_LNX_ADD_INST)90-vboxguest.fdi \
326 selinux-fedora/vbox_x11.pp
327
328
329 INSTALLS += AutoRun-sh
330 AutoRun-sh_INST = bin/additions/
331 AutoRun-sh_MODE = a+rx,u+w
332 AutoRun-sh_SOURCES = $(VBOX_REL_LNX_ADD_INST)autorun.sh
333
334
335 #
336 # Install the sources of our (sanity) test kernel module
337 #
338 INSTALLS += LnxAddTest-src
339 LnxAddTest-src_INST = $(subst $(PATH_TARGET),obj,$(VBOX_LNX_ADD_INST_SHARE_DIR)$(VBOX_LNX_ADD_PACKAGE_NAME))/test/
340 LnxAddTest-src_MODE = a+r,u+w
341 LnxAddTest-src_SOURCES = \
342 $(VBOX_REL_LNX_ADD_INST)Makefile.test=>Makefile \
343 ../../HostDrivers/linux/build_in_tmp \
344 $(VBOX_REL_LNX_ADD_INST)test.c
345
346
347 #
348 # Install the sources of our (sanity) test kernel rendering (DRM) module
349 #
350 INSTALLS += LnxAddDRM-src
351 LnxAddDRM-src_INST = $(subst $(PATH_TARGET),obj,$(VBOX_LNX_ADD_INST_SHARE_DIR)$(VBOX_LNX_ADD_PACKAGE_NAME))/test_drm/
352 LnxAddDRM-src_MODE = a+r,u+w
353 LnxAddDRM-src_SOURCES = \
354 $(VBOX_REL_LNX_ADD_INST)Makefile.include.header \
355 $(VBOX_REL_LNX_ADD_INST)Makefile.include.footer \
356 $(VBOX_REL_LNX_ADD_INST)Makefile.test.drm=>Makefile \
357 ../../HostDrivers/linux/build_in_tmp \
358 $(VBOX_REL_LNX_ADD_INST)test_drm.c
359
360
361 #
362 # We need our routines.sh and the uninstallation scripts in the staging
363 # directory too
364 #
365 INSTALLS += LnxAdd-scripts
366 LnxAdd-scripts_INST = $(subst $(PATH_TARGET),obj,$(VBOX_LNX_ADD_INST_STAGE_DIR))
367 LnxAdd-scripts_MODE = a+rx,u+w
368 LnxAdd-scripts_SOURCES = \
369 $(VBOX_REL_LNX_INST_SRC)routines.sh \
370 $(VBOX_REL_LNX_ADD_INST)vboxadd.sh=>vboxadd \
371 $(VBOX_REL_LNX_ADD_INST)vboxadd-service.sh=>vboxadd-service \
372 $(VBOX_REL_LNX_ADD_INST)vboxadd-x11.sh=>vboxadd-x11 \
373 $(VBOX_REL_LNX_ADD_INST)deffiles
374
375
376 #
377 # VBoxClient-all
378 #
379 INSTALLS += LnxAdd-Nostrip-Bin
380 LnxAdd-Nostrip-Bin_INST = $(subst $(PATH_TARGET),obj,$(VBOX_LNX_ADD_INST_BIN_DIR))
381 LnxAdd-Nostrip-Bin_MODE = a+rx,u+w
382 LnxAdd-Nostrip-Bin_SOURCES = \
383 $(VBOX_REL_X11_ADD_INST)98vboxadd-xclient=>VBoxClient-all
384
385
386 #
387 # And the init scripts
388 #
389 INSTALLS += LnxAdd-init-scripts
390 LnxAdd-init-scripts_INST = bin/additions
391 LnxAdd-init-scripts_MODE = a+rx,u+w
392 LnxAdd-init-scripts_SOURCES = \
393 $(foreach i,$(VBOX_LNX_ADD_INIT), installer/$(i).sh=>$(i))
394endif # ! VBOX_OSE
395
396
397# this file needs editing before it can be included in the generic installer.
398$(VBOX_LNX_ADD_INST_STAGE_DIR)install.sh: \
399 $(VBOX_PATH_LNX_INST_SRC)run-inst.sh | $$(dir $$@)
400 $(QUIET)$(SED) \
401 -e "s;_VERSION_;$(VBOX_VERSION_STRING);g" \
402 -e "s;_PACKAGE_NAME_;VirtualBox Guest Additions;g" \
403 -e "s;_PACKAGE_;VBoxGuestAdditions;g" \
404 -e "s;_VERSION_;$(VBOX_VERSION_STRING);g" \
405 -e "s;_BUILD_;$(shell date);g" \
406 -e "s;_OSE_;$(VBOX_OSE);g" \
407 -e "s;_BUILDTYPE_;$(KBUILD_TYPE);g" \
408 -e "s;_ARCH_;$(KBUILD_TARGET_ARCH);g" \
409 -e "s;_UNINSTALL_SCRIPTS_;vboxadd-x11 vboxadd-timesync vboxadd-service vboxadd;g" \
410 --output $(VBOX_LNX_ADD_INST_OUT_DIR)install.sh \
411 $<
412 $(QUIET)$(INSTALL) -m 0755 $(VBOX_LNX_ADD_INST_OUT_DIR)install.sh $@
413 $(QUIET)$(RM) $(VBOX_LNX_ADD_INST_OUT_DIR)install.sh
414OTHERS_CLEAN += \
415 $(VBOX_LNX_ADD_INST_OUT_DIR)install.sh \
416 $(VBOX_LNX_ADD_INST_STAGE_DIR)install.sh
417
418
419include $(KBUILD_PATH)/subfooter.kmk
420
421
422# All the files that go into our archive
423VBOX_LNX_ADD_ARCH_FILES = \
424 $(INSTARGET_lnx_add_inst-noexec) \
425 $(INSTARGET_lnx_add_inst-exec) \
426 $(INSTARGET_LnxAddTest-src) \
427 $(INSTARGET_LnxAddDRM-src) \
428 $(VBOX_LNX_ADD_INST_FILES)
429
430#
431# .tar.bz2 for converting into .run
432#
433$(VBOX_LNX_ADD_ARCHIVE.$(KBUILD_TARGET_ARCH)): \
434 $(VBOX_LNX_ADD_ARCH_FILES) \
435 $(VBOX_LNX_ADD_INST_DEP_ON_MAKEFILE) \
436 $(VBOX_VERSION_STAMP)
437 $(call MSG_L1,Packing $@)
438 $(QUIET)$(RM) -f -- $@ $(patsubst %.bz2,%,$@)
439 $(QUIET)$(MKDIR) -p $(@D)
440ifdef VBOX_USE_PBZIP2
441 $(QUIET)tar --owner 0 --group 0 -cRf $(patsubst %.bz2,%,$@) \
442 -C $(VBOX_LNX_ADD_INST_OUT_DIR) \
443 bin init lib sbin share src \
444 $(if $(filter $(KBUILD_TYPE),debug),debug)
445 $(QUIET)pbzip2 $(patsubst %.bz2,%,$@)
446else
447 $(QUIET)tar --owner 0 --group 0 --ignore-failed-read -cjRf $@ \
448 -C $(VBOX_LNX_ADD_INST_OUT_DIR) \
449 bin init lib sbin share src \
450 $(if $(filter $(KBUILD_TYPE),debug),debug)
451endif
452 $(QUIET)$(CHMOD) 0644 $@
453
454
455#
456# .tar.bz2 containing the debug information
457#
458$(PATH_BIN)/additions/VBoxGuestAdditions-dbg.tar.bz2: \
459 $(VBOX_LNX_ADD_DBG_FILES) \
460 $(VBOX_LNX_ADD_INST_DEP_ON_MAKEFILE)
461 $(call MSG_L1,Packing $@)
462 $(QUIET)$(RM) -f -- $@ $(patsubst %.bz2,%,$@)
463 $(QUIET)$(MKDIR) -p $(@D)
464ifdef VBOX_USE_PBZIP2
465 $(QUIET)tar --owner 0 --group 0 -cRf $(patsubst %.bz2,%,$@) \
466 -C $(VBOX_LNX_ADD_INST_DBG_DIR) \
467 bin lib sbin
468 $(QUIET)pbzip2 $(patsubst %.bz2,%,$@)
469else
470 $(QUIET)tar --owner 0 --group 0 --ignore-failed-read -cjRf $@ \
471 -C $(VBOX_LNX_ADD_INST_DBG_DIR) \
472 bin lib sbin
473endif
474 $(QUIET)$(CHMOD) 0644 $@
475
476
477#
478# Build the Linux Guest Additions self extracting installer.
479#
480# Note that $(PATH_SUB_CURRENT) was changed by subfooter.kmk above and
481# any references should be made via variables assigned a know value via := .
482#
483$(PATH_BIN)/additions/VBoxLinuxAdditions.run: \
484 $(VBOX_LNX_ADD_ARCHIVES) \
485 $(VBOX_LNX_ADD_INST_STAGE_DIR)install.sh \
486 $$(INSTARGET_LnxAdd-scripts) \
487 $(VBOX_VERSION_STAMP)
488 # Remove any archives left over from previous builds so that they don't
489 # end up in our installer as well.
490 $(QUIET)$(RM) -f $(foreach file, $(wildcard $(VBOX_LNX_ADD_INST_STAGE_DIR)$(VBOX_LNX_ADD_PACKAGE_NAME)-*.tar.bz2), $(file))
491 $(QUIET)$(foreach file, $(VBOX_LNX_ADD_ARCHIVES), \
492 $(CP) -f $(file) $(VBOX_LNX_ADD_INST_STAGE_DIR)$(subst -r$(VBOX_SVN_REV),,$(notdir $(file)))$(NLTAB) )
493 $(QUIET)$(VBOX_MAKESELF) --nocomp $(VBOX_LNX_ADD_INST_STAGE_DIR) $@ \
494 "VirtualBox $(VBOX_VERSION_STRING) Guest Additions for Linux" \
495 /bin/sh ./install.sh "\$$0 1> /dev/null"
496
Note: See TracBrowser for help on using the repository browser.

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