VirtualBox

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

Last change on this file since 87039 was 87039, checked in by vboxsync, 4 years ago

Installer/solaris: Put the IPS package in the same directory as the SysV one. No point pretending that the IPS package is the final result, since it's entirely uncompressed (worse than the SysV one). bugref:5999

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

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