VirtualBox

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

Last change on this file since 96313 was 95622, checked in by vboxsync, 2 years ago

/Config.kmk,Installer/solaris,xpcom18a4/{Config.kmk,Makefile.kmk},tools/Makefile.kmk:
Remove the "legacy" Solaris 10 libraries (libstdc++.so.6, libxcb.so.1,
libgcc_s.so.1, libX11-xcb.so.1, libGL.so.1, libX11.so.4) added in r107933
and all vestiges of their presence in Makefiles and installation
scripts. These libraries were bundled in order to run VirtualBox on
Solaris 10 hosts since they are part of optional package clusters like
SUNWCuser which might not be installed so were packaged with VirtualBox
in a /legacy/ subdirectory under /opt/VirtualBox. Solaris 10 is no
longer supported as a host so these unused bits can go now.

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