VirtualBox

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

Last change on this file since 101177 was 99942, checked in by vboxsync, 19 months ago

Installer: Build fix for r157598; Remaining part.

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