VirtualBox

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

Last change on this file since 94521 was 94160, checked in by vboxsync, 2 years ago

Additions: Windows: Use the same approach as with the host driver for .cat files, i.e. create 2 copies, one for Windows versions before 10, and one for 10 and later (which in UEFI Secure Boot mode modified the trusted root list, requiring Attestation Signing). The NSIS installer will deliver the appropriate file.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 14.2 KB
Line 
1# $Id: Makefile.kmk 94160 2022-03-10 19:29:09Z vboxsync $
2## @file
3# Top-level makefile for the VirtualBox Guest Additions.
4#
5
6#
7# Copyright (C) 2006-2022 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# Globals
23#
24VBOX_PATH_ADDITIONS_SRC := $(PATH_SUB_CURRENT)
25
26#
27# Cross building of the additions is generally done by remote building
28# by means of smbfs, cifs, VBOX_ONLY_ADDITIONS=1 and setting KBUILD_TARGET
29# and KBUILD_TARGET_ARCH to the desired target and architecture.
30#
31# Limited support for cross building the windows additions using wine
32# is provided. There are a couple of issues with the approach (lack of
33# signing, no VC++ 8 support, ++) that makes it unsuitable for releases.
34#
35#
36# Note! VBOX_WITH_ADDITIONS is checked for by our parent makefile.
37#
38# Note! VBOX_WITH_X11_ADDITIONS is set in Config.kmk
39#
40# Note! The additions build box will set the VBOX_WITH_ADDITIONS_ISO.win.x86
41# variables before invoking us from the root makefile.
42#
43# ==> All we have to worry about is what to do on the target we're on.
44#
45VBOX_WITH_ADDITIONS_ISO.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH) = 1
46
47# Include sub-makefiles.
48include $(PATH_SUB_CURRENT)/common/Makefile.kmk
49
50ifdef VBOX_WITH_X11_ADDITIONS
51 include $(PATH_SUB_CURRENT)/x11/Makefile.kmk
52endif
53
54ifeq ($(KBUILD_TARGET),freebsd)
55 include $(PATH_SUB_CURRENT)/freebsd/Makefile.kmk
56endif
57ifeq ($(KBUILD_TARGET),linux)
58 include $(PATH_SUB_CURRENT)/linux/Makefile.kmk
59endif
60ifeq ($(KBUILD_TARGET),os2)
61 include $(PATH_SUB_CURRENT)/os2/Makefile.kmk
62endif
63ifeq ($(KBUILD_TARGET),solaris)
64 include $(PATH_SUB_CURRENT)/solaris/Makefile.kmk
65endif
66ifeq ($(KBUILD_TARGET),win)
67 ifdef VBOX_WITH_MESA3D
68 include $(PATH_SUB_CURRENT)/3D/Makefile.kmk
69 endif
70 include $(PATH_SUB_CURRENT)/WINNT/Makefile.kmk
71endif
72ifeq ($(KBUILD_TARGET),darwin)
73 include $(PATH_SUB_CURRENT)/darwin/Makefile.kmk
74endif
75ifeq ($(KBUILD_TARGET),haiku)
76 include $(PATH_SUB_CURRENT)/haiku/Makefile.kmk
77endif
78
79ifeq ($(KBUILD_TARGET),linux)
80
81 INSTALLS += LnxAddIso-scripts
82 LnxAddIso-scripts_INST = $(INST_ADDITIONS)
83 LnxAddIso-scripts_MODE = a+rx,u+w
84 LnxAddIso-scripts_SOURCES = \
85 ../Installer/linux/runasroot.sh \
86 linux/installer/autorun.sh
87
88endif # KBUILD_TARGET == linux
89ifeq ($(KBUILD_TARGET),win)
90 #
91 # Inf2Cat requires all the files referenced in the .inf file
92 # to be present in the directory, so we have to do this from here,
93 # since VBoxGuest.sys is being built from the common sources.
94 #
95 INSTALLS += VBoxGuest-inf
96 VBoxGuest-inf_INST = $(INST_ADDITIONS)
97 VBoxGuest-inf_MODE = a+r,u+w
98 VBoxGuest-inf_SOURCES = \
99 $(PATH_TARGET)/VBoxGuestCat.dir/VBoxGuest.inf
100 VBoxGuest-inf_CLEAN = $(VBoxGuest-inf_SOURCES)
101 VBoxGuest-inf_BLDDIRS = $(PATH_TARGET)/VBoxGuestCat.dir
102
103 $(PATH_TARGET)/VBoxGuestCat.dir/VBoxGuest.inf: $(PATH_SUB_CURRENT)/common/VBoxGuest/win/VBoxGuest.inf $(MAKEFILE_CURRENT) | $$(dir $$@)
104 $(call MSG_GENERATE,VBoxGuest-inf,$@,$<)
105 $(call VBOX_EDIT_INF_FN,$<,$@)
106
107if defined(VBOX_SIGNING_MODE) && defined(VBOX_SIGN_ADDITIONS)
108 VBoxGuest-inf_SOURCES += \
109 $(PATH_TARGET)/VBoxGuestCat.dir/VBoxGuest.cat \
110 $(PATH_TARGET)/VBoxGuestCat.dir/VBoxGuest.cat=>VBoxGuest-PreW10.cat \
111 $(PATH_TARGET)/VBoxGuestCat.dir/VBoxGuest.sys \
112 $(PATH_TARGET)/VBoxGuestCat.dir/VBoxControl.exe \
113 $(PATH_TARGET)/VBoxGuestCat.dir/VBoxTray.exe
114
115 $(PATH_TARGET)/VBoxGuestCat.dir/VBoxGuest.sys: $$(VBoxGuest_1_TARGET) | $$(dir $$@)
116 $(INSTALL) -m 644 $< $(@D)
117
118 $(PATH_TARGET)/VBoxGuestCat.dir/VBoxControl.exe: $$(VBoxControl_1_TARGET) | $$(dir $$@)
119 $(INSTALL) -m 755 $< $(@D)
120
121 $(PATH_TARGET)/VBoxGuestCat.dir/VBoxTray.exe: $$(VBoxTray_1_TARGET) | $$(dir $$@)
122 $(INSTALL) -m 755 $< $(@D)
123
124 $(PATH_TARGET)/VBoxGuestCat.dir/VBoxGuest.cat: \
125 $(PATH_TARGET)/VBoxGuestCat.dir/VBoxGuest.inf \
126 $(PATH_TARGET)/VBoxGuestCat.dir/VBoxGuest.sys \
127 $(PATH_TARGET)/VBoxGuestCat.dir/VBoxControl.exe \
128 $(PATH_TARGET)/VBoxGuestCat.dir/VBoxTray.exe
129 $(call MSG_TOOL,Inf2Cat,VBoxGuest-inf,$@,$<)
130 $(call VBOX_MAKE_CAT_FN, $(@D),$@)
131 endif # signing
132endif # KBUILD_TARGET == win
133
134# The packing target rule, but only if we're on the local build box.
135# (VBOX_WITHOUT_ADDITIONS_ISO is used by the additions build box, see the root makefile.)
136ifndef VBOX_WITHOUT_ADDITIONS_ISO
137 PACKING += $(VBOX_PATH_ADDITIONS_ISO)/VBoxGuestAdditions.iso
138endif
139
140include $(FILE_KBUILD_SUB_FOOTER)
141
142#
143# File per-OS/arch file specs for the additions iso (alphabetical order).
144#
145# We test for the VBOX_WITH_ADDITIONS_ISO.os.arch so that we don't have to
146# do the $(if )'ing down where the GUESTADDITIONS_FILESPEC.os.arch down
147# in the dependency list and RTIsoMaker command.
148#
149
150# Darwin / Mac OS X
151## @todo Create .pkg files not run files. The build server shall create a combined packaged, goverend by
152# the VBOX_WITH_COMBINED_DARWIN_GUEST_PACKAGE macro.
153ifdef VBOX_WITH_ADDITIONS_ISO.darwin.x86
154VBOX_PATH_ADDITIONS.darwin.x86 = $(PATH_OUT_BASE)/darwin.x86/$(KBUILD_TYPE)/dist/additions
155GUESTADDITIONS_FILESPEC.darwin.x86 = \
156 VBoxDarwinAdditionsLegacy.pkg=$(VBOX_PATH_ADDITIONS.darwin.x86)/VBoxGuestAdditions.pkg
157 ifndef VBOX_WITH_ADDITIONS_ISO.darwin.amd64
158GUESTADDITIONS_FILESPEC.darwin.x86 += \
159 VBoxDarwinAdditionsUninstall.tool=$(VBOX_PATH_ADDITIONS.darwin.x86)/VBoxDarwinAdditionsUninstall.tool
160 endif
161endif
162
163ifdef VBOX_WITH_ADDITIONS_ISO.darwin.amd64
164VBOX_PATH_ADDITIONS.darwin.amd64 = $(PATH_OUT_BASE)/darwin.amd64/$(KBUILD_TYPE)/dist/additions
165GUESTADDITIONS_FILESPEC.darwin.amd64 = \
166 VBoxDarwinAdditions.pkg=$(VBOX_PATH_ADDITIONS.darwin.amd64)/VBoxGuestAdditions.pkg
167 ifndef VBOX_WITH_ADDITIONS_ISO.darwin.x86
168GUESTADDITIONS_FILESPEC.darwin.amd64 += \
169 VBoxDarwinAdditionsUninstall.tool=$(VBOX_PATH_ADDITIONS.darwin.amd64)/VBoxDarwinAdditionsUninstall.tool
170 endif
171endif
172
173# FreeBSD
174ifdef VBOX_WITH_ADDITIONS_ISO.freebsd.amd64
175 VBOX_PATH_ADDITIONS.freebsd.amd64 = $(PATH_OUT_BASE)/freebsd.amd64/$(KBUILD_TYPE)/bin/additions
176 GUESTADDITIONS_FILESPEC.freebsd.amd64 = \
177 VBoxFreeBSDAdditions-amd64.tbz=$(VBOX_PATH_ADDITIONS.freebsd.amd64)/VBoxFreeBSDAdditions.tbz
178endif
179ifdef VBOX_WITH_ADDITIONS_ISO.freebsd.x86
180 VBOX_PATH_ADDITIONS.freebsd.x86 = $(PATH_OUT_BASE)/freebsd.x86/$(KBUILD_TYPE)/bin/additions
181 GUESTADDITIONS_FILESPEC.freebsd.x86 = \
182 VBoxFreeBSDAdditions-x86.tbz=$(VBOX_PATH_ADDITIONS.freebsd.x86)/VBoxFreeBSDAdditions.tbz
183endif
184
185# GNU/Linux
186ifdef VBOX_WITH_ADDITIONS_ISO.linux.amd64
187 VBOX_PATH_ADDITIONS.linux.amd64 = $(PATH_OUT_BASE)/linux.amd64/$(KBUILD_TYPE)/bin/additions
188 ifdef VBOX_WITH_COMBINED_LINUX_GUEST_PACKAGE
189 VBOX_LNX_ADD_AMD64_RUN_PKG=VBoxLinuxAdditions.run
190 else
191 VBOX_LNX_ADD_AMD64_RUN_PKG=VBoxLinuxAdditions-amd64.run
192 endif
193 GUESTADDITIONS_FILESPEC.linux.amd64 = \
194 $(VBOX_LNX_ADD_AMD64_RUN_PKG)=$(VBOX_PATH_ADDITIONS.linux.amd64)/VBoxLinuxAdditions.run
195endif
196ifdef VBOX_WITH_ADDITIONS_ISO.linux.x86
197 VBOX_PATH_ADDITIONS.linux.x86 = $(PATH_OUT_BASE)/linux.x86/$(KBUILD_TYPE)/bin/additions
198## @todo 64-bit additions: rename this package, update docs (?) and tests (?). create wrapper? create gnome/kde autorun app (xplatform) ?
199 ifdef VBOX_WITH_COMBINED_LINUX_GUEST_PACKAGE
200 VBOX_LNX_ADD_X86_RUN_PKG=VBoxLinuxAdditions.run
201 else
202 VBOX_LNX_ADD_X86_RUN_PKG=VBoxLinuxAdditions-x86.run
203 endif
204 GUESTADDITIONS_FILESPEC.linux.x86 = \
205 $(VBOX_LNX_ADD_X86_RUN_PKG)=$(VBOX_PATH_ADDITIONS.linux.x86)/VBoxLinuxAdditions.run \
206 runasroot.sh=$(VBOX_PATH_ADDITIONS.linux.x86)/runasroot.sh \
207 autorun.sh=$(VBOX_PATH_ADDITIONS.linux.x86)/autorun.sh
208endif
209
210# IBM OS/2
211ifdef VBOX_WITH_ADDITIONS_ISO.os2.x86
212 VBOX_PATH_ADDITIONS.os2.x86 = $(PATH_OUT_BASE)/os2.x86/$(KBUILD_TYPE)/bin/additions
213 GUESTADDITIONS_FILESPEC.os2.x86 = \
214 OS2/VBoxGuest.sys=$(VBOX_PATH_ADDITIONS.os2.x86)/VBoxGuest.sys \
215 OS2/VBoxSF.ifs=$(VBOX_PATH_ADDITIONS.os2.x86)/VBoxSF.ifs\
216 OS2/VBoxService.exe=$(VBOX_PATH_ADDITIONS.os2.x86)/VBoxService.exe \
217 OS2/VBoxControl.exe=$(VBOX_PATH_ADDITIONS.os2.x86)/VBoxControl.exe \
218 OS2/VBoxReplaceDll.exe=$(VBOX_PATH_ADDITIONS.os2.x86)/VBoxReplaceDll.exe \
219 OS2/VBoxOs2AdditionsInstall.exe=$(VBOX_PATH_ADDITIONS.os2.x86)/VBoxOs2AdditionsInstall.exe \
220 OS2/libc06.dll=$(VBOX_PATH_ADDITIONS.os2.x86)/libc06.dll \
221 OS2/libc061.dll=$(VBOX_PATH_ADDITIONS.os2.x86)/libc061.dll \
222 OS2/libc062.dll=$(VBOX_PATH_ADDITIONS.os2.x86)/libc062.dll \
223 OS2/libc063.dll=$(VBOX_PATH_ADDITIONS.os2.x86)/libc063.dll \
224 OS2/libc064.dll=$(VBOX_PATH_ADDITIONS.os2.x86)/libc064.dll \
225 OS2/libc065.dll=$(VBOX_PATH_ADDITIONS.os2.x86)/libc065.dll \
226 OS2/libc066.dll=$(VBOX_PATH_ADDITIONS.os2.x86)/libc066.dll \
227 OS2/readme.txt=$(VBOX_PATH_ADDITIONS.os2.x86)/readme.txt \
228 \
229 OS2/gengradd.dll=$(VBOX_PATH_ADDITIONS.os2.x86)/gengradd.dll \
230 OS2/VBoxMouse.sys=$(VBOX_PATH_ADDITIONS.os2.x86)/vboxmouse.sys
231endif
232
233# Oracle Solaris.
234ifdef VBOX_WITH_ADDITIONS_ISO.solaris.amd64
235 VBOX_PATH_ADDITIONS.solaris.amd64 = $(PATH_OUT_BASE)/solaris.amd64/$(KBUILD_TYPE)/bin/additions
236 GUESTADDITIONS_FILESPEC.solaris.amd64 = \
237 VBoxSolarisAdditions-amd64.pkg=$(VBOX_PATH_ADDITIONS.solaris.amd64)/VBoxSolarisAdditions.pkg
238endif
239ifdef VBOX_WITH_ADDITIONS_ISO.solaris.x86
240 VBOX_PATH_ADDITIONS.solaris.x86 = $(PATH_OUT_BASE)/solaris.x86/$(KBUILD_TYPE)/bin/additions
241 GUESTADDITIONS_FILESPEC.solaris.x86 = \
242 VBoxSolarisAdditions-x86.pkg=$(VBOX_PATH_ADDITIONS.solaris.x86)/VBoxSolarisAdditions.pkg
243endif
244ifdef VBOX_WITH_COMBINED_SOLARIS_GUEST_PACKAGE
245 # Build combined 32bit and 64bit solaris additions, not just a single arch.
246 # This assumes that the 32bit build directory contains the combined additions
247 # for 32bit and 64bit solaris. This just modifies variables set above.
248 GUESTADDITIONS_FILESPEC.solaris.x86 = \
249 VBoxSolarisAdditions.pkg=$(VBOX_PATH_ADDITIONS.solaris.x86)/VBoxSolarisAdditions.pkg
250 GUESTADDITIONS_FILESPEC.solaris.amd64 =
251endif
252
253# Microsoft Windows.
254ifdef VBOX_WITH_ADDITIONS_ISO.win.amd64
255 VBOX_PATH_ADDITIONS.win.amd64 = $(PATH_OUT_BASE)/win.amd64/$(KBUILD_TYPE)/bin/additions
256 VBOX_PATH_ADDITIONS.win = $(VBOX_PATH_ADDITIONS.win.amd64)
257 GUESTADDITIONS_FILESPEC.win.amd64 = \
258 VBoxWindowsAdditions-amd64.exe=$(VBOX_PATH_ADDITIONS.win.amd64)/VBoxWindowsAdditions-amd64.exe
259 ifndef VBOX_WITH_ADDITIONS_ISO.win.x86
260 GUESTADDITIONS_FILESPEC.win.amd64 += \
261 cert/VBoxCertUtil.exe=$(VBOX_PATH_ADDITIONS.win.amd64)/VBoxCertUtil.exe
262 endif
263endif
264
265ifdef VBOX_WITH_ADDITIONS_ISO.win.x86
266 VBOX_PATH_ADDITIONS.win.x86 = $(PATH_OUT_BASE)/win.x86/$(KBUILD_TYPE)/bin/additions
267 VBOX_PATH_ADDITIONS.win = $(VBOX_PATH_ADDITIONS.win.x86)
268 GUESTADDITIONS_FILESPEC.win.x86 = \
269 VBoxWindowsAdditions-x86.exe=$(VBOX_PATH_ADDITIONS.win.x86)/VBoxWindowsAdditions-x86.exe \
270 VBoxWindowsAdditions.exe=$(VBOX_PATH_ADDITIONS.win.x86)/VBoxWindowsAdditions.exe \
271 AUTORUN.INF=$(VBOX_PATH_ADDITIONS_SRC)/WINNT/Installer/ISO/AUTORUN.INF \
272 cert/VBoxCertUtil.exe=$(VBOX_PATH_ADDITIONS.win.x86)/VBoxCertUtil.exe \
273 NT3x/Readme.txt=$(VBOX_PATH_ADDITIONS_SRC)/WINNT/Installer/ISO/NT3xReadme.txt \
274 NT3x/VBoxGuest.sys=$(VBOX_PATH_ADDITIONS.win.x86)/VBoxGuest.sys \
275 NT3x/VBoxMouseNT.sys=$(VBOX_PATH_ADDITIONS.win.x86)/VBoxMouseNT.sys \
276 NT3x/VBoxService.exe=$(VBOX_PATH_ADDITIONS.win.x86)/VBoxService.exe \
277 NT3x/VBoxControl.exe=$(VBOX_PATH_ADDITIONS.win.x86)/VBoxControl.exe \
278 NT3x/VBoxAddInstallNt3x.exe=$(VBOX_PATH_ADDITIONS.win.x86)/VBoxAddInstallNt3x.exe
279endif # win.x86
280
281if defined(VBOX_WITH_ADDITIONS_ISO.win.amd64) || defined(VBOX_WITH_ADDITIONS_ISO.win.x86)
282 ifndef VBOX_SIGNING_MODE
283 GUESTADDITIONS_FILESPEC.win =
284 else if !defined(VBOX_CERTIFICATE_SHA2_SUBJECT_NAME) && !$(intersects win all 1,$(VBOX_WITH_CORP_CODE_SIGNING))
285 GUESTADDITIONS_FILESPEC.win = cert/vbox.cer=$(VBOX_PATH_ADDITIONS.win)/vbox.cer
286 else
287 GUESTADDITIONS_FILESPEC.win = \
288 cert/vbox-sha1.cer=$(VBOX_PATH_ADDITIONS.win)/vbox-sha1.cer \
289 cert/vbox-sha256.cer=$(VBOX_PATH_ADDITIONS.win)/vbox-sha256.cer
290 if $(intersects win_planb,$(VBOX_WITH_CORP_CODE_SIGNING))
291 GUESTADDITIONS_FILESPEC.win += cert/vbox-sha256-r3.cer=$(VBOX_PATH_ADDITIONS.win)/vbox-sha256-r3.cer
292 endif
293 endif
294 GUESTADDITIONS_FILESPEC.win += windows11-bypass.reg=$(VBOX_PATH_ADDITIONS_SRC)/WINNT/tools/windows11-bypass.reg
295endif
296
297# haiku
298ifdef VBOX_WITH_ADDITIONS_ISO.haiku.x86
299 VBOX_PATH_ADDITIONS.haiku.x86 = $(PATH_OUT_BASE)/haiku.x86/$(KBUILD_TYPE)/bin/additions
300 # or bfs?
301 GUESTADDITIONS_FILESPEC.haiku.x86 = \
302 VBoxHaikuAdditions-x86.run=$(VBOX_PATH_ADDITIONS.haiku.x86)/VBoxHaikuAdditions-x86.run
303endif
304
305# For the iso rule.
306GUESTADDITIONS_FILESPEC_ALL = \
307 $(GUESTADDITIONS_FILESPEC.win) \
308 $(GUESTADDITIONS_FILESPEC.win.x86) \
309 $(GUESTADDITIONS_FILESPEC.win.amd64) \
310 $(GUESTADDITIONS_FILESPEC.solaris.x86) \
311 $(GUESTADDITIONS_FILESPEC.solaris.amd64) \
312 $(GUESTADDITIONS_FILESPEC.os2.x86) \
313 $(GUESTADDITIONS_FILESPEC.linux.x86) \
314 $(GUESTADDITIONS_FILESPEC.linux.amd64) \
315 $(GUESTADDITIONS_FILESPEC.freebsd.x86) \
316 $(GUESTADDITIONS_FILESPEC.freebsd.amd64) \
317 $(GUESTADDITIONS_FILESPEC.haiku.x86) \
318 $(GUESTADDITIONS_FILESPEC.darwin.x86) \
319 $(GUESTADDITIONS_FILESPEC.darwin.amd64)
320
321#
322# Build the Guest Additions ISO image.
323#
324ifndef VBOX_WITHOUT_ADDITIONS_ISO
325$(VBOX_PATH_ADDITIONS_ISO)/VBoxGuestAdditions.iso: \
326 $(filter-out %=deleteme=,$(subst =,=deleteme= , $(GUESTADDITIONS_FILESPEC_ALL))) \
327 $(VBOX_SVN_REV_KMK) \
328 $(VBOX_PATH_ADDITIONS_SRC)/Makefile.kmk \
329 | $(if-expr defined(VBOX_USE_RTISOMAKER),$(VBOX_RTISOMAKER),)
330 $(call MSG_TOOL,RTIsoMaker,,$@)
331 $(QUIET)$(MKDIR) -p $(@D)
332 $(VBOX_RTISOMAKER) \
333 --output $@ \
334 --iso-level 3 \
335 --rock-ridge \
336 --joliet \
337 --rational-attribs \
338 --random-order-verification 2048 \
339 $(addprefix /,$(GUESTADDITIONS_FILESPEC_ALL)) \
340 $(foreach spec, $(filter %.run %.sh %.tool,$(GUESTADDITIONS_FILESPEC_ALL)) \
341 , --chmod a+x:/$(substr $(spec), 1, $(expr $(pos =,$(spec)) - 1))) \
342 --volume-id="VBOXADDITIONS_$(VBOX_VERSION_STRING_RAW)_$(VBOX_SVN_REV)" \
343 --name-setup=joliet \
344 --volume-id="VBox_GAs_$(VBOX_VERSION_STRING_RAW)"
345
346$(VBOX_PATH_ADDITIONS_ISO)/VBoxGuestAdditions.zip: $(VBOX_PATH_ADDITIONS_ISO)/VBoxGuestAdditions.iso
347 $(call MSG_L1,Zipping image $@)
348 $(QUIET)$(RM) -f $@
349 $(QUIET)$(REDIRECT) -C $(VBOX_PATH_ADDITIONS_ISO) -- $(VBOX_ZIP) -9 $@ $(notdir $^)
350
351# Alias for creating the iso.
352.PHONY: additions-iso
353additions-iso: $(VBOX_PATH_ADDITIONS_ISO)/VBoxGuestAdditions.iso
354
355endif
356
Note: See TracBrowser for help on using the repository browser.

© 2023 Oracle
ContactPrivacy policyTerms of Use