VirtualBox

source: vbox/trunk/src/VBox/Installer/solaris/Makefile.kmk@ 80360

Last change on this file since 80360 was 80360, checked in by vboxsync, 6 years ago

HostServices/SharedOpenGL: Remove most of the chromium related HGCM service bits leaving only the renderspu and OpenGLTest app for now as they are used for VMSVGA as well (OpenGLTest needs to be rewritten), bugref:9529

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 29.1 KB
Line 
1# $Id: Makefile.kmk 80360 2019-08-21 08:41:18Z vboxsync $
2## @file
3# Sub-Makefile for the Solaris installer.
4#
5
6#
7# Copyright (C) 2007-2019 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
21ifneq ($(KBUILD_HOST),solaris)
22$(error "The Solaris installer can only be built on Solaris!") # yeah, right.
23endif
24
25
26#
27# Globals
28#
29VBOX_PATH_SOL_INST_SRC := $(PATH_SUB_CURRENT)
30VBOX_PATH_SI_SCRATCH := $(PATH_TARGET)/Installer-solaris
31VBOX_PATH_SI_SCRATCH_PKG := $(PATH_TARGET)/Installer-solaris/pkg
32VBOX_PATH_SI_SCRATCH_DBG := $(PATH_TARGET)/Installer-solaris/DebugPkg
33VBOX_SI_ARCH := $(subst x86,i386,$(KBUILD_TARGET_ARCH))
34VBOX_SI_ICON_TYPES := ova ovf vbox vbox-extpack vdi vmdk vhd hdd
35VBOX_SI_ICON_SIZES := 16 20 24 32 48 64 72 96 128 256
36VBOX_SI_GTAR := /usr/sfw/bin/gtar
37VBOX_SI_OBJCOPY_STRIP := /usr/sfw/bin/gobjcopy --strip-debug -R .comment
38ifeq ($(KBUILD_TARGET_ARCH),amd64)
39 VBOX_SI_OBJCOPY_DBGINFO := /usr/sfw/bin/gobjcopy --only-keep-debug
40else
41 VBOX_SI_OBJCOPY_DBGINFO := $(CP) -p # Solaris ld/gobjcopy(2.15) don't get along on x86, works only on amd64. So just using cp for now.
42endif
43
44# Unset this to speed up things during makefile hacking.
45VBOX_SI_DEP_ON_MAKEFILE := $(MAKEFILE_CURRENT)
46
47
48# Base package
49PKGINFO_ARCH = $(shell uname -p)
50PKGINFO_REVSTAMP = $(date %Y.%m.%d.%H.%M)
51PKG_FILENAME := VirtualBox-$(VBOX_VERSION_STRING)-SunOS-$(KBUILD_TARGET_ARCH)-r$(VBOX_SVN_REV)
52
53
54#
55# Targets
56#
57PROGRAMS += VBoxZoneAccess VBoxISAExec
58INSTALLS += solaris-doc solaris-bin solaris-drv-confs solaris-icons
59BLDDIRS += $(VBOX_PATH_SI_SCRATCH)
60PACKING += \
61 $(PATH_STAGE_BIN)/$(PKG_FILENAME).tar.gz \
62 $(PATH_STAGE_BIN)/VirtualBoxDebug.tar.bz2
63OTHER_CLEAN += \
64 $(VBOX_PATH_SI_SCRATCH)/$(PKG_FILENAME).pkg \
65 $(PATH_STAGE_BIN)/$(PKG_FILENAME).tar.gz \
66 $(PATH_STAGE_BIN)/VirtualBoxDebug.tar.bz2
67
68#
69# VBoxZoneAccess
70#
71VBoxZoneAccess_TEMPLATE = VBOXR3EXE
72VBoxZoneAccess_DEPS = $(VBOX_SVN_REV_KMK)
73VBoxZoneAccess_SOURCES = VBoxZoneAccess.c
74VBoxZoneAccess_LIBS = $(LIB_RUNTIME)
75
76#
77# VBoxISAExec
78#
79VBoxISAExec_TEMPLATE = VBOXR3EXE
80VBoxISAExec_DEPS = $(VBOX_SVN_REV_KMK)
81VBoxISAExec_SOURCES = VBoxISAExec.c
82
83#
84# Solaris installs.
85#
86solaris-doc_INST = bin/
87solaris-doc_MODE = a+r,u+w
88solaris-doc_SOURCES = \
89 $(VBOX_BRAND_LICENSE_TXT)=>LICENSE \
90 $(PATH_ROOT)/src/VBox/Frontends/VirtualBox/images/$(if $(VBOX_OSE),OSE,NonOSE)/VirtualBox_64px.png=>VBox.png \
91 $(PATH_ROOT)/src/VBox/Artwork/$(if $(VBOX_OSE),OSE,NonOSE)/virtualbox-128px.png=>virtualbox.png
92
93solaris-bin_INST = bin/
94solaris-bin_MODE = a+rx,u+w
95solaris-bin_SOURCES = \
96 $(if $(VBOX_WITH_PYTHON),$(PATH_ROOT)/src/VBox/Frontends/VBoxShell/vboxshell.py,) \
97 $(VBOX_PATH_SOL_INST_SRC)/vboxconfig.sh \
98 $(VBOX_PATH_SOL_INST_SRC)/VBox.sh \
99 $(VBOX_PATH_SOL_INST_SRC)/pkginstall.sh \
100 $(VBOX_PATH_SOL_INST_SRC)/smf-vboxballoonctrl.sh \
101 $(VBOX_PATH_SOL_INST_SRC)/smf-vboxautostart.sh \
102 $(if $(VBOX_WITH_WEBSERVICES),$(VBOX_PATH_SOL_INST_SRC)/smf-vboxwebsrv.sh,)
103
104solaris-drv-confs_INST = bin/
105solaris-drv-confs_MODE = a+r,u+w
106solaris-drv-confs_SOURCES = \
107 $(PATH_ROOT)/src/VBox/HostDrivers/Support/solaris/vboxdrv.conf \
108 $(if $(VBOX_WITH_NETFLT),$(PATH_ROOT)/src/VBox/HostDrivers/VBoxNetFlt/solaris/vboxflt.conf) \
109 $(if $(VBOX_WITH_NETFLT_CROSSBOW),$(PATH_ROOT)/src/VBox/HostDrivers/VBoxNetFlt/solaris/vboxbow.conf) \
110 $(if $(VBOX_WITH_NETADP),$(PATH_ROOT)/src/VBox/HostDrivers/VBoxNetAdp/solaris/vboxnet.conf) \
111 $(if $(VBOX_WITH_USB),$(PATH_ROOT)/src/VBox/HostDrivers/VBoxUSB/solaris/vboxusbmon.conf) \
112 $(if $(VBOX_WITH_USB),$(PATH_ROOT)/src/VBox/HostDrivers/VBoxUSB/solaris/vboxusb.conf)
113
114solaris-icons_INST = bin/icons/
115solaris-icons_MODE = a+r,u+w
116solaris-icons_SOURCES = $(foreach f,$(VBOX_SI_ICON_TYPES), $(foreach s,$(VBOX_SI_ICON_SIZES)\
117 ,$(PATH_ROOT)/src/VBox/Artwork/other/virtualbox-$(f)-$(s)px.png=>$(s)x$(s)/mimetypes/virtualbox-$(f).png))
118
119
120#
121# What follows is various files lists (and a symlink list) that lists various
122# types of files going from/to various places during installation.
123#
124# Each list has the following attributes (used by makefile command and
125# dependency generation):
126# .SUBDIRS := <yes|no>
127# .STRIP := <yes|objcopy|no>
128# .MODE := <0644|0755>
129# .SRC := <Directory to copy the files from>
130# .DST := <Directory to copy the files to>
131#
132
133
134## List of file list variable names.
135SOLARIS_FILE_LIST_VARS :=
136
137## @def SOLARIS_ETC_FILES
138# System-wide configuration files to copy from VBOX_PATH_SOL_INST_SRC to /etc.
139SOLARIS_FILE_LIST_VARS += SOLARIS_ETC_FILES
140SOLARIS_ETC_FILES.SUBDIRS := yes
141SOLARIS_ETC_FILES.STRIP := no
142SOLARIS_ETC_FILES.MODE := 0644
143SOLARIS_ETC_FILES.SRC := $(PATH_ROOT)/src/VBox/HostDrivers/VBoxNetAdp/solaris
144SOLARIS_ETC_FILES.DST := $(VBOX_PATH_SI_SCRATCH_PKG)/etc
145SOLARIS_ETC_FILES := $(if-expr defined(VBOX_WITH_NETADP),hostname.vboxnet0,)
146
147## @def SOLARIS_SMF_FILES
148# Service management facility manifest files to copy from VBOX_PATH_SOL_INST_SRC to /var/svc/manifest/application/virtualbox/.
149SOLARIS_FILE_LIST_VARS += SOLARIS_SMF_FILES
150SOLARIS_SMF_FILES.SUBDIRS := yes
151SOLARIS_SMF_FILES.STRIP := no
152SOLARIS_SMF_FILES.MODE := 0644
153SOLARIS_SMF_FILES.SRC := $(VBOX_PATH_SOL_INST_SRC)
154SOLARIS_SMF_FILES.DST := $(VBOX_PATH_SI_SCRATCH_PKG)/var/svc/manifest/application/virtualbox
155SOLARIS_SMF_FILES = \
156 virtualbox-zoneaccess.xml \
157 virtualbox-balloonctrl.xml \
158 virtualbox-autostart.xml \
159 $(if-expr defined(VBOX_WITH_WEBSERVICES),virtualbox-webservice.xml,)
160
161## @def SOLARIS_MIME_INFO_FILES
162# MIME info files to be copied directly from VBOX_PATH_SOL_INST_SRC to /usr/share/mime-info/.
163SOLARIS_FILE_LIST_VARS += SOLARIS_MIME_INFO_FILES
164SOLARIS_MIME_INFO_FILES.SUBDIRS := yes
165SOLARIS_MIME_INFO_FILES.STRIP := no
166SOLARIS_MIME_INFO_FILES.MODE := 0644
167SOLARIS_MIME_INFO_FILES.SRC := $(VBOX_PATH_SOL_INST_SRC)
168SOLARIS_MIME_INFO_FILES.DST := $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/mime-info
169SOLARIS_MIME_INFO_FILES = \
170 virtualbox.keys \
171 virtualbox.mime
172
173## @def SOLARIS_PIXMAP_FILES
174# Bitmap files to copy directly from INST_BIN to /usr/share/pixmaps/.
175SOLARIS_FILE_LIST_VARS += SOLARIS_PIXMAP_FILES
176SOLARIS_PIXMAP_FILES.SUBDIRS = no
177SOLARIS_PIXMAP_FILES.STRIP = no
178SOLARIS_PIXMAP_FILES.MODE = 0644
179SOLARIS_PIXMAP_FILES.SRC = $(PATH_STAGE_BIN)
180SOLARIS_PIXMAP_FILES.DST = $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/pixmaps
181SOLARIS_PIXMAP_FILES = \
182 VBox.png \
183 virtualbox.png
184
185
186## @def SOLARIS_INSTALLER_SCRIPTS
187# Installer shell scripts that gets copied directly from VBOX_PATH_SOL_INST_SRC to VBOX_PATH_SI_SCRATCH_PKG (/).
188SOLARIS_FILE_LIST_VARS += SOLARIS_INSTALLER_SCRIPTS
189SOLARIS_INSTALLER_SCRIPTS.SUBDIRS = no
190SOLARIS_INSTALLER_SCRIPTS.STRIP = no
191SOLARIS_INSTALLER_SCRIPTS.MODE = 0755
192SOLARIS_INSTALLER_SCRIPTS.SRC = $(VBOX_PATH_SOL_INST_SRC)
193SOLARIS_INSTALLER_SCRIPTS.DST = $(VBOX_PATH_SI_SCRATCH_PKG)
194SOLARIS_INSTALLER_SCRIPTS = \
195 postinstall.sh \
196 checkinstall.sh \
197 preremove.sh \
198 makepackage.sh
199
200## @def SOLARIS_INSTALLER_FILES
201# Installer files that gets copied directly from VBOX_PATH_SOL_INST_SRC to VBOX_PATH_SI_SCRATCH_PKG (/).
202SOLARIS_FILE_LIST_VARS += SOLARIS_INSTALLER_FILES
203SOLARIS_INSTALLER_FILES.SUBDIRS = no
204SOLARIS_INSTALLER_FILES.STRIP = no
205SOLARIS_INSTALLER_FILES.MODE = 0644
206SOLARIS_INSTALLER_FILES.SRC = $(VBOX_PATH_SOL_INST_SRC)
207SOLARIS_INSTALLER_FILES.DST = $(VBOX_PATH_SI_SCRATCH_PKG)
208SOLARIS_INSTALLER_FILES = \
209 vbox.space
210
211## @def SOLARIS_DRIVER_BINS
212# List of kernel module files that are copied from INST_BIN to platform/i86pc/kernel/drv/[amd64/] and stripped of debug info.
213SOLARIS_FILE_LIST_VARS += SOLARIS_DRIVER_BINS
214SOLARIS_DRIVER_BINS.SUBDIRS := no
215SOLARIS_DRIVER_BINS.STRIP := no
216SOLARIS_DRIVER_BINS.MODE := 0644
217SOLARIS_DRIVER_BINS.SRC := $(PATH_STAGE_BIN)
218SOLARIS_DRIVER_BINS.DST := $(VBOX_PATH_SI_SCRATCH_PKG)/platform/i86pc/kernel/drv/$(subst x86,,$(KBUILD_TARGET_ARCH))
219SOLARIS_DRIVER_BINS = \
220 vboxdrv \
221 $(if $(VBOX_WITH_NETFLT),vboxflt,) \
222 $(if $(VBOX_WITH_NETFLT_CROSSBOW),vboxbow,) \
223 $(if $(VBOX_WITH_NETADP),vboxnet,) \
224 $(if $(VBOX_WITH_USB),vboxusbmon,) \
225 $(if $(VBOX_WITH_USB),vboxusb,)
226
227## @def SOLARIS_DRIVER_CONFS
228# List of kernel module configuration files that are copied directly from INST_BIN to platform/i86pc/kernel/drv/.
229SOLARIS_FILE_LIST_VARS += SOLARIS_DRIVER_CONFS
230SOLARIS_DRIVER_CONFS.SUBDIRS := no
231SOLARIS_DRIVER_CONFS.STRIP := no
232SOLARIS_DRIVER_CONFS.MODE := 0644
233SOLARIS_DRIVER_CONFS.SRC := $(PATH_STAGE_BIN)
234SOLARIS_DRIVER_CONFS.DST := $(VBOX_PATH_SI_SCRATCH_PKG)/platform/i86pc/kernel/drv
235SOLARIS_DRIVER_CONFS = \
236 vboxdrv.conf \
237 $(if $(VBOX_WITH_NETFLT),vboxflt.conf,) \
238 $(if $(VBOX_WITH_NETFLT_CROSSBOW),vboxbow.conf,) \
239 $(if $(VBOX_WITH_NETADP),vboxnet.conf,) \
240 $(if $(VBOX_WITH_USB),vboxusbmon.conf,) \
241 $(if $(VBOX_WITH_USB),vboxusb.conf,)
242
243## @def SOLARIS_COMMON
244# List of files that are copied directly from INST_BIN to /opt/VirtualBox/.
245SOLARIS_FILE_LIST_VARS += SOLARIS_COMMON
246SOLARIS_COMMON.SUBDIRS := yes
247SOLARIS_COMMON.STRIP := no
248SOLARIS_COMMON.MODE := 0644
249SOLARIS_COMMON.SRC := $(PATH_STAGE_BIN)
250SOLARIS_COMMON.DST := $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox
251SOLARIS_COMMON = \
252 LICENSE
253
254## @def SOLARIS_COMMON_EXES
255# List of executable script (and VBoxISAExec) files that are copied directly from INST_BIN to /opt/VirtualBox/.
256SOLARIS_FILE_LIST_VARS += SOLARIS_COMMON_EXES
257SOLARIS_COMMON_EXES.SUBDIRS := no
258SOLARIS_COMMON_EXES.STRIP := no
259SOLARIS_COMMON_EXES.MODE := 0755
260SOLARIS_COMMON_EXES.SRC := $(PATH_STAGE_BIN)
261SOLARIS_COMMON_EXES.DST := $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox
262SOLARIS_COMMON_EXES = \
263 VBoxISAExec
264
265## @def SOLARIS_COMMON_BINS
266# List of INST_BIN shared libraries that should be copied into /opt/VirtualBox/ and stripped.
267SOLARIS_FILE_LIST_VARS += SOLARIS_COMMON_STRIP_BINS
268SOLARIS_COMMON_STRIP_BINS.SUBDIRS := yes
269SOLARIS_COMMON_STRIP_BINS.STRIP := yes
270SOLARIS_COMMON_STRIP_BINS.MODE := 0644
271SOLARIS_COMMON_STRIP_BINS.SRC := $(PATH_STAGE_BIN)
272SOLARIS_COMMON_STRIP_BINS.DST := $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/
273SOLARIS_COMMON_STRIP_BINS =
274
275## @def SOLARIS_COMMON_64_STRIP_BINS
276# List of INST_BIN shared libraries that should be copied into /opt/VirtualBox/64/ and stripped.
277SOLARIS_FILE_LIST_VARS += SOLARIS_COMMON_64_STRIP_BINS
278SOLARIS_COMMON_64_STRIP_BINS.SUBDIRS := yes
279SOLARIS_COMMON_64_STRIP_BINS.STRIP := yes
280SOLARIS_COMMON_64_STRIP_BINS.MODE := 0644
281SOLARIS_COMMON_64_STRIP_BINS.SRC := $(PATH_STAGE_BIN)
282SOLARIS_COMMON_64_STRIP_BINS.DST := $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/64
283SOLARIS_COMMON_64_STRIP_BINS =
284
285
286## @def SOLARIS_STRIP_EXES
287# List of exectuables files that are copied from INST_BIN to /opt/VirtualBox/$(VBOX_SI_ARCH)/ and stripped of debug info.
288SOLARIS_FILE_LIST_VARS += SOLARIS_STRIP_EXES
289SOLARIS_STRIP_EXES.SUBDIRS := no
290SOLARIS_STRIP_EXES.STRIP := yes
291SOLARIS_STRIP_EXES.MODE := 0755
292SOLARIS_STRIP_EXES.SRC := $(PATH_STAGE_BIN)
293SOLARIS_STRIP_EXES.DST := $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/$(VBOX_SI_ARCH)
294SOLARIS_STRIP_EXES = \
295 VBoxZoneAccess \
296 $(if $(VBOX_WITH_QTGUI),VirtualBox VirtualBoxVM,) \
297 VBoxManage \
298 $(if $(VBOX_WITH_VBOXSDL),VBoxSDL,) \
299 $(if $(VBOX_WITH_NETADP),VBoxNetAdpCtl,) \
300 VBoxNetDHCP \
301 VBoxNetNAT \
302 $(if $(VBOX_WITH_EXTPACK),VBoxExtPackHelperApp,) \
303 VBoxSVC \
304 VBoxTestOGL \
305 VBoxXPCOMIPCD \
306 $(if $(VBOX_WITH_KCHMVIEWER),kchmviewer,) \
307 $(if $(VBOX_WITH_DTRACE),VBoxDTrace,)
308
309## @def SOLARIS_STRIP_BINS
310# List of shared libraries that are copied from INST_BIN to /opt/VirtualBox/$(VBOX_SI_ARCH)/ and stripped of debug info.
311SOLARIS_FILE_LIST_VARS += SOLARIS_STRIP_BINS
312SOLARIS_STRIP_BINS.SUBDIRS := yes
313SOLARIS_STRIP_BINS.STRIP := yes
314SOLARIS_STRIP_BINS.MODE := 0644
315SOLARIS_STRIP_BINS.SRC := $(PATH_STAGE_BIN)
316SOLARIS_STRIP_BINS.DST := $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/$(VBOX_SI_ARCH)
317SOLARIS_STRIP_BINS = \
318 VBoxDD.so \
319 VBoxDD2.so \
320 VBoxREM.so \
321 $(if-expr "$(KBUILD_TARGET_ARCH)" == "x86",VBoxREM32.so VBoxREM64.so,) \
322 VBoxRT.so \
323 VBoxDDU.so \
324 VBoxVMM.so \
325 VBoxXPCOM.so \
326 VBoxXPCOMC.so \
327 $(if $(VBOX_WITH_SHARED_FOLDERS),VBoxSharedFolders.so,) \
328 $(if $(VBOX_WITH_SHARED_CLIPBOARD),VBoxSharedClipboard.so,) \
329 $(if $(VBOX_WITH_DRAG_AND_DROP),VBoxDragAndDropSvc.so,) \
330 $(if $(VBOX_WITH_GUEST_PROPS),VBoxGuestPropSvc.so,) \
331 $(if $(VBOX_WITH_GUEST_CONTROL),VBoxGuestControlSvc.so,) \
332 VBoxHostChannel.so \
333 $(if $(VBOX_WITH_JXPCOM),libvboxjxpcom.so,) \
334 $(if $(VBOX_WITH_QTGUI),\
335 VBoxKeyboard.so) \
336 $(if $(VBOX_WITH_DEBUGGER_GUI),VBoxDbg.so DbgPlugInDiggers.so,) \
337 components/VBoxC.so \
338 components/VBoxSVCM.so \
339 components/VBoxXPCOMIPCC.so
340
341ifdef VBOX_WITH_QTGUI
342 ifdef VBOX_WITH_ORACLE_QT
343 SOLARIS_STRIP_BINS += \
344 libQt5CoreVBox.so.5 \
345 libQt5GuiVBox.so.5 \
346 libQt5XcbQpaVBox.so.5 \
347 libQt5PrintSupportVBox.so.5 \
348 libQt5DBusVBox.so.5 \
349 libQt5X11ExtrasVBox.so.5 \
350 libQt5WidgetsVBox.so.5 \
351 plugins/platforms/libqxcb.so \
352 plugins/xcbglintegrations/libqxcb-glx-integration.so \
353 $(if $(VBOX_GUI_USE_QGL),libQt5OpenGLVBox.so.5,)
354 endif
355endif #VBOX_WITH_QTGUI
356
357ifdef VBOX_WITH_32_ON_64_MAIN_API
358 SOLARIS_STRIP_BINS += \
359 VBoxRT-x86.so \
360 VBoxXPCOM-x86.so \
361 components/VBoxClient-x86.so \
362 components/VBoxSVCM-x86.so \
363 components/VBoxXPCOMIPCC-x86.so
364endif
365ifdef VBOX_WITH_HARDENING
366 SOLARIS_STRIP_BINS += \
367 VBoxNetDHCP.so \
368 VBoxNetNAT.so \
369 $(if $(VBOX_WITH_VBOXSDL),VBoxSDL.so,) \
370 $(if $(VBOX_WITH_QTGUI),VirtualBoxVM.so UICommon.so,)
371endif
372
373## @def SOLARIS_STRIP_OBJS
374# List of relocable object files to be copied from INST_BIN to /opt/VirtualBox/$(VBOX_SI_ARCH)/ and carefully
375# stripped of debug info but not relocation information. These are the ring-0 and raw-mode context modules.
376SOLARIS_FILE_LIST_VARS += SOLARIS_STRIP_OBJS
377SOLARIS_STRIP_OBJS.SUBDIRS := no
378SOLARIS_STRIP_OBJS.STRIP := objcopy
379SOLARIS_STRIP_OBJS.MODE := 0644
380SOLARIS_STRIP_OBJS.SRC := $(PATH_STAGE_BIN)
381SOLARIS_STRIP_OBJS.DST := $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/$(VBOX_SI_ARCH)
382SOLARIS_STRIP_OBJS = \
383 VBoxDDR0.r0 \
384 VMMR0.r0
385ifdef VBOX_WITH_RAW_MODE
386SOLARIS_STRIP_OBJS += \
387 VBoxDDRC.rc \
388 VMMRC.rc
389endif
390
391## @def SOLARIS_NO_STRIP
392# List of data files that should be copied from INST_BIN to /opt/VirtualBox/$(VBOX_SI_ARCH)/.
393SOLARIS_FILE_LIST_VARS += SOLARIS_NO_STRIP
394SOLARIS_NO_STRIP.SUBDIRS := yes
395SOLARIS_NO_STRIP.STRIP := no
396SOLARIS_NO_STRIP.MODE := 0644
397SOLARIS_NO_STRIP.SRC := $(PATH_STAGE_BIN)
398SOLARIS_NO_STRIP.DST := $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/$(VBOX_SI_ARCH)
399SOLARIS_NO_STRIP = \
400 components/VBoxXPCOMBase.xpt \
401 components/VirtualBox_XPCOM.xpt \
402 $(if $(and $(VBOX_LICENSE_FILES),$(VBOX_WITH_QTGUI)),$(VBOX_LICENSE_FILES))
403
404## @def SOLARIS_USRBIN_LINKS
405# List of links to create in /usr/bin to /opt/VirtualBox/VBox.sh.
406# Naturally no subdirectories.
407SOLARIS_USRBIN_LINKS = \
408 $(if $(VBOX_WITH_QTGUI),VirtualBox VirtualBoxVM,) \
409 $(if $(VBOX_WITH_HEADLESS),VBoxHeadless,) \
410 $(if $(VBOX_WITH_VBOXSDL),VBoxSDL,) \
411 VBoxManage \
412 $(if $(VBOX_WITH_DTRACE),VBoxDTrace,)
413
414SOLARIS_COMMON_EXES += \
415 vboxconfig.sh \
416 VBox.sh \
417 pkginstall.sh \
418 $(if $(VBOX_WITH_PYTHON),vboxshell.py,) \
419 smf-vboxballoonctrl.sh \
420 smf-vboxautostart.sh \
421 $(if $(VBOX_WITH_WEBSERVICES),smf-vboxwebsrv.sh,)
422
423
424# Documentation (packed as DOCS as they are arch. neutral)
425ifdef VBOX_WITH_DOCS_PACKING
426 SOLARIS_COMMON += \
427 VirtualBox.chm \
428 UserManual.pdf \
429 $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES),VirtualBox_$(f).chm UserManual_$(f).pdf)
430endif
431
432# Python XPCOM glue
433ifdef VBOX_WITH_PYTHON
434 SOLARIS_COMMON += \
435 $(VBOXINST_SDK_BINDINGS_XPCOM_PYTHON_FILES) \
436 $(VBOXINST_SDK_INSTALLER_PYTHON_FILES)
437 ifeq ($(KBUILD_TARGET_ARCH),amd64)
438 SOLARIS_PYTHON_32_ON_64_BINS = $(notdir $(wildcard $(PATH_STAGE_BIN)/VBoxPython*_x86.so))
439 ifdef VBOX_WITH_32_ON_64_MAIN_API
440 SOLARIS_COMMON_STRIP_BINS += $(SOLARIS_PYTHON_32_ON_64_BINS)
441 endif
442 SOLARIS_COMMON_64_STRIP_BINS += $(filter-out $(SOLARIS_PYTHON_32_ON_64_BINS), $(notdir $(wildcard $(PATH_STAGE_BIN)/VBoxPython*.so)))
443 else
444 SOLARIS_COMMON_STRIP_BINS += $(notdir $(wildcard $(PATH_STAGE_BIN)/VBoxPython*.so)))
445 endif
446endif
447
448ifdef VBOX_WITH_JXPCOM
449 SOLARIS_COMMON += \
450 sdk/bindings/xpcom/java/vboxjxpcom.jar
451endif
452
453# auth stuff
454SOLARIS_STRIP_BINS += \
455 VBoxAuth.so \
456 VBoxAuthSimple.so
457
458# VRDP
459ifdef VBOX_WITH_VRDP
460 ifndef VBOX_WITH_EXTPACK_PUEL
461 SOLARIS_STRIP_BINS += \
462 VBoxVRDP.so
463 endif
464 SOLARIS_COMMON += \
465 rdesktop-vrdp.tar.gz
466 ifdef VBOX_WITH_VRDP_RDESKTOP
467 SOLARIS_COMMON += $(addprefix rdesktop-vrdp-keymaps/,$(notdir $(wildcard $(PATH_STAGE_BIN)/rdesktop-vrdp-keymaps/*)))
468 SOLARIS_STRIP_EXES += \
469 rdesktop-vrdp
470 endif
471endif
472
473SOLARIS_STRIP_BINS += \
474 $(if $(and $(VBOX_WITH_HARDENING),$(VBOX_WITH_HEADLESS)),VBoxHeadless.so,)
475
476SOLARIS_STRIP_EXES += \
477 $(if $(VBOX_WITH_HEADLESS),VBoxHeadless) \
478 VBoxBugReport \
479 VBoxBalloonCtrl \
480 VBoxAutostart \
481 $(if $(VBOX_WITH_WEBSERVICES),vboxwebsrv) \
482 $(if $(VBOX_WITH_VBOX_IMG)$(VBOX_WITH_TESTCASES),vbox-img)
483
484# Guest Additions
485ifdef VBOX_WITH_ADDITIONS_PACKING
486# SOLARIS_COMMON += \
487# additions/VBoxGuestAdditions.iso
488endif
489
490
491# EFI firmware
492ifdef VBOX_WITH_EFIFW_PACKING
493 SOLARIS_COMMON += \
494 VBoxEFI32.fd \
495 VBoxEFI64.fd
496endif
497
498# Unattended installation template scripts.
499ifdef VBOX_UNATTENDED_TEMPLATES
500 SOLARIS_COMMON += $(addprefix UnattendedTemplates/,$(VBOX_UNATTENDED_TEMPLATES))
501endif
502
503# DTrace library, testcase and scripts (as the rest of this file, this makes bold
504# ASSUMPTIONS about VBPX_INST_XXX variable values).
505ifdef VBOX_WITH_DTRACE
506 SOLARIS_COMMON += \
507 $(addprefix dtrace/lib/$(KBUILD_TARGET_ARCH)/,$(VBOXINST_DTRACE_LIB_ARCH_FILES)) \
508 $(addprefix dtrace/testcase/$(KBUILD_TARGET_ARCH)/,$(VBOXINST_DTRACE_TESTCASE_ARCH_FILES)) \
509 $(addprefix dtrace/scripts/,$(VBOXINST_DTRACE_SCRIPTS_FILES))
510endif
511
512
513#
514# End of file lists.
515#
516
517
518
519include $(FILE_KBUILD_SUB_FOOTER)
520
521PATH_S10LIBS.x86 := $(sort $(wildcard $(PATH_DEVTOOLS)/solaris.x86/s10libs/v*))
522ifneq ($(PATH_S10LIBS.x86),)
523 PATH_S10LIBS.x86 := $(call lastword,$(PATH_S10LIBS.x86))
524endif
525PATH_S10LIBS.amd64 := $(sort $(wildcard $(PATH_DEVTOOLS)/solaris.amd64/s10libs/v*))
526ifneq ($(PATH_S10LIBS.amd64),)
527 PATH_S10LIBS.amd64 := $(call lastword,$(PATH_S10LIBS.amd64))
528endif
529
530#
531# Creates the System V style installer package.
532#
533solaris-package:: $(VBOX_PATH_SI_SCRATCH)/$(PKG_FILENAME).pkg
534$(VBOX_PATH_SI_SCRATCH)/$(PKG_FILENAME).pkg: \
535 $(VBOX_VERSION_STAMP) \
536 \
537 $(VBOX_PATH_INST_COMMON_SRC)/virtualbox.desktop.in \
538 $(VBOX_PATH_INST_COMMON_SRC)/virtualbox.xml \
539 $(VBOX_PATH_SOL_INST_SRC)/virtualbox.applications.in \
540 $(VBOX_PATH_SOL_INST_SRC)/vbox.pkginfo \
541 \
542 $(if-expr defined(VBOX_WITH_ADDITIONS_PACKING),$(PATH_STAGE_BIN)/additions/VBoxGuestAdditions.iso,) \
543 $(if-expr !defined(VBOX_OSE) && defined(VBOX_WITH_VBOXSDL), $(PATH_DEVTOOLS_TRG)/libsdl/v1.2.13/lib/libSDL-1.2.so.0.11.2,) \
544 \
545 $(if $(VBOX_OSE),,$(foreach arch, x86 amd64, $(foreach lib, libgcc_s.so.1 libstdc++.so.6, \
546 $(PATH_S10LIBS.$(arch))/$(lib)))) \
547 \
548 $(if $(VBOX_OSE),,$(foreach arch, amd64, $(foreach lib, libxcb.so.1 libX11-xcb.so.1 libX11.so.4 libGL.so, \
549 $(PATH_S10LIBS.$(arch))/$(lib)))) \
550 \
551 $(foreach var, $(SOLARIS_FILE_LIST_VARS),$(foreach file, $($(var)), $($(var).SRC)/$(file))) \
552 \
553 $(foreach size, $(VBOX_SI_ICON_SIZES), $(foreach type, $(VBOX_SI_ICON_TYPES) \
554 ,$(PATH_ROOT)/src/VBox/Artwork/other/virtualbox-$(type)-$(size)px.png)) \
555 \
556 $(VBOX_SI_DEP_ON_MAKEFILE) \
557 | $$(dir $$@)
558 $(call MSG_L1,Creating $(PKG_FILENAME).pkg: Copying files)
559# Start with a clean slate, don't want to pick up random garbage.
560 $(RM) -Rf -- "$(VBOX_PATH_SI_SCRATCH_PKG)/"
561 $(QUIET)$(RM) -f -- "$@"
562
563# Create all the directories we need. We specify each sub directory to make sure the mode is correct.
564 $(MKDIR) -p -m 0755 -- $(sort $(VBOX_PATH_SI_SCRATCH_PKG)/ \
565 $(VBOX_PATH_SI_SCRATCH_PKG)/opt/ \
566 $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/ \
567 $(if $(VBOX_OSE),,$(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/legacy/) \
568 $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/amd64/ \
569 $(if $(VBOX_OSE),,$(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/amd64/legacy/) \
570 $(VBOX_PATH_SI_SCRATCH_PKG)/platform/ \
571 $(VBOX_PATH_SI_SCRATCH_PKG)/platform/i86pc/ \
572 $(VBOX_PATH_SI_SCRATCH_PKG)/platform/i86pc/kernel/ \
573 $(VBOX_PATH_SI_SCRATCH_PKG)/platform/i86pc/kernel/drv/ \
574 $(VBOX_PATH_SI_SCRATCH_PKG)/usr/ \
575 $(VBOX_PATH_SI_SCRATCH_PKG)/usr/bin/ \
576 $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/ \
577 $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/applications/ \
578 $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/application-registry/ \
579 $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/icons/ \
580 $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/icons/hicolor/ \
581 $(foreach size, $(VBOX_SI_ICON_SIZES) \
582 ,$(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/icons/hicolor/$(size)x$(size)/ \
583 $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/icons/hicolor/$(size)x$(size)/mimetypes/) \
584 $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/mime/ \
585 $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/mime/packages/ \
586 $(VBOX_PATH_SI_SCRATCH_PKG)/var/ \
587 $(VBOX_PATH_SI_SCRATCH_PKG)/var/svc/ \
588 $(VBOX_PATH_SI_SCRATCH_PKG)/var/svc/manifest/ \
589 $(VBOX_PATH_SI_SCRATCH_PKG)/var/svc/manifest/application/ \
590 $(foreach var,$(SOLARIS_FILE_LIST_VARS), $($(var).DST)/) \
591 $(foreach var,$(SOLARIS_FILE_LIST_VARS),$(if-expr "$($(var).SUBDIRS)" == "yes",$(sort $(dir $(addprefix $($(var).DST)/,$($(var))))),)) \
592 )
593
594# Generic copy file lists.
595 $(foreach var, $(SOLARIS_FILE_LIST_VARS), $(foreach file, $($(var)) \
596 ,$(if-expr "$($(var).STRIP)" == "objcopy" && defined(VBOX_DO_STRIP)\
597 ,$(NLTAB)$(VBOX_SI_OBJCOPY_STRIP) "$($(var).SRC)/$(file)" "$($(var).DST)/$(file)" \
598 $(NLTAB)$(CHMOD) "$($(var).MODE)" "$($(var).DST)/$(file)" \
599 ,$(NLTAB)$(INSTALL) -m "$($(var).MODE)" $(if-expr "$($(var).STRIP)" == "yes" && defined(VBOX_DO_STRIP),-s,) \
600 "$($(var).SRC)/$(file)" "$($(var).DST)/$(file)")))
601
602# VirtualBox: Common files.
603 $(if-expr defined(VBOX_WITH_ADDITIONS_PACKING) \
604 ,$(INSTALL) -m 0644 $(PATH_STAGE_BIN)/additions/VBoxGuestAdditions.iso $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/,)
605 $(LN_SYMLINK) -f ./pkginstall.sh $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/ipsinstall.sh
606 $(SED) -e "s/_HARDENED_/$(if $(VBOX_WITH_HARDENED),hardened,)/" \
607 --output $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/vboxconfig.sh \
608 $(VBOX_PATH_SOL_INST_SRC)/vboxconfig.sh
609 $(CHMOD) 0755 $(VBOX_PATH_SOL_INST_SRC)/vboxconfig.sh
610 $(INSTALL) -m 0644 $(VBOX_PATH_SOL_INST_SRC)/vbox.pkgresponse $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/autoresponse
611
612# VirtualBox: Arch specific files.
613 $(if-expr defined(VBOX_WITH_QTGUI) \
614 ,$(NLTAB)$(LN_SYMLINK) ../rdesktop-vrdp-keymaps/ $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/$(VBOX_SI_ARCH)/rdesktop-vrdp-keymaps,)
615
616 $(if-expr defined(VBOX_WITH_ADDITIONS_PACKING) \
617 ,$(NLTAB)$(LN_SYMLINK) ../VBoxGuestAdditions.iso $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/$(VBOX_SI_ARCH)/,)
618
619 $(if-expr !defined(VBOX_OSE) && defined(VBOX_WITH_VBOXSDL) \
620 ,$(INSTALL) -s -m 0644 $(PATH_DEVTOOLS_TRG)/libsdl/v1.2.13/lib/libSDL-1.2.so.0.11.2 \
621 $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/$(VBOX_SI_ARCH)/libSDL-1.2.so.0,)
622
623 $(if $(VBOX_OSE),,$(foreach arch, x86 amd64, $(foreach lib, libgcc_s.so.1 libstdc++.so.6 \
624 ,$(NLTAB)$(INSTALL) -s -m 0644 $(PATH_S10LIBS.$(arch))/$(lib) \
625 $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/$(if-expr $(arch) == "amd64",amd64/,)legacy/$(lib))))
626
627 $(if $(VBOX_OSE),,$(foreach arch, amd64, $(foreach lib, libxcb.so.1 libX11-xcb.so.1 libX11.so.4 libGL.so \
628 ,$(NLTAB)$(INSTALL) -s -m 0644 $(PATH_S10LIBS.$(arch))/$(lib) \
629 $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/$(if-expr $(arch) == "amd64",amd64/,)legacy/$(lib))))
630
631 $(if-expr defined(VBOX_WITH_EFIFW_PACKING) \
632 ,$(LN_SYMLINK) ../VBoxEFI32.fd ../VBoxEFI64.fd $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/$(VBOX_SI_ARCH)/,)
633
634# Links to /usr/bin.
635 $(foreach link,$(SOLARIS_USRBIN_LINKS) \
636 ,$(NLTAB)$(LN_SYMLINK) ../../opt/VirtualBox/VBox.sh $(VBOX_PATH_SI_SCRATCH_PKG)/usr/bin/$(link))
637
638# Desktop stuff in /usr/share/applications/.
639 $(SED) -e "s+@VBOX_PRODUCT@+$(VBOX_PRODUCT)+" \
640 -e "s+@VBOX_DOC_PATH@+/opt/VirtualBox+" \
641 --output $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/applications/virtualbox.desktop \
642 $(VBOX_PATH_INST_COMMON_SRC)/virtualbox.desktop.in
643 $(CHMOD) 0644 $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/applications/virtualbox.desktop
644
645# Desktop stuff in /usr/share/mime/packages/ (S10 cannot deal with icon information in virtualbox.xml).
646 $(SED) -e '/<icon/d' \
647 --output $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/mime/packages/virtualbox.xml \
648 $(VBOX_PATH_INST_COMMON_SRC)/virtualbox.xml
649 $(CHMOD) 0644 $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/mime/packages/virtualbox.xml
650
651# Desktop stuff in /usr/share/application-registry.
652 $(SED) -e "s+@VBOX_PRODUCT@+$(VBOX_PRODUCT)+" \
653 --output $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/application-registry/virtualbox.applications \
654 $(VBOX_PATH_SOL_INST_SRC)/virtualbox.applications.in
655 $(CHMOD) 0644 $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/application-registry/virtualbox.applications
656
657# Icons stuff under /usr/share/icons/hicolor/<size>x<size>/mimetypes/.
658 $(foreach size, $(VBOX_SI_ICON_SIZES), $(foreach type, $(VBOX_SI_ICON_TYPES) \
659 ,$(NLTAB)$(INSTALL) -m 0644 \
660 $(PATH_ROOT)/src/VBox/Artwork/other/virtualbox-$(type)-$(size)px.png \
661 $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/icons/hicolor/$(size)x$(size)/mimetypes/virtualbox-$(type).png))
662
663# Files related to package creation.
664 $(SED) -e "s/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g" \
665 -e "s/@VBOX_VENDOR@/$(VBOX_VENDOR)/g" \
666 -e "s/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g" \
667 -e "s/@VBOX_SVN_REV@/$(VBOX_SVN_REV)/g" \
668 -e "s/@VBOX_VERSION_REVSTAMP@/$(PKGINFO_REVSTAMP)/g" \
669 -e "s/@UNAME_P@/$(PKGINFO_ARCH)/g" \
670 --output $(VBOX_PATH_SI_SCRATCH_PKG)/vbox.pkginfo \
671 $(VBOX_PATH_SOL_INST_SRC)/vbox.pkginfo
672 $(INSTALL) -m 0644 $(VBOX_PATH_SOL_INST_SRC)/vbox.pkgresponse $(VBOX_PATH_SI_SCRATCH_PKG)/autoresponse
673
674# Done copying file, create the package!
675 $(call MSG_L1,Creating install package: $(PKG_FILENAME).pkg)
676 $(REDIRECT) -C $(VBOX_PATH_SOL_INST_SRC) -- $(VBOX_PATH_SI_SCRATCH_PKG)/makepackage.sh \
677 $(if-expr defined(VBOX_WITH_HARDENING),--hardened,) \
678 $(VBOX_PATH_SI_SCRATCH_PKG) \
679 $(PKG_FILENAME) \
680 $(KBUILD_TARGET_ARCH) \
681 $(VBOX_SVN_REV)
682 $(MV) -- "$(VBOX_PATH_SI_SCRATCH_PKG)/$(PKG_FILENAME).pkg" "$@"
683 $(RM) -Rf -- "$(VBOX_PATH_SI_SCRATCH_PKG)/"
684
685
686#
687# Creates the tar file containing license, readme and autoresponse file in addition to the system V package.
688#
689solaris-package-tar-gz:: $(PATH_STAGE_BIN)/$(PKG_FILENAME).tar.gz
690$(PATH_STAGE_BIN)/$(PKG_FILENAME).tar.gz: \
691 $(VBOX_PATH_SI_SCRATCH)/$(PKG_FILENAME).pkg \
692 $(PATH_STAGE_BIN)/LICENSE \
693 $(VBOX_PATH_SOL_INST_SRC)/vbox.pkgresponse \
694 $(PATH_ROOT)/doc/ReadMe-Solaris.txt \
695 $(VBOX_SI_DEP_ON_MAKEFILE) \
696 | $(VBOX_PATH_SI_SCRATCH)/
697 $(call MSG_L1,Creating final tar.gz package: $(PKG_FILENAME).tar.gz)
698 $(QUIET)$(RM) -f -- $(VBOX_PATH_SI_SCRATCH)/ReadMe.txt "$@"
699 $(QUIET)$(SED) \
700 -e "s/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g" \
701 -e "s/@VBOX_VENDOR@/$(VBOX_VENDOR)/g" \
702 -e "s/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g" \
703 -e "s/@BUILD_TARGET_ARCH@/$(KBUILD_TARGET_ARCH)/g" \
704 -e "s/@VBOX_SVN_REV@/$(VBOX_SVN_REV)/g" \
705 --output $(VBOX_PATH_SI_SCRATCH)/ReadMe.txt \
706 $(PATH_ROOT)/doc/ReadMe-Solaris.txt
707 $(QUIET)$(VBOX_SI_GTAR) -C $(VBOX_PATH_SI_SCRATCH) -czvf "$@" --show-transformed-name \
708 --xform 's,^.*/,,g' --xform 's,vbox.pkgresponse,autoresponse,' \
709 $(VBOX_PATH_SI_SCRATCH)/ReadMe.txt \
710 $(PATH_STAGE_BIN)/LICENSE \
711 $(VBOX_PATH_SOL_INST_SRC)/vbox.pkgresponse \
712 $(VBOX_PATH_SI_SCRATCH)/$(PKG_FILENAME).pkg
713 $(QUIET)$(RM) -f -- $(VBOX_PATH_SI_SCRATCH)/ReadMe.txt
714 $(call MSG_L1,Packaging $@ is completed.)
715
716
717## List of file list variable names relevant for debug info.
718SOLARIS_FILE_LIST_DBGINFO_VARS := $(foreach var, $(SOLARIS_FILE_LIST_VARS), $(if-expr "$($(var).STRIP)" != "no",$(var),))
719## Adds a .DBGDST property to each of the debug info file lists. Simplifies our job below
720$(foreach var,$(SOLARIS_FILE_LIST_DBGINFO_VARS) \
721 ,$(eval $(var).DBGDST := $(subst $(VBOX_PATH_SI_SCRATCH_PKG)/,$(VBOX_PATH_SI_SCRATCH_DBG)/,$(subst /opt/VirtualBox,,$($(var).DST)))))
722
723#
724# Creates a tar file containing the debug info.
725#
726$(PATH_STAGE_BIN)/VirtualBoxDebug.tar.bz2: \
727 $(VBOX_VERSION_STAMP) \
728 $(VBOX_SI_DEP_ON_MAKEFILE) \
729 $(foreach var, $(SOLARIS_FILE_LIST_DBGINFO_VARS), $(foreach file, $($(var)), $($(var).SRC)/$(file)))
730 $(call MSG_L1,Preparing $@)
731 $(RM) -Rf -- "$(VBOX_PATH_SI_SCRATCH_DBG)/"
732 $(RM) -f -- "$@"
733 $(MKDIR) -p -m 0755 \
734 $(VBOX_PATH_SI_SCRATCH_DBG)/ \
735 $(sort $(foreach var, $(SOLARIS_FILE_LIST_DBGINFO_VARS), $($(var).DBGDST)/ $(if-expr "$($(var).SUBDIRS)" == "yes" \
736 ,$(sort $(dir $(foreach file, $($(var)), $($(var).DBGDST)/$(file)))),)))
737 $(foreach var, $(SOLARIS_FILE_LIST_DBGINFO_VARS),$(foreach file, $($(var)) \
738 ,$(NLTAB)$(VBOX_SI_OBJCOPY_DBGINFO) "$($(var).SRC)/$(file)" "$($(var).DBGDST)/$(file)"))
739 $(call MSG_L1,Packing $@)
740 $(QUIET)$(VBOX_SI_GTAR) --dereference --owner 0 --group 0 \
741 -cvjRhf "$@" -C "$(VBOX_PATH_SI_SCRATCH_DBG)/.." "./$(notdir $(VBOX_PATH_SI_SCRATCH_DBG))/"
742 $(QUIET)$(CHMOD) 0644 $@
743 $(call MSG_L1,Packaging $@ is completed.)
744 $(RM) -Rf "$(VBOX_PATH_SI_SCRATCH_DBG)/"
745
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