VirtualBox

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

Last change on this file since 92773 was 92773, checked in by vboxsync, 3 years ago

Installer/solaris: Fix makefile syntax issue introduced when trying to fix permissions.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 30.6 KB
Line 
1# $Id: Makefile.kmk 92773 2021-12-06 19:30:25Z 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 $(PATH_STAGE_BIN)/$(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_INSTALLER_LICENSE
217# List of files that are copied directly from INST_BIN to VBOX_PATH_SI_SCRATCH_PKG (/).
218# LICENSE is needed by IPS packaging only.
219SOLARIS_FILE_LIST_VARS += SOLARIS_INSTALLER_LICENSE
220SOLARIS_INSTALLER_LICENSE.SUBDIRS := no
221SOLARIS_INSTALLER_LICENSE.STRIP := no
222SOLARIS_INSTALLER_LICENSE.MODE := 0644
223SOLARIS_INSTALLER_LICENSE.SRC := $(PATH_STAGE_BIN)
224SOLARIS_INSTALLER_LICENSE.DST := $(VBOX_PATH_SI_SCRATCH_PKG)
225SOLARIS_INSTALLER_LICENSE = \
226 LICENSE
227
228## @def SOLARIS_DRIVER_BINS
229# List of kernel module files that are copied from INST_BIN to platform/i86pc/kernel/drv/[amd64/] and stripped of debug info.
230SOLARIS_FILE_LIST_VARS += SOLARIS_DRIVER_BINS
231SOLARIS_DRIVER_BINS.SUBDIRS := no
232SOLARIS_DRIVER_BINS.STRIP := no
233SOLARIS_DRIVER_BINS.MODE := 0644
234SOLARIS_DRIVER_BINS.SRC := $(PATH_STAGE_BIN)
235SOLARIS_DRIVER_BINS.DST := $(VBOX_PATH_SI_SCRATCH_PKG)/platform/i86pc/kernel/drv/$(subst x86,,$(KBUILD_TARGET_ARCH))
236SOLARIS_DRIVER_BINS = \
237 vboxdrv \
238 $(if $(VBOX_WITH_NETFLT),vboxflt,) \
239 $(if $(VBOX_WITH_NETFLT_CROSSBOW),vboxbow,) \
240 $(if $(VBOX_WITH_NETADP),vboxnet,) \
241 $(if $(VBOX_WITH_USB),vboxusbmon,) \
242 $(if $(VBOX_WITH_USB),vboxusb,)
243
244## @def SOLARIS_DRIVER_CONFS
245# List of kernel module configuration files that are copied directly from INST_BIN to platform/i86pc/kernel/drv/.
246SOLARIS_FILE_LIST_VARS += SOLARIS_DRIVER_CONFS
247SOLARIS_DRIVER_CONFS.SUBDIRS := no
248SOLARIS_DRIVER_CONFS.STRIP := no
249SOLARIS_DRIVER_CONFS.MODE := 0644
250SOLARIS_DRIVER_CONFS.SRC := $(PATH_STAGE_BIN)
251SOLARIS_DRIVER_CONFS.DST := $(VBOX_PATH_SI_SCRATCH_PKG)/platform/i86pc/kernel/drv
252SOLARIS_DRIVER_CONFS = \
253 vboxdrv.conf \
254 $(if $(VBOX_WITH_NETFLT),vboxflt.conf,) \
255 $(if $(VBOX_WITH_NETFLT_CROSSBOW),vboxbow.conf,) \
256 $(if $(VBOX_WITH_NETADP),vboxnet.conf,) \
257 $(if $(VBOX_WITH_USB),vboxusbmon.conf,) \
258 $(if $(VBOX_WITH_USB),vboxusb.conf,)
259
260## @def SOLARIS_COMMON
261# List of files that are copied directly from INST_BIN to /opt/VirtualBox/.
262SOLARIS_FILE_LIST_VARS += SOLARIS_COMMON
263SOLARIS_COMMON.SUBDIRS := yes
264SOLARIS_COMMON.STRIP := no
265SOLARIS_COMMON.MODE := 0644
266SOLARIS_COMMON.SRC := $(PATH_STAGE_BIN)
267SOLARIS_COMMON.DST := $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox
268SOLARIS_COMMON = \
269 LICENSE
270
271## @def SOLARIS_COMMON_EXES
272# List of executable script (and VBoxISAExec) files that are copied directly from INST_BIN to /opt/VirtualBox/.
273SOLARIS_FILE_LIST_VARS += SOLARIS_COMMON_EXES
274SOLARIS_COMMON_EXES.SUBDIRS := no
275SOLARIS_COMMON_EXES.STRIP := no
276SOLARIS_COMMON_EXES.MODE := 0755
277SOLARIS_COMMON_EXES.SRC := $(PATH_STAGE_BIN)
278SOLARIS_COMMON_EXES.DST := $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox
279SOLARIS_COMMON_EXES = \
280 VBoxISAExec
281
282## @def SOLARIS_COMMON_BINS
283# List of INST_BIN shared libraries that should be copied into /opt/VirtualBox/ and stripped.
284SOLARIS_FILE_LIST_VARS += SOLARIS_COMMON_STRIP_BINS
285SOLARIS_COMMON_STRIP_BINS.SUBDIRS := yes
286SOLARIS_COMMON_STRIP_BINS.STRIP := yes
287SOLARIS_COMMON_STRIP_BINS.MODE := 0644
288SOLARIS_COMMON_STRIP_BINS.SRC := $(PATH_STAGE_BIN)
289SOLARIS_COMMON_STRIP_BINS.DST := $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/
290SOLARIS_COMMON_STRIP_BINS =
291
292## @def SOLARIS_COMMON_64_STRIP_BINS
293# List of INST_BIN shared libraries that should be copied into /opt/VirtualBox/64/ and stripped.
294SOLARIS_FILE_LIST_VARS += SOLARIS_COMMON_64_STRIP_BINS
295SOLARIS_COMMON_64_STRIP_BINS.SUBDIRS := yes
296SOLARIS_COMMON_64_STRIP_BINS.STRIP := yes
297SOLARIS_COMMON_64_STRIP_BINS.MODE := 0644
298SOLARIS_COMMON_64_STRIP_BINS.SRC := $(PATH_STAGE_BIN)
299SOLARIS_COMMON_64_STRIP_BINS.DST := $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/64
300SOLARIS_COMMON_64_STRIP_BINS =
301
302
303## @def SOLARIS_STRIP_EXES
304# List of exectuables files that are copied from INST_BIN to /opt/VirtualBox/$(VBOX_SI_ARCH)/ and stripped of debug info.
305SOLARIS_FILE_LIST_VARS += SOLARIS_STRIP_EXES
306SOLARIS_STRIP_EXES.SUBDIRS := no
307SOLARIS_STRIP_EXES.STRIP := yes
308SOLARIS_STRIP_EXES.MODE := 0755
309SOLARIS_STRIP_EXES.SRC := $(PATH_STAGE_BIN)
310SOLARIS_STRIP_EXES.DST := $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/$(VBOX_SI_ARCH)
311SOLARIS_STRIP_EXES = \
312 VBoxZoneAccess \
313 $(if $(VBOX_WITH_QTGUI),VirtualBox VirtualBoxVM,) \
314 VBoxManage \
315 $(if $(VBOX_WITH_VBOXSDL),VBoxSDL,) \
316 $(if $(VBOX_WITH_NETADP),VBoxNetAdpCtl,) \
317 VBoxNetDHCP \
318 VBoxNetNAT \
319 $(if $(VBOX_WITH_EXTPACK),VBoxExtPackHelperApp,) \
320 VBoxSVC \
321 $(if $(VBOX_WITH_VMSVGA3D), VBoxTestOGL,) \
322 VBoxXPCOMIPCD \
323 $(if $(VBOX_WITH_KCHMVIEWER),kchmviewer,) \
324 $(if $(VBOX_WITH_DTRACE),VBoxDTrace,) \
325 $(if $(VBOX_WITH_HOST_SHIPPING_AUDIO_TEST),VBoxAudioTest,)
326
327## @def SOLARIS_STRIP_BINS
328# List of shared libraries that are copied from INST_BIN to /opt/VirtualBox/$(VBOX_SI_ARCH)/ and stripped of debug info.
329SOLARIS_FILE_LIST_VARS += SOLARIS_STRIP_BINS
330SOLARIS_STRIP_BINS.SUBDIRS := yes
331SOLARIS_STRIP_BINS.STRIP := yes
332SOLARIS_STRIP_BINS.MODE := 0644
333SOLARIS_STRIP_BINS.SRC := $(PATH_STAGE_BIN)
334SOLARIS_STRIP_BINS.DST := $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/$(VBOX_SI_ARCH)
335SOLARIS_STRIP_BINS = \
336 VBoxDD.so \
337 VBoxDD2.so \
338 VBoxRT.so \
339 VBoxDDU.so \
340 VBoxVMM.so \
341 VBoxXPCOM.so \
342 VBoxXPCOMC.so \
343 $(if $(VBOX_WITH_SHARED_FOLDERS),VBoxSharedFolders.so,) \
344 $(if $(VBOX_WITH_SHARED_CLIPBOARD),VBoxSharedClipboard.so,) \
345 $(if $(VBOX_WITH_DRAG_AND_DROP),VBoxDragAndDropSvc.so,) \
346 $(if $(VBOX_WITH_GUEST_PROPS),VBoxGuestPropSvc.so,) \
347 $(if $(VBOX_WITH_GUEST_CONTROL),VBoxGuestControlSvc.so,) \
348 VBoxHostChannel.so \
349 $(if $(VBOX_WITH_JXPCOM),libvboxjxpcom.so,) \
350 $(if $(VBOX_WITH_QTGUI),\
351 VBoxKeyboard.so) \
352 $(if $(VBOX_WITH_DEBUGGER_GUI),VBoxDbg.so DbgPlugInDiggers.so,) \
353 components/VBoxC.so \
354 components/VBoxSVCM.so \
355 components/VBoxXPCOMIPCC.so
356
357ifdef VBOX_WITH_QTGUI
358 ifdef VBOX_WITH_ORACLE_QT
359 SOLARIS_STRIP_BINS += \
360 $(notdir $(wildcard $(PATH_STAGE_BIN)/lib*VBox*)) \
361 $(VBOX_QT_PLUGINS)
362 endif
363endif #VBOX_WITH_QTGUI
364
365ifdef VBOX_WITH_32_ON_64_MAIN_API
366 SOLARIS_STRIP_BINS += \
367 VBoxRT-x86.so \
368 VBoxXPCOM-x86.so \
369 components/VBoxClient-x86.so \
370 components/VBoxSVCM-x86.so \
371 components/VBoxXPCOMIPCC-x86.so
372endif
373ifdef VBOX_WITH_HARDENING
374 SOLARIS_STRIP_BINS += \
375 VBoxNetDHCP.so \
376 VBoxNetNAT.so \
377 $(if $(VBOX_WITH_VBOXSDL),VBoxSDL.so,) \
378 $(if $(VBOX_WITH_QTGUI),VirtualBoxVM.so UICommon.so,)
379endif
380
381## @def SOLARIS_STRIP_OBJS
382# List of relocable object files to be copied from INST_BIN to /opt/VirtualBox/$(VBOX_SI_ARCH)/ and carefully
383# stripped of debug info but not relocation information. These are the ring-0 and raw-mode context modules.
384SOLARIS_FILE_LIST_VARS += SOLARIS_STRIP_OBJS
385SOLARIS_STRIP_OBJS.SUBDIRS := no
386SOLARIS_STRIP_OBJS.STRIP := objcopy
387SOLARIS_STRIP_OBJS.MODE := 0644
388SOLARIS_STRIP_OBJS.SRC := $(PATH_STAGE_BIN)
389SOLARIS_STRIP_OBJS.DST := $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/$(VBOX_SI_ARCH)
390SOLARIS_STRIP_OBJS = \
391 VBoxDDR0.r0 \
392 VMMR0.r0
393ifdef VBOX_WITH_RAW_MODE
394SOLARIS_STRIP_OBJS += \
395 VBoxDDRC.rc \
396 VMMRC.rc
397endif
398
399## @def SOLARIS_NO_STRIP
400# List of data files that should be copied from INST_BIN to /opt/VirtualBox/$(VBOX_SI_ARCH)/.
401SOLARIS_FILE_LIST_VARS += SOLARIS_NO_STRIP
402SOLARIS_NO_STRIP.SUBDIRS := yes
403SOLARIS_NO_STRIP.STRIP := no
404SOLARIS_NO_STRIP.MODE := 0644
405SOLARIS_NO_STRIP.SRC := $(PATH_STAGE_BIN)
406SOLARIS_NO_STRIP.DST := $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/$(VBOX_SI_ARCH)
407SOLARIS_NO_STRIP = \
408 components/VBoxXPCOMBase.xpt \
409 components/VirtualBox_XPCOM.xpt \
410 $(if $(and $(VBOX_LICENSE_FILES),$(VBOX_WITH_QTGUI)),$(VBOX_LICENSE_FILES))
411
412## @def SOLARIS_USRBIN_LINKS
413# List of links to create in /usr/bin to /opt/VirtualBox/VBox.sh.
414# Naturally no subdirectories.
415SOLARIS_USRBIN_LINKS = \
416 $(if $(VBOX_WITH_QTGUI),VirtualBox VirtualBoxVM,) \
417 $(if $(VBOX_WITH_HEADLESS),VBoxHeadless,) \
418 $(if $(VBOX_WITH_VBOXSDL),VBoxSDL,) \
419 VBoxManage \
420 $(if $(VBOX_WITH_DTRACE),VBoxDTrace,) \
421 $(if $(VBOX_WITH_HOST_SHIPPING_AUDIO_TEST),VBoxAudioTest,)
422
423SOLARIS_COMMON_EXES += \
424 vboxconfig.sh \
425 VBox.sh \
426 pkginstall.sh \
427 smf-vboxballoonctrl.sh \
428 smf-vboxautostart.sh \
429 $(if $(VBOX_WITH_WEBSERVICES),smf-vboxwebsrv.sh,)
430
431
432# Documentation (packed as DOCS as they are arch. neutral)
433ifdef VBOX_WITH_DOCS_PACKING
434 SOLARIS_COMMON += \
435 $(if-expr defined(VBOX_WITH_DOCS_CHM_PACKING),VirtualBox.chm,) \
436 $(if-expr defined(VBOX_WITH_DOCS_QHELP_PACKING),UserManual.qch UserManual.qhc,) \
437 UserManual.pdf \
438 $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES), \
439 $(if-expr defined(VBOX_WITH_DOCS_CHM_PACKING),VirtualBox_$(f).chm,) \
440 $(if-expr defined(VBOX_WITH_DOCS_QHELP_PACKING),UserManual_$(f).qch UserManual_$(f).qhc,) \
441 UserManual_$(f).pdf)
442endif
443
444# Python XPCOM glue
445ifdef VBOX_WITH_PYTHON
446 SOLARIS_COMMON += \
447 $(VBOXINST_SDK_BINDINGS_XPCOM_PYTHON_FILES) \
448 $(VBOXINST_SDK_INSTALLER_PYTHON_FILES)
449 ifeq ($(KBUILD_TARGET_ARCH),amd64)
450 SOLARIS_PYTHON_32_ON_64_BINS = $(notdir $(wildcard $(PATH_STAGE_BIN)/VBoxPython*_x86.so))
451 ifdef VBOX_WITH_32_ON_64_MAIN_API
452 SOLARIS_COMMON_STRIP_BINS += $(SOLARIS_PYTHON_32_ON_64_BINS)
453 endif
454 SOLARIS_COMMON_64_STRIP_BINS += $(filter-out $(SOLARIS_PYTHON_32_ON_64_BINS), $(notdir $(wildcard $(PATH_STAGE_BIN)/VBoxPython*.so)))
455 else
456 SOLARIS_COMMON_STRIP_BINS += $(notdir $(wildcard $(PATH_STAGE_BIN)/VBoxPython*.so)))
457 endif
458endif
459
460ifdef VBOX_WITH_JXPCOM
461 SOLARIS_COMMON += \
462 sdk/bindings/xpcom/java/vboxjxpcom.jar
463endif
464
465# auth stuff
466SOLARIS_STRIP_BINS += \
467 VBoxAuth.so \
468 VBoxAuthSimple.so
469
470# VRDP
471ifdef VBOX_WITH_VRDP
472 ifndef VBOX_WITH_EXTPACK_PUEL
473 SOLARIS_STRIP_BINS += \
474 VBoxVRDP.so
475 endif
476 SOLARIS_COMMON += \
477 rdesktop-vrdp.tar.gz
478 ifdef VBOX_WITH_VRDP_RDESKTOP
479 SOLARIS_COMMON += $(addprefix rdesktop-vrdp-keymaps/,$(notdir $(wildcard $(PATH_STAGE_BIN)/rdesktop-vrdp-keymaps/*)))
480 SOLARIS_STRIP_EXES += \
481 rdesktop-vrdp
482 endif
483endif
484
485SOLARIS_STRIP_BINS += \
486 $(if $(and $(VBOX_WITH_HARDENING),$(VBOX_WITH_HEADLESS)),VBoxHeadless.so,)
487
488SOLARIS_STRIP_EXES += \
489 $(if $(VBOX_WITH_HEADLESS),VBoxHeadless) \
490 VBoxBugReport \
491 VBoxBalloonCtrl \
492 VBoxAutostart \
493 $(if $(VBOX_WITH_WEBSERVICES),vboxwebsrv) \
494 $(if $(VBOX_WITH_VBOX_IMG)$(VBOX_WITH_TESTCASES),vbox-img)
495
496# Guest Additions
497ifdef VBOX_WITH_ADDITIONS_PACKING
498# SOLARIS_COMMON += \
499# additions/VBoxGuestAdditions.iso
500endif
501
502
503# EFI firmware
504ifdef VBOX_WITH_EFIFW_PACKING
505 SOLARIS_COMMON += \
506 VBoxEFI32.fd \
507 VBoxEFI64.fd
508endif
509
510# Unattended installation template scripts.
511ifdef VBOX_UNATTENDED_TEMPLATES
512 SOLARIS_COMMON += $(addprefix UnattendedTemplates/,$(VBOX_UNATTENDED_TEMPLATES))
513endif
514
515# DTrace library, testcase and scripts (as the rest of this file, this makes bold
516# ASSUMPTIONS about VBPX_INST_XXX variable values).
517ifdef VBOX_WITH_DTRACE
518 SOLARIS_COMMON += \
519 $(addprefix dtrace/lib/$(KBUILD_TARGET_ARCH)/,$(VBOXINST_DTRACE_LIB_ARCH_FILES)) \
520 $(addprefix dtrace/testcase/$(KBUILD_TARGET_ARCH)/,$(VBOXINST_DTRACE_TESTCASE_ARCH_FILES)) \
521 $(addprefix dtrace/scripts/,$(VBOXINST_DTRACE_SCRIPTS_FILES))
522endif
523
524
525#
526# End of file lists.
527#
528
529
530
531include $(FILE_KBUILD_SUB_FOOTER)
532
533PATH_S10LIBS.x86 := $(sort $(wildcard $(KBUILD_DEVTOOLS)/solaris.x86/s10libs/v*))
534ifneq ($(PATH_S10LIBS.x86),)
535 PATH_S10LIBS.x86 := $(call lastword,$(PATH_S10LIBS.x86))
536endif
537PATH_S10LIBS.amd64 := $(sort $(wildcard $(KBUILD_DEVTOOLS)/solaris.amd64/s10libs/v*))
538ifneq ($(PATH_S10LIBS.amd64),)
539 PATH_S10LIBS.amd64 := $(call lastword,$(PATH_S10LIBS.amd64))
540endif
541
542#
543# Copy all files needed for packaging into the final directory structure
544#
545$(VBOX_PATH_SI_SCRATCH)/dist-copy.ts: \
546 $(VBOX_VERSION_STAMP) \
547 \
548 $(VBOX_PATH_INST_COMMON_SRC)/virtualbox.desktop.in \
549 $(VBOX_PATH_INST_COMMON_SRC)/virtualboxvm.desktop.in \
550 $(VBOX_PATH_INST_COMMON_SRC)/virtualbox.xml \
551 $(VBOX_PATH_SOL_INST_SRC)/virtualbox.applications.in \
552 $(VBOX_PATH_SOL_INST_SRC)/vbox.pkginfo \
553 $(VBOX_PATH_SOL_INST_SRC)/vbox-ips.mog \
554 \
555 $(if-expr defined(VBOX_WITH_ADDITIONS_PACKING),$(PATH_STAGE_BIN)/additions/VBoxGuestAdditions.iso,) \
556 $(if-expr !defined(VBOX_OSE) && defined(VBOX_WITH_VBOXSDL), $(KBUILD_DEVTOOLS_TRG)/libsdl/v1.2.13/lib/libSDL-1.2.so.0.11.2,) \
557 \
558 $(if $(VBOX_OSE),,$(foreach arch, x86 amd64, $(foreach lib, libgcc_s.so.1 libstdc++.so.6, \
559 $(PATH_S10LIBS.$(arch))/$(lib)))) \
560 \
561 $(if $(VBOX_OSE),,$(foreach arch, amd64, $(foreach lib, libxcb.so.1 libX11-xcb.so.1 libX11.so.4 libGL.so, \
562 $(PATH_S10LIBS.$(arch))/$(lib)))) \
563 \
564 $(foreach var, $(SOLARIS_FILE_LIST_VARS),$(foreach file, $($(var)), $($(var).SRC)/$(file))) \
565 \
566 $(foreach size, $(VBOX_SI_ICON_SIZES), $(foreach type, $(VBOX_SI_ICON_TYPES) \
567 ,$(PATH_ROOT)/src/VBox/Artwork/other/virtualbox-$(type)-$(size)px.png)) \
568 \
569 $(VBOX_SI_DEP_ON_MAKEFILE) \
570 | $$(dir $$@)
571 $(call MSG_L1,Copying files to package staging area)
572# Start with a clean slate, don't want to pick up random garbage.
573 $(RM) -Rf -- "$(VBOX_PATH_SI_SCRATCH_PKG)/"
574 $(QUIET)$(RM) -f -- "$@"
575
576# Create all the directories we need. We specify each sub directory to make sure the mode is correct.
577 $(MKDIR) -p -m 0755 -- $(sort $(VBOX_PATH_SI_SCRATCH_PKG)/ \
578 $(VBOX_PATH_SI_SCRATCH_PKG)/opt/ \
579 $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/ \
580 $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/amd64/ \
581 $(VBOX_PATH_SI_SCRATCH_PKG)/platform/ \
582 $(VBOX_PATH_SI_SCRATCH_PKG)/platform/i86pc/ \
583 $(VBOX_PATH_SI_SCRATCH_PKG)/platform/i86pc/kernel/ \
584 $(VBOX_PATH_SI_SCRATCH_PKG)/platform/i86pc/kernel/drv/ \
585 $(VBOX_PATH_SI_SCRATCH_PKG)/usr/ \
586 $(VBOX_PATH_SI_SCRATCH_PKG)/usr/bin/ \
587 $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/ \
588 $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/applications/ \
589 $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/application-registry/ \
590 $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/icons/ \
591 $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/icons/hicolor/ \
592 $(foreach size, $(VBOX_SI_ICON_SIZES) \
593 ,$(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/icons/hicolor/$(size)x$(size)/ \
594 $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/icons/hicolor/$(size)x$(size)/mimetypes/) \
595 $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/mime/ \
596 $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/mime/packages/ \
597 $(VBOX_PATH_SI_SCRATCH_PKG)/var/ \
598 $(VBOX_PATH_SI_SCRATCH_PKG)/var/svc/ \
599 $(VBOX_PATH_SI_SCRATCH_PKG)/var/svc/manifest/ \
600 $(VBOX_PATH_SI_SCRATCH_PKG)/var/svc/manifest/application/ \
601 $(foreach var,$(SOLARIS_FILE_LIST_VARS), $($(var).DST)/) \
602 $(foreach var,$(SOLARIS_FILE_LIST_VARS),$(if-expr "$($(var).SUBDIRS)" == "yes",$(sort $(dir $(addprefix $($(var).DST)/,$($(var))))),)) \
603 )
604
605# Generic copy file lists.
606 $(foreach var, $(SOLARIS_FILE_LIST_VARS), $(foreach file, $($(var)) \
607 ,$(if-expr "$($(var).STRIP)" == "objcopy" && defined(VBOX_DO_STRIP)\
608 ,$(NLTAB)$(VBOX_SI_OBJCOPY_STRIP) "$($(var).SRC)/$(file)" "$($(var).DST)/$(file)" \
609 $(NLTAB)$(CHMOD) "$($(var).MODE)" "$($(var).DST)/$(file)" \
610 ,$(NLTAB)$(INSTALL) -m "$($(var).MODE)" $(if-expr "$($(var).STRIP)" == "yes" && defined(VBOX_DO_STRIP),-s,) \
611 "$($(var).SRC)/$(file)" "$($(var).DST)/$(file)")))
612
613# VirtualBox: Common files.
614 $(if-expr defined(VBOX_WITH_ADDITIONS_PACKING) \
615 ,$(INSTALL) -m 0644 $(PATH_STAGE_BIN)/additions/VBoxGuestAdditions.iso $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/,)
616 $(LN_SYMLINK) -f ./pkginstall.sh $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/ipsinstall.sh
617 $(SED) -e "s/_HARDENED_/$(if $(VBOX_WITH_HARDENED),hardened,)/" \
618 --output $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/vboxconfig.sh \
619 $(VBOX_PATH_SOL_INST_SRC)/vboxconfig.sh
620 $(CHMOD) 0755 $(VBOX_PATH_SOL_INST_SRC)/vboxconfig.sh
621 $(INSTALL) -m 0644 $(VBOX_PATH_SOL_INST_SRC)/vbox.pkgresponse $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/autoresponse
622 $(if-expr defined(VBOX_WITH_PYTHON) \
623 ,$(SED) -e "s@^#!.*@#!/usr/bin/python2.7@" \
624 --output $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/vboxshell.py \
625 $(PATH_STAGE_BIN)/vboxshell.py \
626 $(NLTAB)$(CHMOD) 0755 $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/vboxshell.py,)
627
628# VirtualBox: Arch specific files.
629 $(if-expr defined(VBOX_WITH_QTGUI) \
630 ,$(NLTAB)$(LN_SYMLINK) ../rdesktop-vrdp-keymaps/ $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/$(VBOX_SI_ARCH)/rdesktop-vrdp-keymaps,)
631
632 $(if-expr defined(VBOX_WITH_ADDITIONS_PACKING) \
633 ,$(NLTAB)$(LN_SYMLINK) ../VBoxGuestAdditions.iso $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/$(VBOX_SI_ARCH)/,)
634
635 $(if-expr !defined(VBOX_OSE) && defined(VBOX_WITH_VBOXSDL) \
636 ,$(INSTALL) -s -m 0644 $(KBUILD_DEVTOOLS_TRG)/libsdl/v1.2.13/lib/libSDL-1.2.so.0.11.2 \
637 $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/$(VBOX_SI_ARCH)/libSDL-1.2.so.0,)
638
639 $(if-expr defined(VBOX_WITH_EFIFW_PACKING) \
640 ,$(LN_SYMLINK) ../VBoxEFI32.fd ../VBoxEFI64.fd $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/$(VBOX_SI_ARCH)/,)
641
642# Links to /usr/bin.
643 $(foreach link,$(SOLARIS_USRBIN_LINKS) \
644 ,$(NLTAB)$(LN_SYMLINK) ../../opt/VirtualBox/VBox.sh $(VBOX_PATH_SI_SCRATCH_PKG)/usr/bin/$(link))
645
646# Desktop stuff in /usr/share/applications/.
647 $(SED) -e "s+@VBOX_PRODUCT@+$(VBOX_PRODUCT)+" \
648 --output $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/applications/virtualbox.desktop \
649 $(VBOX_PATH_INST_COMMON_SRC)/virtualbox.desktop.in
650 $(CHMOD) 0644 $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/applications/virtualbox.desktop
651
652 $(SED) -e "s+@VBOX_PRODUCT@+$(VBOX_PRODUCT)+" \
653 --output $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/applications/virtualboxvm.desktop \
654 $(VBOX_PATH_INST_COMMON_SRC)/virtualboxvm.desktop.in
655 $(CHMOD) 0644 $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/applications/virtualboxvm.desktop
656
657# Desktop stuff in /usr/share/mime/packages/ (S10 cannot deal with icon information in virtualbox.xml).
658 $(SED) -e '/<icon/d' \
659 --output $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/mime/packages/virtualbox.xml \
660 $(VBOX_PATH_INST_COMMON_SRC)/virtualbox.xml
661 $(CHMOD) 0644 $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/mime/packages/virtualbox.xml
662
663# Desktop stuff in /usr/share/application-registry.
664 $(SED) -e "s+@VBOX_PRODUCT@+$(VBOX_PRODUCT)+" \
665 --output $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/application-registry/virtualbox.applications \
666 $(VBOX_PATH_SOL_INST_SRC)/virtualbox.applications.in
667 $(CHMOD) 0644 $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/application-registry/virtualbox.applications
668
669# Icons stuff under /usr/share/icons/hicolor/<size>x<size>/mimetypes/.
670 $(foreach size, $(VBOX_SI_ICON_SIZES), $(foreach type, $(VBOX_SI_ICON_TYPES) \
671 ,$(NLTAB)$(INSTALL) -m 0644 \
672 $(PATH_ROOT)/src/VBox/Artwork/other/virtualbox-$(type)-$(size)px.png \
673 $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/icons/hicolor/$(size)x$(size)/mimetypes/virtualbox-$(type).png))
674
675# Files related to package creation.
676 $(SED) -e "s/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g" \
677 -e "s/@VBOX_VENDOR@/$(VBOX_VENDOR)/g" \
678 -e "s/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g" \
679 -e "s/@VBOX_VERSION_REVSTAMP@/$(PKGINFO_REVSTAMP)/g" \
680 -e "s/@UNAME_P@/$(PKGINFO_ARCH)/g" \
681 -e "s/@VBOX_PSTAMP@/$(PKGINFO_PSTAMP)/g" \
682 --output $(VBOX_PATH_SI_SCRATCH_PKG)/vbox.pkginfo \
683 $(VBOX_PATH_SOL_INST_SRC)/vbox.pkginfo
684 $(SED) -e "s/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g" \
685 -e "s/@VBOX_VENDOR@/$(VBOX_VENDOR)/g" \
686 -e "s/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g" \
687 -e "s/@VBOX_SVN_REV@/$(VBOX_SVN_REV)/g" \
688 -e "s/@UNAME_P@/$(PKGINFO_ARCH)/g" \
689 --output $(VBOX_PATH_SI_SCRATCH_PKG)/vbox-ips.mog \
690 $(VBOX_PATH_SOL_INST_SRC)/vbox-ips.mog
691 $(APPEND) -t $@ "done"
692
693#
694# Creates the System V style installer package.
695#
696solaris-package:: $(VBOX_PATH_SI_SCRATCH)/$(PKG_FILENAME).pkg
697$(VBOX_PATH_SI_SCRATCH)/$(PKG_FILENAME).pkg: \
698 $(VBOX_PATH_SI_SCRATCH)/dist-copy.ts \
699 $(VBOX_SI_DEP_ON_MAKEFILE) \
700 | $$(dir $$@)
701 $(call MSG_L1,Creating install package: $(PKG_FILENAME).pkg)
702 $(VBOX_PATH_SI_SCRATCH_PKG)/makepackage.sh \
703 $(if-expr defined(VBOX_WITH_HARDENING),--hardened,) \
704 $(VBOX_PATH_SI_SCRATCH_PKG) \
705 $(PKG_FILENAME) \
706 $(KBUILD_TARGET_ARCH) \
707 $(VBOX_SVN_REV)
708 $(MV) -- "$(VBOX_PATH_SI_SCRATCH_PKG)/$(PKG_FILENAME).pkg" "$@"
709
710#
711# Creates the tar file containing license, readme and autoresponse file in addition to the System V package.
712#
713solaris-package-tar-gz:: $(PATH_STAGE_BIN)/$(PKG_FILENAME).tar.gz
714$(PATH_STAGE_BIN)/$(PKG_FILENAME).tar.gz: \
715 $(VBOX_PATH_SI_SCRATCH)/$(PKG_FILENAME).pkg \
716 $(PATH_STAGE_BIN)/LICENSE \
717 $(VBOX_PATH_SOL_INST_SRC)/vbox.pkgresponse \
718 $(PATH_ROOT)/doc/ReadMe-Solaris.txt \
719 $(VBOX_SI_DEP_ON_MAKEFILE) \
720 | $(VBOX_PATH_SI_SCRATCH)/
721 $(call MSG_L1,Creating final tar.gz package: $(PKG_FILENAME).tar.gz)
722 $(QUIET)$(RM) -f -- $(VBOX_PATH_SI_SCRATCH)/ReadMe.txt "$@"
723 $(QUIET)$(SED) \
724 -e "s/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g" \
725 -e "s/@VBOX_VENDOR@/$(VBOX_VENDOR)/g" \
726 -e "s/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g" \
727 -e "s/@KBUILD_TARGET_ARCH@/$(KBUILD_TARGET_ARCH)/g" \
728 -e "s/@VBOX_SVN_REV@/$(VBOX_SVN_REV)/g" \
729 --output $(VBOX_PATH_SI_SCRATCH)/ReadMe.txt \
730 $(PATH_ROOT)/doc/ReadMe-Solaris.txt
731 $(QUIET)$(VBOX_SI_GTAR) -C $(VBOX_PATH_SI_SCRATCH) -czvf "$@" --show-transformed-name \
732 --xform 's,^.*/,,g' --xform 's,vbox.pkgresponse,autoresponse,' \
733 $(VBOX_PATH_SI_SCRATCH)/ReadMe.txt \
734 $(PATH_STAGE_BIN)/LICENSE \
735 $(VBOX_PATH_SOL_INST_SRC)/vbox.pkgresponse \
736 $(VBOX_PATH_SI_SCRATCH)/$(PKG_FILENAME).pkg
737 $(QUIET)$(RM) -f -- $(VBOX_PATH_SI_SCRATCH)/ReadMe.txt
738 $(call MSG_L1,Packaging $@ is completed.)
739
740#
741# Creates the IPS style installer package.
742#
743solaris-package-ips:: $(PATH_STAGE_BIN)/$(PKG_FILENAME).p5p
744$(PATH_STAGE_BIN)/$(PKG_FILENAME).p5p: \
745 $(VBOX_PATH_SI_SCRATCH)/dist-copy.ts \
746 $(VBOX_SI_DEP_ON_MAKEFILE) \
747 | $$(dir $$@)
748 $(call MSG_L1,Creating install package: $(PKG_FILENAME).p5p)
749 $(VBOX_PATH_SI_SCRATCH_PKG)/makepackage.sh \
750 --ips \
751 $(if-expr defined(VBOX_WITH_HARDENING),--hardened,) \
752 $(VBOX_PATH_SI_SCRATCH_PKG) \
753 $(PKG_FILENAME) \
754 $(KBUILD_TARGET_ARCH) \
755 $(VBOX_SVN_REV)
756 $(MV) -- "$(VBOX_PATH_SI_SCRATCH_PKG)/$(PKG_FILENAME).p5p" "$@"
757
758
759## List of file list variable names relevant for debug info.
760SOLARIS_FILE_LIST_DBGINFO_VARS := $(foreach var, $(SOLARIS_FILE_LIST_VARS), $(if-expr "$($(var).STRIP)" != "no",$(var),))
761## Adds a .DBGDST property to each of the debug info file lists. Simplifies our job below
762$(foreach var,$(SOLARIS_FILE_LIST_DBGINFO_VARS) \
763 ,$(eval $(var).DBGDST := $(subst $(VBOX_PATH_SI_SCRATCH_PKG)/,$(VBOX_PATH_SI_SCRATCH_DBG)/,$(subst /opt/VirtualBox,,$($(var).DST)))))
764
765#
766# Creates a tar file containing the debug info.
767#
768$(PATH_STAGE_BIN)/VirtualBoxDebug.tar.bz2: \
769 $(VBOX_VERSION_STAMP) \
770 $(VBOX_SI_DEP_ON_MAKEFILE) \
771 $(foreach var, $(SOLARIS_FILE_LIST_DBGINFO_VARS), $(foreach file, $($(var)), $($(var).SRC)/$(file)))
772 $(call MSG_L1,Preparing $@)
773 $(RM) -Rf -- "$(VBOX_PATH_SI_SCRATCH_DBG)/"
774 $(RM) -f -- "$@"
775 $(MKDIR) -p -m 0755 \
776 $(VBOX_PATH_SI_SCRATCH_DBG)/ \
777 $(sort $(foreach var, $(SOLARIS_FILE_LIST_DBGINFO_VARS), $($(var).DBGDST)/ $(if-expr "$($(var).SUBDIRS)" == "yes" \
778 ,$(sort $(dir $(foreach file, $($(var)), $($(var).DBGDST)/$(file)))),)))
779 $(foreach var, $(SOLARIS_FILE_LIST_DBGINFO_VARS),$(foreach file, $($(var)) \
780 ,$(NLTAB)$(VBOX_SI_OBJCOPY_DBGINFO) "$($(var).SRC)/$(file)" "$($(var).DBGDST)/$(file)"))
781 $(call MSG_L1,Packing $@)
782 $(QUIET)$(VBOX_SI_GTAR) --dereference --owner 0 --group 0 \
783 -cvjRhf "$@" -C "$(VBOX_PATH_SI_SCRATCH_DBG)/.." "./$(notdir $(VBOX_PATH_SI_SCRATCH_DBG))/"
784 $(QUIET)$(CHMOD) 0644 $@
785 $(call MSG_L1,Packaging $@ is completed.)
786 $(RM) -Rf "$(VBOX_PATH_SI_SCRATCH_DBG)/"
787
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