VirtualBox

Changeset 54062 in vbox for trunk/src/VBox/Installer


Ignore:
Timestamp:
Feb 3, 2015 2:09:22 AM (10 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
98001
Message:

Installer/solaris/Makefile.kmk: Rewrote half the makefile, primarily to address a myserious build server failure (dbg+prf but not rel), but also to fix that incremental build hazard once an for all, and finally make the makefile more readable instead of being halfways write-only (cursed pattern rules).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Installer/solaris/Makefile.kmk

    r54045 r54062  
    55
    66#
    7 # Copyright (C) 2007-2013 Oracle Corporation
     7# Copyright (C) 2007-2015 Oracle Corporation
    88#
    99# This file is part of VirtualBox Open Source Edition (OSE), as
     
    2323endif
    2424
     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
    2544# Unset this to speed up things during makefile hacking.
    26 VBOX_SOL_INST_DEP_ON_MAKEFILE := $(MAKEFILE_CURRENT)
    27 
    28 #
    29 # Globals
    30 #
    31 VBOX_PATH_SOL_INST_SRC     := $(PATH_SUB_CURRENT)
    32 SOLARIS_DIR_NAME_64        := amd64
    33 SOLARIS_DIR_NAME_32        := i386
    34 SOLARIS_INST_OUT_DIR       := $(PATH_TARGET)/Installer
    35 SOLARIS_BASEINST_DIR       := $(PATH_TARGET)/Installer/BasePkg
    36 SOLARIS_VBOXINST_SUBDIR    := opt/VirtualBox
    37 SOLARIS_VBOXINST_DIR       := $(SOLARIS_BASEINST_DIR)/$(SOLARIS_VBOXINST_SUBDIR)
    38 SOLARIS_VBOXINST_DIR_32    := $(SOLARIS_VBOXINST_DIR)/$(SOLARIS_DIR_NAME_32)
    39 SOLARIS_VBOXINST_DIR_64    := $(SOLARIS_VBOXINST_DIR)/$(SOLARIS_DIR_NAME_64)
    40 SOLARIS_DRIVERINST_DIR     := $(SOLARIS_BASEINST_DIR)/platform/i86pc/kernel/drv
    41 SOLARIS_DRIVERINST_DIR_32  := $(SOLARIS_DRIVERINST_DIR)
    42 SOLARIS_DRIVERINST_DIR_64  := $(SOLARIS_DRIVERINST_DIR)/amd64
    43 SOLARIS_USR_DIR            := $(SOLARIS_BASEINST_DIR)/usr
    44 SOLARIS_USRBIN_DIR         := $(SOLARIS_USR_DIR)/bin
    45 SOLARIS_USRSHR_APPS_DIR    := $(SOLARIS_USR_DIR)/share/applications
    46 SOLARIS_USRSHR_APPREG_DIR  := $(SOLARIS_USR_DIR)/share/application-registry
    47 SOLARIS_USRSHR_MIMEXML_DIR := $(SOLARIS_USR_DIR)/share/mime/packages
    48 SOLARIS_USRSHR_MIMEINFO_DIR := $(SOLARIS_USR_DIR)/share/mime-info
    49 SOLARIS_USRSHR_ICONS_DIR   := $(SOLARIS_USR_DIR)/share/icons/hicolor
    50 SOLARIS_USRSHR_PIXMAPS_DIR := $(SOLARIS_USR_DIR)/share/pixmaps
    51 SOLARIS_VBOXSMF_DIR        := $(SOLARIS_BASEINST_DIR)/var/svc/manifest/application/virtualbox
    52 SOLARIS_ETC_DIR            := $(SOLARIS_BASEINST_DIR)/etc
    53 
    54 SOLARIS_OUT_BIN_64         := $(PATH_OUT_BASE)/solaris.amd64/$(KBUILD_TYPE)/bin
    55 SOLARIS_OUT_BIN_32         := $(PATH_OUT_BASE)/solaris.x86/$(KBUILD_TYPE)/bin
    56 SOLARIS_OUT_BIN            := $(PATH_STAGE_BIN)
    57 
    58 SOLARIS_DBG_DIR_NAME       := DebugPkg
    59 SOLARIS_DBG_DIR            := $(SOLARIS_INST_OUT_DIR)/$(SOLARIS_DBG_DIR_NAME)
    60 SOLARIS_DBG_DIR_32         := $(SOLARIS_DBG_DIR)/$(SOLARIS_DIR_NAME_32)
    61 SOLARIS_DBG_DIR_64         := $(SOLARIS_DBG_DIR)/$(SOLARIS_DIR_NAME_64)
    62 
    63 ifeq ($(KBUILD_TARGET_ARCH),amd64)
    64  SOLARIS_VBOXINST_DIR_ISA    := $(SOLARIS_VBOXINST_DIR_64)
    65  SOLARIS_DRIVERINST_DIR_ISA  := $(SOLARIS_DRIVERINST_DIR_64)
    66  SOLARIS_DBG_DIR_ISA         := $(SOLARIS_DBG_DIR_64)
    67  SOL_DBG_OBJCOPY             := /usr/sfw/bin/gobjcopy --only-keep-debug
    68  SOL64_PKG := 1
    69 else
    70  SOLARIS_VBOXINST_DIR_ISA    := $(SOLARIS_VBOXINST_DIR_32)
    71  SOLARIS_DRIVERINST_DIR_ISA  := $(SOLARIS_DRIVERINST_DIR_32)
    72  SOLARIS_DBG_DIR_ISA         := $(SOLARIS_DBG_DIR_32)
    73  SOL_DBG_OBJCOPY             := $(CP) -p    # Solaris ld/gobjcopy(2.15) don't get along on x86, works only on amd64. So just using cp for now.
    74 endif
    75 SOL_OBJCOPY                  := /usr/sfw/bin/gobjcopy --strip-debug -R .comment
    76 SOL_GTAR                     := /usr/sfw/bin/gtar
    77 
    78 # Figure out the paths to the two platform specific Qt4 directories
    79 SOLARIS_PATH_QT_32 = $(subst solaris.$(KBUILD_TARGET_ARCH),solaris.x86,$(VBOX_PATH_QT4))
    80 SOLARIS_PATH_QT_64 = $(subst solaris.$(KBUILD_TARGET_ARCH),solaris.amd64,$(VBOX_PATH_QT4))
     45VBOX_SI_DEP_ON_MAKEFILE    := $(MAKEFILE_CURRENT)
     46
    8147
    8248# Base package
    83 PKGINFO_ARCH     = $(shell uname -p)
    84 PKGINFO_REVSTAMP = $(date %Y.%m.%d.%H.%M)
    85 PKG_FILENAME     = VirtualBox-$(VBOX_VERSION_STRING)-SunOS-$(KBUILD_TARGET_ARCH)-r$(VBOX_SVN_REV)
    86 
    87 # Debug package
    88 DBG_ARCHIVE      = VirtualBoxDebug.tar.bz2
    89 
    90 # Kernel interface (vbi) package
    91 VBIPKG_FILENAME  = VirtualBoxKern-$(VBOX_VERSION_STRING)-SunOS-r$(VBOX_SVN_REV)
     49PKGINFO_ARCH      = $(shell uname -p)
     50PKGINFO_REVSTAMP  = $(date %Y.%m.%d.%H.%M)
     51PKG_FILENAME     := VirtualBox-$(VBOX_VERSION_STRING)-SunOS-$(KBUILD_TARGET_ARCH)-r$(VBOX_SVN_REV)
     52
    9253
    9354#
     
    9657PROGRAMS         += VBoxZoneAccess VBoxISAExec
    9758INSTALLS         += solaris-doc solaris-bin solaris-drv-confs solaris-icons
    98 
    99 BLDDIRS          += \
    100         $(SOLARIS_INST_OUT_DIR) \
    101         $(SOLARIS_BASEINST_DIR) \
    102         $(SOLARIS_VBOXINST_DIR) \
    103         $(SOLARIS_DBG_DIR)
    104 
    105 BLDDIRS          += $(addprefix $(SOLARIS_BASEINST_DIR)/,\
    106         usr \
    107         usr/bin \
    108         platform \
    109         platform/i86pc \
    110         platform/i86pc/kernel \
    111         platform/i86pc/kernel/drv \
    112         platform/i86pc/kernel/drv/amd64 \
    113 )
    114 
    115 PACKING          += $(PATH_STAGE_BIN)/$(PKG_FILENAME).tar.gz $(PATH_STAGE_BIN)/$(DBG_ARCHIVE)
    116 
    117 OTHER_CLEAN      += $(addprefix $(SOLARIS_BASEINST_DIR)/,\
    118         vbox.pkginfo vbox.copyright vbox.space vbox.depend vbox.pkgresponse \
    119         makepackage.sh prototype postinstall.sh checkinstall.sh preremove.sh)
     59BLDDIRS          += $(VBOX_PATH_SI_SCRATCH)
     60PACKING          += \
     61        $(PATH_STAGE_BIN)/$(PKG_FILENAME).tar.gz \
     62        $(PATH_STAGE_BIN)/VirtualBoxDebug.tar.bz2
     63OTHER_CLEAN      += \
     64        $(VBOX_PATH_SI_SCRATCH)/$(PKG_FILENAME).pkg \
     65        $(PATH_STAGE_BIN)/$(PKG_FILENAME).tar.gz \
     66        $(PATH_STAGE_BIN)/VirtualBoxDebug.tar.bz2
    12067
    12168#
     
    167114solaris-icons_INST = bin/icons/
    168115solaris-icons_MODE = a+r,u+w
    169 solaris-icons_SOURCES = $(VBOX_MIME_ICONS)
    170 
    171 BLDDIRS += \
    172         $(SOLARIS_USR_DIR)/share \
    173         $(SOLARIS_USR_DIR)/share/icons \
    174         $(SOLARIS_USRSHR_ICONS_DIR) \
    175         $(foreach s,16 20 24 32 48 64 72 96 128 256,\
    176                 $(SOLARIS_USRSHR_ICONS_DIR)/$(s)x$(s) \
    177                 $(SOLARIS_USRSHR_ICONS_DIR)/$(s)x$(s)/mimetypes)
    178 
    179 VBOX_MIME_ICONS = \
    180         $(addprefix $(PATH_ROOT)/src/VBox/Resources/other/,\
    181                 $(foreach f,ova ovf vbox vbox-extpack vdi vmdk vhd hdd, \
    182                         $(foreach s,16 20 24 32 48 64 72 96 128 256,\
    183                                 virtualbox-$(f)-$(s)px.png=>$(s)x$(s)/mimetypes/virtualbox-$(f).png)))
    184 
    185 SOLARIS_COMMON_ICONS = \
    186         $(foreach f,ova ovf vbox vbox-extpack vdi vmdk vhd hdd, \
    187                 $(foreach s,16 20 24 32 48 64 72 96 128 256,\
    188                         $(s)x$(s)/mimetypes/virtualbox-$(f).png))
    189 
    190 
    191 #
    192 # Note: Other than the files produced during packing (.pkg, .gzip etc.) all files that
    193 # go into the temporary install folder $(SOLARIS_VBOXINST_DIR) should be part of $(SOLARIS_ARCH_FILES).
    194 # For the files produced during packing they should be cleaned up promptly when the work is done.
    195 #
    196 
    197 # Strip these executables
     116solaris-icons_SOURCES = $(foreach f,$(VBOX_SI_ICON_TYPES), $(foreach s,$(VBOX_SI_ICON_SIZES)\
     117        ,$(PATH_ROOT)/src/VBox/Resources/other/virtualbox-$(f)-$(s)px.png=>$(s)x$(s)/mimetypes/virtualbox-$(f).png))
     118
     119
     120#
     121# What follows is various files lists (and a symlink list) that lists various
     122# types of files going from/to various places during installation.
     123#
     124# Each list has the following attributes (used by makefile command and
     125# depency generation):
     126#       .SUBDIRS := <yes|no>
     127#       .STRIP   := <yes|objcopy|no>
     128#       .MODE    := <0644|0755>
     129#       .SRC     := <Directory to copy the files from>
     130#       .DST     := <Directory to copy the files to>
     131#
     132
     133
     134## List of file list variable names.
     135SOLARIS_FILE_LIST_VARS :=
     136
     137## @def SOLARIS_COMMON
     138# List of files that are copied directly from INST_BIN to /opt/VirtualBox/.
     139SOLARIS_FILE_LIST_VARS += SOLARIS_COMMON
     140SOLARIS_COMMON.SUBDIRS := yes
     141SOLARIS_COMMON.STRIP   := no
     142SOLARIS_COMMON.MODE    := 0644
     143SOLARIS_COMMON.SRC     := $(PATH_STAGE_BIN)
     144SOLARIS_COMMON.DST     := $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox
     145SOLARIS_COMMON = \
     146        LICENSE
     147## @def SOLARIS_COMMON_EXES
     148# List of executable script (and VBoxISAExec) files that are copied directly from INST_BIN to /opt/VirtualBox/.
     149SOLARIS_FILE_LIST_VARS += SOLARIS_COMMON_EXES
     150SOLARIS_COMMON_EXES.SUBDIRS := no
     151SOLARIS_COMMON_EXES.STRIP   := no
     152SOLARIS_COMMON_EXES.MODE    := 0755
     153SOLARIS_COMMON_EXES.SRC     := $(PATH_STAGE_BIN)
     154SOLARIS_COMMON_EXES.DST     := $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox
     155SOLARIS_COMMON_EXES = \
     156        VBoxISAExec
     157
     158## @def SOLARIS_STRIP_EXES
     159# List of exectuables files that are copied from INST_BIN to /opt/VirtualBox/$(VBOX_SI_ARCH)/ and stripped of debug info.
     160SOLARIS_FILE_LIST_VARS += SOLARIS_STRIP_EXES
     161SOLARIS_STRIP_EXES.SUBDIRS := no
     162SOLARIS_STRIP_EXES.STRIP   := yes
     163SOLARIS_STRIP_EXES.MODE    := 0755
     164SOLARIS_STRIP_EXES.SRC     := $(PATH_STAGE_BIN)
     165SOLARIS_STRIP_EXES.DST     := $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/$(VBOX_SI_ARCH)
    198166SOLARIS_STRIP_EXES = \
    199167        VBoxZoneAccess \
     
    211179       $(if $(VBOX_WITH_DTRACE),VBoxDTrace,)
    212180
     181## @def SOLARIS_DRIVER_BINS
     182# List of kernel module files that are copied from INST_BIN to platform/i86pc/kernel/drv/[amd64/] and stripped of debug info.
     183SOLARIS_FILE_LIST_VARS += SOLARIS_DRIVER_BINS
     184SOLARIS_DRIVER_BINS.SUBDIRS := no
     185SOLARIS_DRIVER_BINS.STRIP   := yes
     186SOLARIS_DRIVER_BINS.MODE    := 0644
     187SOLARIS_DRIVER_BINS.SRC     := $(PATH_STAGE_BIN)
     188SOLARIS_DRIVER_BINS.DST     := $(VBOX_PATH_SI_SCRATCH_PKG)/platform/i86pc/kernel/drv/$(subst x86,,$(KBUILD_TARGET_ARCH))
    213189SOLARIS_DRIVER_BINS = \
    214190        vboxdrv \
     
    219195        $(if $(VBOX_WITH_USB),vboxusb,)
    220196
     197## @def SOLARIS_DRIVER_CONFS
     198# List of kernel module configuration files that are copied directly from INST_BIN to platform/i86pc/kernel/drv/.
     199SOLARIS_FILE_LIST_VARS += SOLARIS_DRIVER_CONFS
     200SOLARIS_DRIVER_CONFS.SUBDIRS := no
     201SOLARIS_DRIVER_CONFS.STRIP   := no
     202SOLARIS_DRIVER_CONFS.MODE    := 0644
     203SOLARIS_DRIVER_CONFS.SRC     := $(PATH_STAGE_BIN)
     204SOLARIS_DRIVER_CONFS.DST     := $(VBOX_PATH_SI_SCRATCH_PKG)/platform/i86pc/kernel/drv
    221205SOLARIS_DRIVER_CONFS = \
    222206        vboxdrv.conf \
     
    227211        $(if $(VBOX_WITH_USB),vboxusb.conf,)
    228212
    229 # Strip these binaries
     213## @def SOLARIS_STRIP_BINS
     214# List of shared libraries that are copied from INST_BIN to /opt/VirtualBox/$(VBOX_SI_ARCH)/ and stripped of debug info.
     215SOLARIS_FILE_LIST_VARS += SOLARIS_STRIP_BINS
     216SOLARIS_STRIP_BINS.SUBDIRS := yes
     217SOLARIS_STRIP_BINS.STRIP   := yes
     218SOLARIS_STRIP_BINS.MODE    := 0644
     219SOLARIS_STRIP_BINS.SRC     := $(PATH_STAGE_BIN)
     220SOLARIS_STRIP_BINS.DST     := $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/$(VBOX_SI_ARCH)
    230221SOLARIS_STRIP_BINS = \
    231222        VBoxDD.so \
    232223        VBoxDD2.so \
    233224        VBoxREM.so \
     225        $(if-expr "$(KBUILD_TARGET_ARCH)" == "x86",VBoxREM32.so VBoxREM64.so,) \
    234226        VBoxRT.so \
    235227        VBoxDDU.so \
     
    277269endif
    278270
    279 # Do not remove relocation information of these binaries
     271## @def SOLARIS_STRIP_OBJS
     272# List of relocable object files to be copied from INST_BIN to /opt/VirtualBox/$(VBOX_SI_ARCH)/ and carefully
     273# stripped of debug info but not relocation information.  These are the ring-0 and raw-mode context modules.
     274SOLARIS_FILE_LIST_VARS += SOLARIS_STRIP_OBJS
     275SOLARIS_STRIP_OBJS.SUBDIRS := no
     276SOLARIS_STRIP_OBJS.STRIP   := objcopy
     277SOLARIS_STRIP_OBJS.MODE    := 0644
     278SOLARIS_STRIP_OBJS.SRC     := $(PATH_STAGE_BIN)
     279SOLARIS_STRIP_OBJS.DST     := $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/$(VBOX_SI_ARCH)
    280280SOLARIS_STRIP_OBJS = \
    281281        VBoxDD2GC.gc \
     
    286286        VMMR0.r0
    287287
    288 # Special differences between 32-bit and 64-bit
    289 SOLARIS_STRIP_BIN_32 = \
    290         VBoxREM32.so \
    291         VBoxREM64.so
    292 
    293 VBOX_SOL_PYTHON_DIR_64 = 64
    294 
    295 # Do not strip anything of these files
     288## @def SOLARIS_NO_STRIP
     289# List of data files that should be copied from INST_BIN to /opt/VirtualBox/$(VBOX_SI_ARCH)/.
     290SOLARIS_FILE_LIST_VARS += SOLARIS_NO_STRIP
     291SOLARIS_NO_STRIP.SUBDIRS := yes
     292SOLARIS_NO_STRIP.STRIP   := no
     293SOLARIS_NO_STRIP.MODE    := 0644
     294SOLARIS_NO_STRIP.SRC     := $(PATH_STAGE_BIN)
     295SOLARIS_NO_STRIP.DST     := $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/$(VBOX_SI_ARCH)
    296296SOLARIS_NO_STRIP = \
    297297        components/VBoxXPCOMBase.xpt \
     
    299299        $(if $(and $(VBOX_LICENSE_FILES),$(VBOX_WITH_QTGUI)),$(VBOX_LICENSE_FILES))
    300300
     301## @def SOLARIS_USRBIN_LINKS
     302# List of links to create in /usr/bin to /opt/VirtualBox/VBox.sh.
     303# Naturally no subdirectories.
    301304SOLARIS_USRBIN_LINKS = \
    302305        $(if $(VBOX_WITH_QTGUI),VirtualBox,) \
     
    306309        $(if $(VBOX_WITH_DTRACE),VBoxDTrace,)
    307310
    308 SOLARIS_COMMON_EXES = \
     311SOLARIS_COMMON_EXES += \
    309312        vboxconfig.sh \
    310313        VBox.sh \
     
    315318        $(if $(VBOX_WITH_WEBSERVICES),smf-vboxwebsrv.sh,)
    316319
    317 # Things packed explicitly, not from $(PATH_STAGE_BIN), track these to clean-up properly
    318 SOLARIS_EXTRAS = \
    319         LICENSE \
    320         VBox.png \
    321         virtualbox.png \
    322         autoresponse \
    323         $(if $(VBOX_WITH_VBOXSDL),libSDL-1.2.so.0,) \
    324         $(if $(not $(VBOX_WITH_NETFLT))vnic_setup.sh,) \
    325         $(if $(not $(VBOX_WITH_NETFLT))vnic_term.sh,) \
    326         $(if $(VBOX_WITH_QTGUI),virtualbox.desktop,) \
    327         virtualbox.xml \
    328         virtualbox-balloonctrl.xml \
    329         virtualbox-webservice.xml \
    330         virtualbox-zoneaccess.xml \
    331         VBoxQtconfig \
    332         VBoxISAExec \
    333         vbox.copyright \
    334         ReadMe.txt
    335 
    336 # These extra Qt libs are purely for running VBoxQtconfig
     320
     321
     322## @def SOLARIS_QTLIBS
     323# List of Qt shared libs that we need to copy from $(VBOX_PATH_QT4)/lib/ to /opt/VirtualBox/$(VBOX_SI_ARCH)/
     324# so that we can run VBoxQtConfig.
     325SOLARIS_FILE_LIST_VARS += SOLARIS_QTLIBS
     326SOLARIS_QTLIBS.SUBDIRS := no
     327SOLARIS_QTLIBS.STRIP   := no
     328SOLARIS_QTLIBS.MODE    := 0644
     329SOLARIS_QTLIBS.SRC     := $(VBOX_PATH_QT4)/lib
     330SOLARIS_QTLIBS.DST     := $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/$(VBOX_SI_ARCH)
     331SOLARIS_QTLIBS =
    337332ifdef VBOX_WITH_QTGUI
    338  SOLARIS_QTLIBS = \
    339         $(if $(VBOX_WITH_QT4_SUN),\
    340           libQtXmlVBox.so.4 \
    341           libQtSqlVBox.so.4 \
    342           libQt3SupportVBox.so.4,)
    343 
     333 ifdef VBOX_WITH_QT4_SUN
     334  SOLARIS_QTLIBS += \
     335        libQtXmlVBox.so.4 \
     336        libQtSqlVBox.so.4 \
     337        libQt3SupportVBox.so.4
     338  SOLARIS_USRBIN_LINKS += \
     339        VBoxQtconfig
     340 endif
    344341 include $(PATH_ROOT)/src/VBox/Frontends/VirtualBox/nls/ApprovedLanguages.kmk
    345  SOLARIS_COMMON = $(foreach f,$(VBOX_APPROVED_GUI_LANGUAGES),nls/VirtualBox_$(f).qm nls/qt_$(f).qm)
    346 else
    347  SOLARIS_QTLIBS =
    348  SOLARIS_COMMON =
     342 SOLARIS_COMMON += $(foreach f,$(VBOX_APPROVED_GUI_LANGUAGES),nls/VirtualBox_$(f).qm nls/qt_$(f).qm)
    349343endif
    350344
     
    357351endif
    358352
     353## @def SOLARIS_COMMON_64_STRIP_BINS
     354# List of INST_BIN shared libraries that should be copied into /opt/VirtualBox/64/ and stripped.
     355SOLARIS_FILE_LIST_VARS += SOLARIS_COMMON_64_STRIP_BINS
     356SOLARIS_COMMON_64_STRIP_BINS.SUBDIRS := yes
     357SOLARIS_COMMON_64_STRIP_BINS.STRIP   := yes
     358SOLARIS_COMMON_64_STRIP_BINS.MODE    := 0644
     359SOLARIS_COMMON_64_STRIP_BINS.SRC     := $(PATH_STAGE_BIN)
     360SOLARIS_COMMON_64_STRIP_BINS.DST     := $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/64
     361SOLARIS_COMMON_64_STRIP_BINS =
     362## @def SOLARIS_COMMON_BINS
     363# List of INST_BIN shared libraries that should be copied into /opt/VirtualBox/ and stripped.
     364SOLARIS_FILE_LIST_VARS += SOLARIS_COMMON_STRIP_BINS
     365SOLARIS_COMMON_STRIP_BINS.SUBDIRS := yes
     366SOLARIS_COMMON_STRIP_BINS.STRIP   := no
     367SOLARIS_COMMON_STRIP_BINS.MODE    := 0644
     368SOLARIS_COMMON_STRIP_BINS.SRC     := $(PATH_STAGE_BIN)
     369SOLARIS_COMMON_STRIP_BINS.DST     := $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/
     370SOLARIS_COMMON_STRIP_BINS =
     371
    359372# Python XPCOM glue
    360373ifdef VBOX_WITH_PYTHON
    361   SOLARIS_COMMON += \
    362         $(foreach f,$(notdir $(wildcard $(PATH_STAGE_BIN)/sdk/bindings/xpcom/python/xpcom/*.py)),sdk/bindings/xpcom/python/xpcom/$(f)) \
    363         sdk/bindings/xpcom/python/xpcom/client/__init__.py \
    364         sdk/bindings/xpcom/python/xpcom/server/__init__.py \
    365         sdk/bindings/xpcom/python/xpcom/server/enumerator.py \
    366         sdk/bindings/xpcom/python/xpcom/server/factory.py \
    367         sdk/bindings/xpcom/python/xpcom/server/loader.py \
    368         sdk/bindings/xpcom/python/xpcom/server/module.py \
    369         sdk/bindings/xpcom/python/xpcom/server/policy.py \
    370         sdk/installer/vboxapisetup.py \
    371         sdk/installer/vboxapi/__init__.py \
    372         sdk/installer/vboxapi/VirtualBox_constants.py
     374 SOLARIS_COMMON += \
     375        $(foreach f,$(notdir $(wildcard $(PATH_STAGE_BIN)/sdk/bindings/xpcom/python/xpcom/*.py)),sdk/bindings/xpcom/python/xpcom/$(f)) \
     376        sdk/bindings/xpcom/python/xpcom/client/__init__.py \
     377        sdk/bindings/xpcom/python/xpcom/server/__init__.py \
     378        sdk/bindings/xpcom/python/xpcom/server/enumerator.py \
     379        sdk/bindings/xpcom/python/xpcom/server/factory.py \
     380        sdk/bindings/xpcom/python/xpcom/server/loader.py \
     381        sdk/bindings/xpcom/python/xpcom/server/module.py \
     382        sdk/bindings/xpcom/python/xpcom/server/policy.py \
     383        sdk/installer/vboxapisetup.py \
     384        sdk/installer/vboxapi/__init__.py \
     385        sdk/installer/vboxapi/VirtualBox_constants.py
     386 ifeq ($(KBUILD_TARGET_ARCH),amd64)
     387  ifdef VBOX_WITH_32_ON_64_MAIN_API
     388   SOLARIS_COMMON_STRIP_BINS   += VBoxPython2_6_x86.so
     389  endif
     390  SOLARIS_COMMON_64_STRIP_BINS += VBoxPython.so VBoxPython2_6.so
     391 else
     392  SOLARIS_COMMON_STRIP_BINS    += VBoxPython.so VBoxPython2_6.so
     393 endif
    373394endif
    374395
     
    379400
    380401# auth stuff
    381  SOLARIS_STRIP_BINS += \
     402SOLARIS_STRIP_BINS += \
    382403        VBoxAuth.so \
    383404        VBoxAuthSimple.so
     
    392413        rdesktop-vrdp.tar.gz
    393414 ifdef VBOX_WITH_VRDP_RDESKTOP
    394   SOLARIS_COMMON += $(addprefix rdesktop-vrdp-keymaps/,$(notdir $(wildcard $(SOLARIS_OUT_BIN)/rdesktop-vrdp-keymaps/*)))
     415  SOLARIS_COMMON += $(addprefix rdesktop-vrdp-keymaps/,$(notdir $(wildcard $(PATH_STAGE_BIN)/rdesktop-vrdp-keymaps/*)))
    395416  SOLARIS_STRIP_EXES += \
    396417        rdesktop-vrdp
     
    411432# Guest Additions
    412433ifdef VBOX_WITH_ADDITIONS_PACKING
    413  SOLARIS_COMMON += \
    414         additions/VBoxGuestAdditions.iso
     434# SOLARIS_COMMON += \
     435#       additions/VBoxGuestAdditions.iso
    415436endif
    416437
     
    427448ifdef VBOX_WITH_DTRACE
    428449 SOLARIS_COMMON += \
    429         $(addprefix dtrace/lib/$(KBUILD_TARGET_ARCH)/,$(VBOXINST_DTRACE_LIB_ARCH_FILES)) \
    430         $(addprefix dtrace/testcase/$(KBUILD_TARGET_ARCH)/,$(VBOXINST_DTRACE_TESTCASE_ARCH_FILES)) \
    431        $(addprefix dtrace/scripts/,$(VBOXINST_DTRACE_SCRIPTS_FILES))
    432 endif
    433 
    434 SOLARIS_ARCH_FILES := \
    435         $(SOLARIS_STRIP_EXES) \
    436         $(SOLARIS_DRIVER_BINS) \
    437         $(SOLARIS_DRIVER_CONFS) \
    438         $(SOLARIS_USRBIN_LINKS) \
    439         $(SOLARIS_STRIP_BINS) \
    440         $(SOLARIS_STRIP_OBJS) \
    441         $(SOLARIS_NO_STRIP) \
    442         $(SOLARIS_EXTRAS) \
    443         $(SOLARIS_QTLIBS) \
    444         $(SOLARIS_COMMON_EXES) \
    445         $(SOLARIS_COMMON)
    446 
    447 SOLARIS_DBG_FILES := \
    448         $(SOLARIS_STRIP_EXES) \
    449         $(SOLARIS_STRIP_BINS) \
    450         $(SOLARIS_DRIVER_BINS)
    451 
    452 OTHER_CLEAN += \
    453         $(addprefix $(SOLARIS_VBOXINST_DIR)/, $(SOLARIS_ARCH_FILES)) \
    454         $(SOLARIS_BASEINST_DIR)/$(PKG_FILENAME).tar.gz \
    455         $(SOLARIS_BASEINST_DIR)/$(PKG_FILENAME).pkg \
    456         $(addprefix $(SOLARIS_DBG_DIR)/,$(SOLARIS_STRIP_BINS)) \
    457         $(addprefix $(SOLARIS_DBG_DIR)/,$(SOLARIS_DRIVER_BINS)) \
    458         $(addprefix $(SOLARIS_DBG_DIR)/,$(SOLARIS_STRIP_EXES)) \
    459         $(SOLARIS_DBG_DIR)/$(DBG_ARCHIVE)
    460 
    461 SOLARIS_ARCH_DEPFILES = $(addprefix $(SOLARIS_VBOXINST_DIR_ISA)/,$(SOLARIS_STRIP_EXES)) \
    462         $(addprefix $(SOLARIS_VBOXINST_DIR_ISA)/,$(SOLARIS_STRIP_BINS)) \
    463         $(addprefix $(SOLARIS_DRIVERINST_DIR_ISA)/,$(SOLARIS_DRIVER_BINS)) \
    464         $(addprefix $(SOLARIS_DRIVERINST_DIR)/,$(SOLARIS_DRIVER_CONFS)) \
    465         $(ifeq ($(KBUILD_TARGET_ARCH),x86),$(addprefix $(SOLARIS_VBOXINST_DIR_ISA)/,$(SOLARIS_STRIP_BIN_32)),) \
    466         $(ifeq ($(KBUILD_TARGET_ARCH),amd64),$(addprefix $(SOLARIS_VBOXINST_DIR_ISA)/,$(SOLARIS_STRIP_OBJ_64)),) \
    467         $(addprefix $(SOLARIS_VBOXINST_DIR_ISA)/,$(SOLARIS_STRIP_OBJS)) \
    468         $(addprefix $(SOLARIS_VBOXINST_DIR_ISA)/,$(SOLARIS_NO_STRIP)) \
    469         $(addprefix $(SOLARIS_VBOXINST_DIR_ISA)/,$(SOLARIS_QTLIBS)) \
    470         $(wildcard $(addprefix $(SOLARIS_OUT_BIN)/,VBoxPython*.so))
    471 SOLARIS_DBG_DEPFILES = \
    472         $(addprefix $(SOLARIS_DBG_DIR_ISA)/,$(SOLARIS_DBG_FILES)) \
    473         $(addprefix $(SOLARIS_VBOXINST_DIR)/,$(SOLARIS_COMMON)) \
    474         $(addprefix $(SOLARIS_DRIVERINST_DIR)/,$(SOLARIS_DRIVER_CONFS)) \
    475         $(addprefix $(SOLARIS_VBOXINST_DIR)/,$(SOLARIS_COMMON_EXES)) \
    476         $(addprefix $(SOLARIS_USRBIN_DIR)/,$(SOLARIS_USRBIN_LINKS)) \
    477         $(addprefix $(SOLARIS_USRSHR_ICONS_DIR)/,$(SOLARIS_COMMON_ICONS))
    478 
    479 BLDDIRS += $(foreach d,\
    480         additions \
    481         rdesktop-vrdp-keymaps \
    482         nls \
    483         $(SOLARIS_DIR_NAME_64) \
    484         $(SOLARIS_DIR_NAME_64)/components \
    485         $(SOLARIS_DIR_NAME_64)/accessible \
    486         $(VBOX_SOL_PYTHON_DIR_64) \
    487         $(SOLARIS_DIR_NAME_32) \
    488         $(SOLARIS_DIR_NAME_32)/components \
    489         $(SOLARIS_DIR_NAME_32)/accessible \
    490         $(if $(VBOX_WITH_PYTHON),\
    491          sdk/ \
    492          sdk/installer \
    493          sdk/installer/vboxapi \
    494          sdk/bindings/xpcom/python/xpcom \
    495          sdk/bindings/xpcom/python/xpcom/server \
    496          sdk/bindings/xpcom/python/xpcom/client,) \
    497         $(if $(VBOX_WITH_JXPCOM), \
    498          sdk/bindings/xpcom/java,) \
    499         $(if $(VBOX_WITH_DTRACE), \
    500         dtrace/lib/$(KBUILD_TARGET_ARCH)\
    501         dtrace/testcase/$(KBUILD_TARGET_ARCH)\
    502         dtrace/scripts,)\
    503 ,$(SOLARIS_VBOXINST_DIR)/$(d)/)
    504 
    505 BLDDIRS += $(foreach d,\
    506         additions \
    507         components \
    508         accessible \
    509         $(SOLARIS_DIR_NAME_64) \
    510         $(SOLARIS_DIR_NAME_64)/components \
    511         $(SOLARIS_DIR_NAME_64)/accessible \
    512         $(VBOX_SOL_PYTHON_DIR_64) \
    513         $(SOLARIS_DIR_NAME_32) \
    514         $(SOLARIS_DIR_NAME_32)/components \
    515         $(SOLARIS_DIR_NAME_32)/accessible \
    516 ,$(SOLARIS_DBG_DIR)/$(d))
    517 
    518 # List of files to be tar.gz'd, the files will be
    519 # installed in $(SOLARIS_BASEINST_DIR) and .gz'd from there.
    520 SOLARIS_TAR_GZ_FILES := \
    521         $(PKG_FILENAME).pkg \
    522         LICENSE \
    523         autoresponse \
    524         ReadMe.txt
     450        $(addprefix dtrace/lib/$(KBUILD_TARGET_ARCH)/,$(VBOXINST_DTRACE_LIB_ARCH_FILES)) \
     451        $(addprefix dtrace/testcase/$(KBUILD_TARGET_ARCH)/,$(VBOXINST_DTRACE_TESTCASE_ARCH_FILES)) \
     452        $(addprefix dtrace/scripts/,$(VBOXINST_DTRACE_SCRIPTS_FILES))
     453endif
     454
     455## @def SOLARIS_ETC_FILES
     456# Service management facility manifest files to copy from VBOX_PATH_SOL_INST_SRC to /var/svc/manifest/application/virtualbox/.
     457SOLARIS_FILE_LIST_VARS += SOLARIS_ETC_FILES
     458SOLARIS_ETC_FILES.SUBDIRS := yes
     459SOLARIS_ETC_FILES.STRIP   := no
     460SOLARIS_ETC_FILES.MODE    := 0644
     461SOLARIS_ETC_FILES.SRC     := $(PATH_ROOT)/src/VBox/HostDrivers/VBoxNetAdp/solaris
     462SOLARIS_ETC_FILES.DST     := $(VBOX_PATH_SI_SCRATCH_PKG)/etc
     463SOLARIS_ETC_FILES := $(if-expr defined(VBOX_WITH_NETADP),hostname.vboxnet0,)
     464
     465## @def SOLARIS_SMF_FILES
     466# Service management facility manifest files to copy from VBOX_PATH_SOL_INST_SRC to /var/svc/manifest/application/virtualbox/.
     467SOLARIS_FILE_LIST_VARS += SOLARIS_SMF_FILES
     468SOLARIS_SMF_FILES.SUBDIRS := yes
     469SOLARIS_SMF_FILES.STRIP   := no
     470SOLARIS_SMF_FILES.MODE    := 0644
     471SOLARIS_SMF_FILES.SRC     := $(VBOX_PATH_SOL_INST_SRC)
     472SOLARIS_SMF_FILES.DST     := $(VBOX_PATH_SI_SCRATCH_PKG)/var/svc/manifest/application/virtualbox
     473SOLARIS_SMF_FILES = \
     474        virtualbox-zoneaccess.xml \
     475        virtualbox-balloonctrl.xml \
     476        virtualbox-autostart.xml \
     477        $(if-expr defined(VBOX_WITH_WEBSERVICES),virtualbox-webservice.xml,)
     478
     479## @def SOLARIS_MIME_INFO_FILES
     480# MIME info files to be copied directly from VBOX_PATH_SOL_INST_SRC to /usr/share/mime-info/.
     481# No subdirectories. MODE=644
     482SOLARIS_FILE_LIST_VARS += SOLARIS_MIME_INFO_FILES
     483SOLARIS_MIME_INFO_FILES.SUBDIRS := yes
     484SOLARIS_MIME_INFO_FILES.STRIP   := no
     485SOLARIS_MIME_INFO_FILES.MODE    := 0644
     486SOLARIS_MIME_INFO_FILES.SRC     := $(VBOX_PATH_SOL_INST_SRC)
     487SOLARIS_MIME_INFO_FILES.DST     := $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/mime-info
     488SOLARIS_MIME_INFO_FILES = \
     489        virtualbox.keys \
     490        virtualbox.mime
     491
     492## @def SOLARIS_PIXMAP_FILES
     493# Bitmap files to copy directly from INST_BIN to /usr/share/pixmaps/.
     494# No subdirectories. MODE=644
     495SOLARIS_FILE_LIST_VARS += SOLARIS_PIXMAP_FILES
     496SOLARIS_PIXMAP_FILES.SUBDIRS = no
     497SOLARIS_PIXMAP_FILES.STRIP   = no
     498SOLARIS_PIXMAP_FILES.MODE    = 0644
     499SOLARIS_PIXMAP_FILES.SRC     = $(PATH_STAGE_BIN)
     500SOLARIS_PIXMAP_FILES.DST     = $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/pixmaps
     501SOLARIS_PIXMAP_FILES = \
     502        VBox.png \
     503        virtualbox.png
     504
     505
     506## @def SOLARIS_INSTALLER_SCRIPTS
     507# Installer shell scripts that gets copied directly from VBOX_PATH_SOL_INST_SRC to VBOX_PATH_SI_SCRATCH_PKG (/).
     508SOLARIS_FILE_LIST_VARS += SOLARIS_INSTALLER_SCRIPTS
     509SOLARIS_INSTALLER_SCRIPTS.SUBDIRS = no
     510SOLARIS_INSTALLER_SCRIPTS.STRIP   = no
     511SOLARIS_INSTALLER_SCRIPTS.MODE    = 0755
     512SOLARIS_INSTALLER_SCRIPTS.SRC     = $(VBOX_PATH_SOL_INST_SRC)
     513SOLARIS_INSTALLER_SCRIPTS.DST     = $(VBOX_PATH_SI_SCRATCH_PKG)
     514SOLARIS_INSTALLER_SCRIPTS = \
     515        postinstall.sh \
     516        checkinstall.sh \
     517        preremove.sh \
     518        makepackage.sh
     519
     520SOLARIS_FILE_LIST_VARS += SOLARIS_INSTALLER_FILES
     521SOLARIS_INSTALLER_FILES.SUBDIRS = no
     522SOLARIS_INSTALLER_FILES.STRIP   = no
     523SOLARIS_INSTALLER_FILES.MODE    = 0644
     524SOLARIS_INSTALLER_FILES.SRC     = $(VBOX_PATH_SOL_INST_SRC)
     525SOLARIS_INSTALLER_FILES.DST     = $(VBOX_PATH_SI_SCRATCH_PKG)
     526SOLARIS_INSTALLER_FILES = \
     527        vbox.space
     528
     529
     530#
     531# End of file lists.
     532#
     533
     534
    525535
    526536include $(FILE_KBUILD_SUB_FOOTER)
    527537
    528538#
    529 # -=-=-=-=-=-=-=- Main package -=-=-=-=-=-=-=-
    530 #
    531 # !!WARNING!!  The current packing may NOT produce the expected rules in
    532 # !!WARNING!!  incremental build!  Removed and renamed components may
    533 # !!WARNING!!  appear in the package!  Always do clean builds for customers.
    534 #
    535 
    536 ## @todo r=bird: makepackage.sh packing a directory tree, right? So, there is no guarantee that it's not
    537 #                containing any obsolete files the way packing is performed here. Consider recursively
    538 #                invoking $(MAKE) vbox_copy_sdk_files (or similar) to do the copying after $(RM) -Rf the
    539 #                directory tree.
    540 $(PATH_STAGE_BIN)/$(PKG_FILENAME).tar.gz: \
     539# Creates the System V style installer package.
     540#
     541solaris-package:: $(VBOX_PATH_SI_SCRATCH)/$(PKG_FILENAME).pkg
     542$(VBOX_PATH_SI_SCRATCH)/$(PKG_FILENAME).pkg: \
    541543                $(VBOX_VERSION_STAMP) \
    542                 $(VBOX_PATH_SOL_INST_SRC)/makepackage.sh \
    543                 $(VBOX_PATH_SOL_INST_SRC)/postinstall.sh \
    544                 $(VBOX_PATH_SOL_INST_SRC)/checkinstall.sh \
    545                 $(VBOX_PATH_SOL_INST_SRC)/preremove.sh \
     544                \
     545                $(VBOX_PATH_SOL_INST_SRC)/../common/virtualbox.desktop.in \
     546                $(VBOX_PATH_SOL_INST_SRC)/../common/virtualbox.xml \
     547                $(VBOX_PATH_SOL_INST_SRC)/virtualbox.applications.in \
    546548                $(VBOX_PATH_SOL_INST_SRC)/vbox.pkginfo \
    547                 $(VBOX_PATH_SOL_INST_SRC)/vbox.space \
    548                 $(VBOX_PATH_SOL_INST_SRC)/vbox.pkgresponse \
    549                 $(PATH_ROOT)/src/VBox/Installer/common/virtualbox.desktop.in \
    550                 $(PATH_ROOT)/src/VBox/Installer/common/virtualbox.xml \
    551                 $(PATH_ROOT)/doc/ReadMe-Solaris.txt \
    552                 $(VBOX_PATH_SOL_INST_SRC)/Makefile.kmk \
    553                 $(VBOX_BRAND_LICENSE_TXT) \
    554                 $(PATH_STAGE_BIN)/LICENSE \
    555                 $(if $(and $(VBOX_LICENSE_BINS),$(VBOX_WITH_QTGUI)),$(VBOX_LICENSE_BINS),) \
    556                 $(if $(VBOX_WITH_NETADP),$(PATH_ROOT)/src/VBox/HostDrivers/VBoxNetAdp/solaris/hostname.vboxnet0,) \
    557                 $(if $(not $(VBOX_WITH_NETFLT))$(PATH_ROOT)/src/VBox/Devices/Network/solaris/vnicinit_solaris.sh,) \
    558                 $(if $(not $(VBOX_WITH_NETFLT))$(PATH_ROOT)/src/VBox/Devices/Network/solaris/vnicterm_solaris.sh,) \
    559                 $(addprefix $(PATH_STAGE_BIN)/,$(filter-out $(SOLARIS_EXTRAS) $(SOLARIS_QTLIBS),$(SOLARIS_ARCH_FILES))) \
    560                 VBoxISAExec \
    561                 $(SOLARIS_ARCH_DEPFILES)
    562         $(QUIET)$(RM) -f $(wildcard $(PATH_STAGE_BIN)/VirtualBox-*-r*.tar.gz)
    563         $(call MSG_L1,Installing binaries $(SOLARIS_VBOXINST_DIR))
    564         $(QUIET)$(if $(VBOX_WITH_ADDITIONS_PACKING),$(MKDIR) -p -m 0755 $(SOLARIS_VBOXINST_DIR)/additions/)
    565         $(QUIET)$(if $(VBOX_WITH_ADDITIONS_PACKING),$(INSTALL) -m 0644 $(SOLARIS_OUT_BIN)/additions/VBoxGuestAdditions.iso               $(SOLARIS_VBOXINST_DIR)/additions/)
    566         $(call MSG_L1,Installing files $(SOLARIS_VBOXINST_DIR))
    567         $(QUIET)$(SED) \
    568                 -e "s/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g" \
     549                \
     550                $(if-expr defined(VBOX_WITH_QTGUI) && defined(VBOX_WITH_QT4_SUN),$(VBOX_PATH_QT4)/bin/qtconfig,) \
     551                $(if-expr defined(VBOX_WITH_ADDITIONS_PACKING),$(PATH_STAGE_BIN)/additions/VBoxGuestAdditions.iso,) \
     552                $(if-expr !defined(VBOX_OSE) && defined(VBOX_WITH_VBOXSDL),$(PATH_DEVTOOLS_TRG)/libSDL/v1.2.13/lib/libSDL-1.2.so.0.11.2,) \
     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/Resources/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                $(VBOX_PATH_SI_SCRATCH_PKG)/platform/ \
     571                $(VBOX_PATH_SI_SCRATCH_PKG)/platform/i86pc/ \
     572                $(VBOX_PATH_SI_SCRATCH_PKG)/platform/i86pc/kernel/ \
     573                $(VBOX_PATH_SI_SCRATCH_PKG)/platform/i86pc/kernel/drv/ \
     574                $(VBOX_PATH_SI_SCRATCH_PKG)/usr/ \
     575                $(VBOX_PATH_SI_SCRATCH_PKG)/usr/bin/ \
     576                $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/ \
     577                $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/applications/ \
     578                $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/application-registry/ \
     579                $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/icons/ \
     580                $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/icons/hicolor/ \
     581                $(foreach size, $(VBOX_SI_ICON_SIZES) \
     582                ,$(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/icons/hicolor/$(size)x$(size)/ \
     583                 $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/icons/hicolor/$(size)x$(size)/mimetypes/) \
     584                $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/mime/ \
     585                $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/mime/packages/ \
     586                $(VBOX_PATH_SI_SCRATCH_PKG)/var/ \
     587                $(VBOX_PATH_SI_SCRATCH_PKG)/var/svc/ \
     588                $(VBOX_PATH_SI_SCRATCH_PKG)/var/svc/manifest/ \
     589                $(VBOX_PATH_SI_SCRATCH_PKG)/var/svc/manifest/application/ \
     590                $(foreach var,$(SOLARIS_FILE_LIST_VARS), $($(var).DST)/) \
     591                $(foreach var,$(SOLARIS_FILE_LIST_VARS),$(if-expr "$($(var).SUBDIRS)" == "yes",$(sort $(dir $(addprefix $($(var).DST)/,$($(var))))),)) \
     592        )
     593
     594# Generic copy file lists.
     595        $(foreach var, $(SOLARIS_FILE_LIST_VARS), $(foreach file, $($(var)) \
     596        ,$(if-expr "$($(var).STRIP)" == "objcopy" && defined(VBOX_DO_STRIP)\
     597        ,$(NLTAB)$(VBOX_SI_OBJCOPY_STRIP) "$($(var).SRC)/$(file)" "$($(var).DST)/$(file)" \
     598         $(NLTAB)$(CHMOD) "$($(var).MODE)" "$($(var).DST)/$(file)" \
     599        ,$(NLTAB)$(INSTALL) -m "$($(var).MODE)" $(if-expr "$($(var).STRIP)" == "yes" && defined(VBOX_DO_STRIP),-s,) \
     600                "$($(var).SRC)/$(file)" "$($(var).DST)/$(file)")))
     601
     602# VirtualBox: Common files.
     603        $(if-expr defined(VBOX_WITH_ADDITIONS_PACKING) \
     604        ,$(INSTALL) -m 0644 $(PATH_STAGE_BIN)/additions/VBoxGuestAdditions.iso  $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/,)
     605        $(LN_SYMLINK) -f ./pkginstall.sh        $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/ipsinstall.sh
     606        $(SED)  -e "s/_HARDENED_/$(if $(VBOX_WITH_HARDENED),hardened,)/" \
     607                --output $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/vboxconfig.sh \
     608                 $(VBOX_PATH_SOL_INST_SRC)/vboxconfig.sh
     609        $(CHMOD) 0755 $(VBOX_PATH_SOL_INST_SRC)/vboxconfig.sh
     610        $(INSTALL) -m 0644 $(VBOX_PATH_SOL_INST_SRC)/vbox.pkgresponse   $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/autoresponse
     611
     612# VirtualBox: Arch specific files.
     613        $(if-expr defined(VBOX_WITH_QTGUI) && defined(VBOX_WITH_QT4_SUN)\
     614        ,$(INSTALL) -m 0755 \
     615                $(VBOX_PATH_QT4)/bin/qtconfig   $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/$(VBOX_SI_ARCH)/VBoxQtconfig,)
     616
     617        $(if-expr defined(VBOX_WITH_QTGUI) \
     618        ,$(NLTAB)$(LN_SYMLINK) ../rdesktop-vrdp-keymaps/ $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/$(VBOX_SI_ARCH)/rdesktop-vrdp-keymaps,)
     619
     620        $(if-expr defined(VBOX_WITH_ADDITIONS_PACKING) \
     621        ,$(NLTAB)$(LN_SYMLINK) ../VBoxGuestAdditions.iso $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/$(VBOX_SI_ARCH)/,)
     622
     623        $(if-expr !defined(VBOX_OSE) && defined(VBOX_WITH_VBOXSDL) \
     624        ,$(INSTALL) -m 0644 $(PATH_DEVTOOLS_TRG)/libSDL/v1.2.13/lib/libSDL-1.2.so.0.11.2 \
     625                $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/$(VBOX_SI_ARCH)/libSDL-1.2.so.0,)
     626
     627        $(if-expr defined(VBOX_WITH_EFIFW_PACKING) \
     628        ,$(LN_SYMLINK) ../VBoxEFI32.fd ../VBoxEFI64.fd  $(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/$(VBOX_SI_ARCH)/,)
     629
     630# Links to /usr/bin.
     631        $(foreach link,$(SOLARIS_USRBIN_LINKS) \
     632        ,$(NLTAB)$(LN_SYMLINK) ../../opt/VirtualBox/VBox.sh $(VBOX_PATH_SI_SCRATCH_PKG)/usr/bin/$(link))
     633
     634# Desktop stuff in /usr/share/applications/.
     635        $(SED)  -e "s+@VBOX_PRODUCT@+$(VBOX_PRODUCT)+" \
     636                -e "s+@VBOX_DOC_PATH@+/opt/VirtualBox+" \
     637                --output $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/applications/virtualbox.desktop \
     638                $(VBOX_PATH_SOL_INST_SRC)/../common/virtualbox.desktop.in
     639        $(CHMOD) 0644 $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/applications/virtualbox.desktop
     640
     641# Desktop stuff in /usr/share/mime/packages/ (S10 cannot deal with icon information in virtualbox.xml).
     642        $(SED)  -e '/<icon/d' \
     643                --output $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/mime/packages/virtualbox.xml \
     644                $(VBOX_PATH_SOL_INST_SRC)/../common/virtualbox.xml
     645        $(CHMOD) 0644 $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/mime/packages/virtualbox.xml
     646
     647# Desktop stuff in /usr/share/application-registry.
     648        $(SED)  -e "s+@VBOX_PRODUCT@+$(VBOX_PRODUCT)+" \
     649                --output $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/application-registry/virtualbox.applications \
     650                $(VBOX_PATH_SOL_INST_SRC)/virtualbox.applications.in
     651        $(CHMOD) 0644 $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/application-registry/virtualbox.applications
     652
     653# Icons stuff under /usr/share/icons/hicolor/<size>x<size>/mimetypes/.
     654        $(foreach size, $(VBOX_SI_ICON_SIZES), $(foreach type, $(VBOX_SI_ICON_TYPES) \
     655                ,$(NLTAB)$(INSTALL) -m 0644 \
     656                        $(PATH_ROOT)/src/VBox/Resources/other/virtualbox-$(type)-$(size)px.png \
     657                        $(VBOX_PATH_SI_SCRATCH_PKG)/usr/share/icons/hicolor/$(size)x$(size)/mimetypes/virtualbox-$(type).png))
     658
     659# Files related to package creation.
     660        $(SED)  -e "s/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g" \
    569661                -e "s/@VBOX_VENDOR@/$(VBOX_VENDOR)/g" \
    570662                -e "s/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g" \
     
    572664                -e "s/@VBOX_VERSION_REVSTAMP@/$(PKGINFO_REVSTAMP)/g" \
    573665                -e "s/@UNAME_P@/$(PKGINFO_ARCH)/g" \
    574                 --output $(SOLARIS_BASEINST_DIR)/vbox.pkginfo \
     666                --output $(VBOX_PATH_SI_SCRATCH_PKG)/vbox.pkginfo \
    575667                $(VBOX_PATH_SOL_INST_SRC)/vbox.pkginfo
    576         @# @todo BLDDIRS doesn't do "-p" subdir creation; so create for now
    577         $(QUIET)$(if $(VBOX_WITH_NETADP),$(MKDIR) -p $(SOLARIS_ETC_DIR),)
    578         $(QUIET)$(MKDIR) -p $(SOLARIS_VBOXSMF_DIR)
    579         $(QUIET)$(if $(VBOX_WITH_QTGUI),$(MKDIR) -p $(SOLARIS_USRSHR_APPS_DIR),)
    580         $(QUIET)$(MKDIR) -p $(SOLARIS_USRSHR_APPREG_DIR)
    581         $(QUIET)$(MKDIR) -p $(SOLARIS_USRSHR_MIMEXML_DIR)
    582         $(QUIET)$(MKDIR) -p $(SOLARIS_USRSHR_MIMEINFO_DIR)
    583         $(QUIET)$(MKDIR) -p $(SOLARIS_USRSHR_PIXMAPS_DIR)
    584         $(QUIET)$(if $(VBOX_WITH_NETADP),$(INSTALL) -m 0644 $(PATH_ROOT)/src/VBox/HostDrivers/VBoxNetAdp/solaris/hostname.vboxnet0    $(SOLARIS_ETC_DIR)/hostname.vboxnet0,)
    585         $(QUIET)$(INSTALL) -m 0644 $(PATH_STAGE_BIN)/LICENSE                                                          $(SOLARIS_VBOXINST_DIR)/LICENSE
    586         # don't display the license on package install, since 4.0
    587         #$(QUIET)$(INSTALL) -m 0644 $(PATH_STAGE_BIN)/LICENSE                                                          $(SOLARIS_BASEINST_DIR)/vbox.copyright
    588         $(QUIET)$(INSTALL) -m 0644 $(PATH_STAGE_BIN)/LICENSE                                                          $(SOLARIS_BASEINST_DIR)/LICENSE
    589 ifndef VBOX_OSE
    590         $(QUIET)$(if $(VBOX_WITH_VBOXSDL),$(INSTALL) -m 0644 $(PATH_DEVTOOLS_TRG)/libSDL/v1.2.13/lib/libSDL-1.2.so.0.11.2    $(SOLARIS_VBOXINST_DIR_ISA)/libSDL-1.2.so.0,)
    591 endif
    592         @# @todo -XXX- how to get rid of this manual MKDIR ?
    593 ifdef VBOX_WITH_PYTHON
    594         $(QUIET)$(if $(SOL64_PKG),$(MKDIR) -p $(SOLARIS_VBOXINST_DIR)/$(VBOX_SOL_PYTHON_DIR_64),)
    595  ifdef VBOX_WITH_32_ON_64_MAIN_API
    596         $(QUIET)$(INSTALL) -m 0644 $(if $(VBOX_DO_STRIP),-s) $(filter     %_x86.so,$(wildcard $(SOLARIS_OUT_BIN)/VBoxPython*.so)) $(SOLARIS_VBOXINST_DIR)/
    597         $(QUIET)$(INSTALL) -m 0644 $(if $(VBOX_DO_STRIP),-s) $(filter-out %_x86.so,$(wildcard $(SOLARIS_OUT_BIN)/VBoxPython*.so)) $(SOLARIS_VBOXINST_DIR)/$(VBOX_SOL_PYTHON_DIR_64)/
    598  else
    599         $(QUIET)$(INSTALL) -m 0644 $(if $(VBOX_DO_STRIP),-s) $(wildcard $(SOLARIS_OUT_BIN)/VBoxPython*.so)                   $(SOLARIS_VBOXINST_DIR)/$(if $(SOL64_PKG),$(VBOX_SOL_PYTHON_DIR_64)/,)
    600  endif
    601 endif
    602         $(QUIET)$(if $(VBOX_WITH_QTGUI),$(if $(VBOX_WITH_QT4_SUN),$(INSTALL) -m 0755 $(VBOX_PATH_QT4)/bin/qtconfig           $(SOLARIS_VBOXINST_DIR_ISA)/VBoxQtconfig,),)
    603         $(QUIET)$(INSTALL) -m 0755 $(SOLARIS_OUT_BIN)/VBoxISAExec                                                            $(SOLARIS_VBOXINST_DIR)/VBoxISAExec
    604         $(QUIET)$(if $(VBOX_WITH_QTGUI),$(LN_SYMLINK) -f ../rdesktop-vrdp-keymaps                                            $(SOLARIS_VBOXINST_DIR_ISA)/rdesktop-vrdp-keymaps,)
    605         $(QUIET)$(if $(VBOX_WITH_QTGUI),$(LN_SYMLINK) -f ../additions                                                        $(SOLARIS_VBOXINST_DIR_ISA)/additions,)
    606         $(QUIET)$(if $(VBOX_WITH_EFIFW_PACKING),$(LN_SYMLINK) -f ../VBoxEFI32.fd                                             $(SOLARIS_VBOXINST_DIR_ISA)/,)
    607         $(QUIET)$(if $(VBOX_WITH_EFIFW_PACKING),$(LN_SYMLINK) -f ../VBoxEFI64.fd                                             $(SOLARIS_VBOXINST_DIR_ISA)/,)
    608         $(QUIET)$(LN_SYMLINK) -f ./pkginstall.sh                                                                             $(SOLARIS_VBOXINST_DIR)/ipsinstall.sh
    609         $(QUIET)$(if $(VBOX_WITH_QTGUI),$(LN_SYMLINK) -f ../../$(SOLARIS_VBOXINST_SUBDIR)/VBox.sh                            $(SOLARIS_USRBIN_DIR)/VBoxQtconfig,)
    610         $(QUIET)$(INSTALL) -m 0644 $(VBOX_PATH_SOL_INST_SRC)/virtualbox-zoneaccess.xml                                       $(SOLARIS_VBOXSMF_DIR)/virtualbox-zoneaccess.xml
    611         $(QUIET)$(if $(VBOX_WITH_WEBSERVICES),$(INSTALL) -m 0644 $(VBOX_PATH_SOL_INST_SRC)/virtualbox-webservice.xml         $(SOLARIS_VBOXSMF_DIR)/virtualbox-webservice.xml,)
    612         $(QUIET)$(INSTALL) -m 0644 $(VBOX_PATH_SOL_INST_SRC)/virtualbox-balloonctrl.xml                                      $(SOLARIS_VBOXSMF_DIR)/virtualbox-balloonctrl.xml
    613         $(QUIET)$(INSTALL) -m 0644 $(VBOX_PATH_SOL_INST_SRC)/virtualbox-autostart.xml                                        $(SOLARIS_VBOXSMF_DIR)/virtualbox-autostart.xml
    614         $(QUIET)$(if $(not $(VBOX_WITH_NETFLT))$(INSTALL) -m 0755 $(PATH_ROOT)/src/VBox/Devices/Network/solaris/vnicinit_solaris.sh            $(SOLARIS_VBOXINST_DIR)/vnic_setup.sh,)
    615         $(QUIET)$(if $(not $(VBOX_WITH_NETFLT))$(INSTALL) -m 0755 $(PATH_ROOT)/src/VBox/Devices/Network/solaris/vnicterm_solaris.sh            $(SOLARIS_VBOXINST_DIR)/vnic_term.sh,)
    616         $(QUIET)$(SED) \
    617                 -e "s/_HARDENED_/$(if $(VBOX_WITH_HARDENED),hardened,)/" \
    618                 --output $(SOLARIS_VBOXINST_DIR)/vboxconfig.sh.tmp \
    619                  $(PATH_STAGE_BIN)/vboxconfig.sh
    620         $(QUIET)$(INSTALL) -m 0755 $(SOLARIS_VBOXINST_DIR)/vboxconfig.sh.tmp                                    $(SOLARIS_VBOXINST_DIR)/vboxconfig.sh
    621         $(QUIET)$(RM) -f $(SOLARIS_VBOXINST_DIR)/vboxconfig.sh.tmp
    622         $(QUIET)$(SED) \
    623                 -e "s+@VBOX_PRODUCT@+$(VBOX_PRODUCT)+" \
    624                 -e "s+@VBOX_DOC_PATH@+/opt/VirtualBox+" \
    625                 --output $(SOLARIS_USRSHR_APPS_DIR)/virtualbox.desktop.tmp \
    626                 $(PATH_ROOT)/src/VBox/Installer/common/virtualbox.desktop.in
    627         $(QUIET)$(INSTALL) -m 0644 $(SOLARIS_USRSHR_APPS_DIR)/virtualbox.desktop.tmp                            $(SOLARIS_USRSHR_APPS_DIR)/virtualbox.desktop
    628         $(QUIET)$(RM) -f $(SOLARIS_USRSHR_APPS_DIR)/virtualbox.desktop.tmp
    629         # S10 cannot deal with icon information in virtualbox.xml
    630         $(QUIET)$(SED) \
    631                 -e '/<icon/d' \
    632                 --output $(SOLARIS_USRSHR_MIMEXML_DIR)/virtualbox.xml.tmp \
    633                 $(PATH_ROOT)/src/VBox/Installer/common/virtualbox.xml
    634         $(QUIET)$(INSTALL) -m 0644 $(SOLARIS_USRSHR_MIMEXML_DIR)/virtualbox.xml.tmp                             $(SOLARIS_USRSHR_MIMEXML_DIR)/virtualbox.xml
    635         $(QUIET)$(RM) -f $(SOLARIS_USRSHR_MIMEXML_DIR)/virtualbox.xml.tmp
    636         $(QUIET)$(SED) \
    637                 -e "s+@VBOX_PRODUCT@+$(VBOX_PRODUCT)+" \
    638                 --output $(SOLARIS_USRSHR_APPREG_DIR)/virtualbox.applications.tmp \
    639                 $(VBOX_PATH_SOL_INST_SRC)/virtualbox.applications.in
    640         $(QUIET)$(INSTALL) -m 0644 $(SOLARIS_USRSHR_APPREG_DIR)/virtualbox.applications.tmp                     $(SOLARIS_USRSHR_APPREG_DIR)/virtualbox.applications
    641         $(QUIET)$(RM) -f $(SOLARIS_USRSHR_APPREG_DIR)/virtualbox.applications.tmp
    642         $(QUIET)$(INSTALL) -m 0644 $(VBOX_PATH_SOL_INST_SRC)/virtualbox.keys                                    $(SOLARIS_USRSHR_MIMEINFO_DIR)/virtualbox.keys
    643         $(QUIET)$(INSTALL) -m 0644 $(VBOX_PATH_SOL_INST_SRC)/virtualbox.mime                                    $(SOLARIS_USRSHR_MIMEINFO_DIR)/virtualbox.mime
    644         $(QUIET)$(INSTALL) -m 0755 $(VBOX_PATH_SOL_INST_SRC)/postinstall.sh                                     $(SOLARIS_BASEINST_DIR)/postinstall.sh
    645         $(QUIET)$(INSTALL) -m 0644 $(SOLARIS_OUT_BIN)/VBox.png                                                  $(SOLARIS_USRSHR_PIXMAPS_DIR)/VBox.png
    646         $(QUIET)$(INSTALL) -m 0644 $(SOLARIS_OUT_BIN)/virtualbox.png                                            $(SOLARIS_USRSHR_PIXMAPS_DIR)/virtualbox.png
    647         $(QUIET)$(INSTALL) -m 0755 $(VBOX_PATH_SOL_INST_SRC)/postinstall.sh                                     $(SOLARIS_BASEINST_DIR)/postinstall.sh
    648         $(QUIET)$(INSTALL) -m 0755 $(VBOX_PATH_SOL_INST_SRC)/checkinstall.sh                                    $(SOLARIS_BASEINST_DIR)/checkinstall.sh
    649         $(QUIET)$(INSTALL) -m 0755 $(VBOX_PATH_SOL_INST_SRC)/preremove.sh                                       $(SOLARIS_BASEINST_DIR)/preremove.sh
    650         $(QUIET)$(INSTALL) -m 0755 $(VBOX_PATH_SOL_INST_SRC)/makepackage.sh                                     $(SOLARIS_BASEINST_DIR)/makepackage.sh
    651         $(QUIET)$(INSTALL) -m 0644 $(VBOX_PATH_SOL_INST_SRC)/vbox.pkgresponse                                   $(SOLARIS_VBOXINST_DIR)/autoresponse
    652         $(QUIET)$(INSTALL) -m 0644 $(VBOX_PATH_SOL_INST_SRC)/vbox.pkgresponse                                   $(SOLARIS_BASEINST_DIR)/autoresponse
    653         $(QUIET)$(INSTALL) -m 0644 $(VBOX_PATH_SOL_INST_SRC)/vbox.space                                         $(SOLARIS_BASEINST_DIR)/vbox.space
     668        $(INSTALL) -m 0644 $(VBOX_PATH_SOL_INST_SRC)/vbox.pkgresponse   $(VBOX_PATH_SI_SCRATCH_PKG)/autoresponse
     669
     670# Done copying file, create the package!
     671        $(call MSG_L1,Creating install package: $(PKG_FILENAME).pkg)
     672        $(REDIRECT) -C $(VBOX_PATH_SOL_INST_SRC) -- $(VBOX_PATH_SI_SCRATCH_PKG)/makepackage.sh \
     673                $(if-expr defined(VBOX_WITH_HARDENING),--hardened,) \
     674                $(VBOX_PATH_SI_SCRATCH_PKG) \
     675                $(PKG_FILENAME) \
     676                $(KBUILD_TARGET_ARCH) \
     677                $(VBOX_SVN_REV)
     678        $(MV) -- "$(VBOX_PATH_SI_SCRATCH_PKG)/$(PKG_FILENAME).pkg" "$@"
     679        $(RM) -Rf -- "$(VBOX_PATH_SI_SCRATCH_PKG)/"
     680
     681
     682#
     683# Creates the tar file containing license, readme and autoresponse file in addition to the system V package.
     684#
     685solaris-package-tar-gz:: $(PATH_STAGE_BIN)/$(PKG_FILENAME).tar.gz
     686$(PATH_STAGE_BIN)/$(PKG_FILENAME).tar.gz: \
     687                $(VBOX_PATH_SI_SCRATCH)/$(PKG_FILENAME).pkg \
     688                $(PATH_STAGE_BIN)/LICENSE \
     689                $(VBOX_PATH_SOL_INST_SRC)/vbox.pkgresponse \
     690                $(PATH_ROOT)/doc/ReadMe-Solaris.txt \
     691                $(VBOX_SI_DEP_ON_MAKEFILE) \
     692                | $(VBOX_PATH_SI_SCRATCH)/
     693        $(call MSG_L1,Creating final tar.gz package: $(PKG_FILENAME).tar.gz)
     694        $(QUIET)$(RM) -f -- $(VBOX_PATH_SI_SCRATCH)/ReadMe.txt "$@"
    654695        $(QUIET)$(SED) \
    655696                -e "s/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g" \
     
    658699                -e "s/@BUILD_TARGET_ARCH@/$(KBUILD_TARGET_ARCH)/g" \
    659700                -e "s/@VBOX_SVN_REV@/$(VBOX_SVN_REV)/g" \
    660                 --output $(SOLARIS_BASEINST_DIR)/ReadMe.txt \
     701                --output $(VBOX_PATH_SI_SCRATCH)/ReadMe.txt \
    661702                $(PATH_ROOT)/doc/ReadMe-Solaris.txt
    662         $(call MSG_L1,Creating install package: $(PKG_FILENAME).tar.gz)
    663         $(QUIET)$(REDIRECT) -C $(VBOX_PATH_SOL_INST_SRC) -- $(SOLARIS_BASEINST_DIR)/makepackage.sh $(if $(VBOX_WITH_HARDENING),--hardened) \
    664                 $(SOLARIS_BASEINST_DIR) \
    665                 $(PKG_FILENAME) \
    666                 $(KBUILD_TARGET_ARCH) \
    667                 $(VBOX_SVN_REV) \
    668         $(call MSG_L1,Creating final tar.gz package)
    669         $(QUIET)$(SOL_GTAR) -C $(SOLARIS_BASEINST_DIR) -zcvf $(SOLARIS_BASEINST_DIR)/$(PKG_FILENAME).tar.gz $(SOLARIS_TAR_GZ_FILES)
    670         $(QUIET)$(INSTALL) -m 0644 $(SOLARIS_BASEINST_DIR)/$(PKG_FILENAME).tar.gz $(SOLARIS_OUT_BIN)
    671         @# Clean up files emitted as side-effect or result of packing
    672         $(QUIET)$(RM) -f $(SOLARIS_BASEINST_DIR)/$(PKG_FILENAME).tar.gz
    673         $(QUIET)$(RM) -f $(SOLARIS_BASEINST_DIR)/$(PKG_FILENAME).pkg
     703        $(QUIET)$(VBOX_SI_GTAR) -C $(VBOX_PATH_SI_SCRATCH) -czvf "$@" --show-transformed-name \
     704                --xform 's,^.*/,,g' --xform 's,vbox.pkgresponse,autoresponse,' \
     705                $(VBOX_PATH_SI_SCRATCH)/ReadMe.txt \
     706                $(PATH_STAGE_BIN)/LICENSE \
     707                $(VBOX_PATH_SOL_INST_SRC)/vbox.pkgresponse \
     708                $(VBOX_PATH_SI_SCRATCH)/$(PKG_FILENAME).pkg
     709        $(QUIET)$(RM) -f -- $(VBOX_PATH_SI_SCRATCH)/ReadMe.txt
    674710        $(call MSG_L1,Packaging $@ is completed.)
    675711
    676712
    677 #
    678 # 32-bit Main Package
    679 #
    680 $(addprefix $(SOLARIS_VBOXINST_DIR_32)/,$(SOLARIS_STRIP_BINS)): \
    681                 $(SOLARIS_VBOXINST_DIR_32)/% : $(SOLARIS_OUT_BIN_32)/% | $$(dir $$@)
    682         $(INSTALL) -m 0644 $(if $(VBOX_DO_STRIP),-s,) $< $@
    683 
    684 $(addprefix $(SOLARIS_DRIVERINST_DIR_32)/,$(SOLARIS_DRIVER_BINS)): \
    685                 $(SOLARIS_DRIVERINST_DIR_32)/% : $(SOLARIS_OUT_BIN_32)/% | $$(dir $$@)
    686         $(INSTALL) -m 0644 $(if $(VBOX_DO_STRIP),-s,) $< $@
    687 
    688 $(addprefix $(SOLARIS_VBOXINST_DIR_32)/,$(SOLARIS_STRIP_BIN_32)): \
    689                 $(SOLARIS_VBOXINST_DIR_32)/% : $(SOLARIS_OUT_BIN_32)/% | $$(dir $$@)
    690         $(INSTALL) -m 0644 $(if $(VBOX_DO_STRIP),-s,) $< $@
    691 
    692 $(addprefix $(SOLARIS_VBOXINST_DIR_32)/,$(SOLARIS_STRIP_EXES)): \
    693                 $(SOLARIS_VBOXINST_DIR_32)/% : $(SOLARIS_OUT_BIN_32)/% | $$(dir $$@)
    694         $(INSTALL) -m 0755 $(if $(VBOX_DO_STRIP),-s,) $< $@
    695 
    696 $(addprefix $(SOLARIS_VBOXINST_DIR_32)/,$(SOLARIS_STRIP_OBJS)): \
    697                 $(SOLARIS_VBOXINST_DIR_32)/% : $(SOLARIS_OUT_BIN_32)/% | $$(dir $$@)
    698         $(if $(VBOX_DO_STRIP),$(SOL_OBJCOPY) $< $@, $(INSTALL) -m 0644 $< $@)
    699 
    700 $(addprefix $(SOLARIS_VBOXINST_DIR_32)/,$(SOLARIS_NO_STRIP)): \
    701                 $(SOLARIS_VBOXINST_DIR_32)/% : $(SOLARIS_OUT_BIN_32)/% | $$(dir $$@)
    702         $(INSTALL) -m 0644 $< $@
    703 
    704 $(addprefix $(SOLARIS_VBOXINST_DIR_32)/,$(SOLARIS_QTLIBS)): \
    705                 $(SOLARIS_VBOXINST_DIR_32)/% : $(SOLARIS_PATH_QT_32)/lib/% | $$(dir $$@)
    706         $(INSTALL) -m 0644 $(if $(VBOX_DO_STRIP),-s,) $< $@
    707 
    708 #
    709 # 64-bit Main Package
    710 #
    711 $(addprefix $(SOLARIS_VBOXINST_DIR_64)/,$(SOLARIS_STRIP_BINS)): \
    712                 $(SOLARIS_VBOXINST_DIR_64)/% : $(SOLARIS_OUT_BIN_64)/% | $$(dir $$@)
    713         $(INSTALL) -m 0644 $(if $(VBOX_DO_STRIP),-s,) $< $@
    714 
    715 $(addprefix $(SOLARIS_DRIVERINST_DIR_64)/,$(SOLARIS_DRIVER_BINS)): \
    716                 $(SOLARIS_DRIVERINST_DIR_64)/% : $(SOLARIS_OUT_BIN_64)/% | $$(dir $$@)
    717         $(INSTALL) -m 0644 $(if $(VBOX_DO_STRIP),-s,) $< $@
    718 
    719 $(addprefix $(SOLARIS_VBOXINST_DIR_64)/,$(SOLARIS_STRIP_EXES)): \
    720                 $(SOLARIS_VBOXINST_DIR_64)/% : $(SOLARIS_OUT_BIN_64)/% | $$(dir $$@)
    721         $(INSTALL) -m 0755 $(if $(VBOX_DO_STRIP),-s,) $< $@
    722 
    723 $(addprefix $(SOLARIS_VBOXINST_DIR_64)/,$(SOLARIS_STRIP_OBJS)): \
    724                 $(SOLARIS_VBOXINST_DIR_64)/% : $(SOLARIS_OUT_BIN_64)/% | $$(dir $$@)
    725         $(if $(VBOX_DO_STRIP),$(SOL_OBJCOPY) $< $@, $(INSTALL) -m 0644 $< $@)
    726 
    727 $(addprefix $(SOLARIS_VBOXINST_DIR_64)/,$(SOLARIS_STRIP_OBJ_64)): \
    728                 $(SOLARIS_VBOXINST_DIR_64)/% : $(SOLARIS_OUT_BIN_64)/% | $$(dir $$@)
    729         $(if $(VBOX_DO_STRIP),$(SOL_OBJCOPY) $< $@, $(INSTALL) -m 0644 $< $@)
    730 
    731 $(addprefix $(SOLARIS_VBOXINST_DIR_64)/,$(SOLARIS_NO_STRIP)): \
    732                 $(SOLARIS_VBOXINST_DIR_64)/% : $(SOLARIS_OUT_BIN_64)/% | $$(dir $$@)
    733         $(INSTALL) -m 0644 $< $@
    734 
    735 $(addprefix $(SOLARIS_VBOXINST_DIR_64)/,$(SOLARIS_QTLIBS)): \
    736                 $(SOLARIS_VBOXINST_DIR_64)/% : $(SOLARIS_PATH_QT_64)/lib/% | $$(dir $$@)
    737         $(INSTALL) -m 0644 $(if $(VBOX_DO_STRIP),-s,) $< $@
    738 
    739 
    740 #
    741 # Common (32-bit and 64-bit)
    742 #
    743 $(addprefix $(SOLARIS_VBOXINST_DIR)/,$(SOLARIS_COMMON)): \
    744                 $(SOLARIS_VBOXINST_DIR)/% : $(PATH_STAGE_BIN)/% | $$(dir $$@)
    745         $(INSTALL) -m 0644 $< $@
    746 
    747 # Driver configuration files
    748 $(addprefix $(SOLARIS_DRIVERINST_DIR)/,$(SOLARIS_DRIVER_CONFS)): \
    749                 $(SOLARIS_DRIVERINST_DIR)/% : $(PATH_STAGE_BIN)/% | $$(dir $$@)
    750         $(INSTALL) -m 0644 $< $@
    751 
    752 # Common executables
    753 $(addprefix $(SOLARIS_VBOXINST_DIR)/,$(SOLARIS_COMMON_EXES)): \
    754                 $(SOLARIS_VBOXINST_DIR)/% : $(PATH_STAGE_BIN)/% | $$(dir $$@)
    755         $(INSTALL) -m 0755 $< $@
    756 
    757 # Common MIME icons
    758 $(addprefix $(SOLARIS_USRSHR_ICONS_DIR)/,$(SOLARIS_COMMON_ICONS)): \
    759                 $(SOLARIS_USRSHR_ICONS_DIR)/% : $(PATH_STAGE_BIN)/icons/% | $$(dir $$@)
    760         $(INSTALL) -m 0644 $< $@
    761 
    762 
    763 
    764 #
    765 # Common (relative symlinks to /opt/VirtualBox/ from /usr/bin/)
    766 # Some symlinks are created manually in the prepackage steps above (eg. VBoxQtconfig)
    767 # as those binaries do not originate from $(PATH_STAGE_BIN)
    768 #
    769 $(addprefix $(SOLARIS_USRBIN_DIR)/,$(SOLARIS_USRBIN_LINKS)): | $$(dir $$@)
    770         $(LN_SYMLINK) -f ../../$(SOLARIS_VBOXINST_SUBDIR)/VBox.sh $@
    771 
    772 
    773 
    774 #
    775 #  -=-=-=-=-=-=-=- Debug package -=-=-=-=-=-=-=-
    776 #
    777 $(PATH_STAGE_BIN)/$(DBG_ARCHIVE): \
     713## List of file list variable names relevant for debug info.
     714SOLARIS_FILE_LIST_DBGINFO_VARS := $(foreach var, $(SOLARIS_FILE_LIST_VARS), $(if-expr "$($(var).STRIP)" != "no",$(var),))
     715## Adds a .DBGDST property to each of the debug info file lists. Simplifies our job below
     716$(foreach var,$(SOLARIS_FILE_LIST_DBGINFO_VARS) \
     717        ,$(eval $(var).DBGDST := $(subst $(VBOX_PATH_SI_SCRATCH_PKG)/,$(VBOX_PATH_SI_SCRATCH_DBG)/,$(subst /opt/VirtualBox,,$($(var).DST)))))
     718
     719#
     720# Creates a tar file containing the debug info.
     721#
     722$(PATH_STAGE_BIN)/VirtualBoxDebug.tar.bz2: \
    778723                $(VBOX_VERSION_STAMP) \
    779                 $(VBOX_PATH_SOL_INST_SRC)/Makefile.kmk \
    780                 $(SOLARIS_DBG_DEPFILES)
    781         $(call MSG_L1,Installing debug binaries $(SOLARIS_DBG_DIR))
     724                $(VBOX_SI_DEP_ON_MAKEFILE) \
     725                $(foreach var, $(SOLARIS_FILE_LIST_DBGINFO_VARS), $(foreach file, $($(var)), $($(var).SRC)/$(file)))
     726        $(call MSG_L1,Preparing $@)
     727        $(RM) -Rf -- "$(VBOX_PATH_SI_SCRATCH_DBG)/"
     728        $(RM) -f -- "$@"
     729        $(MKDIR) -p -m 0755 \
     730                $(VBOX_PATH_SI_SCRATCH_DBG)/ \
     731                $(sort $(foreach var, $(SOLARIS_FILE_LIST_DBGINFO_VARS), $($(var).DBGDST)/ $(if-expr "$($(var).SUBDIRS)" == "yes" \
     732                ,$(sort $(dir $(foreach file, $($(var)), $($(var).DBGDST)/$(file)))),)))
     733        $(foreach var, $(SOLARIS_FILE_LIST_DBGINFO_VARS),$(foreach file, $($(var)) \
     734        ,$(NLTAB)$(VBOX_SI_OBJCOPY_DBGINFO) "$($(var).SRC)/$(file)" "$($(var).DBGDST)/$(file)"))
    782735        $(call MSG_L1,Packing $@)
    783         $(QUIET)$(SOL_GTAR) --dereference --owner 0 --group 0 \
    784                 -cjRhf "$(PATH_STAGE_BIN)/$(DBG_ARCHIVE)" -C "$(SOLARIS_INST_OUT_DIR)" "$(SOLARIS_DBG_DIR_NAME)"
     736        $(QUIET)$(VBOX_SI_GTAR) --dereference --owner 0 --group 0 \
     737                -cvjRhf "$@" -C "$(VBOX_PATH_SI_SCRATCH_DBG)/.." "./$(notdir $(VBOX_PATH_SI_SCRATCH_DBG))/"
    785738        $(QUIET)$(CHMOD) 0644 $@
    786739        $(call MSG_L1,Packaging $@ is completed.)
    787 
    788 #
    789 # 32-bit Debug package
    790 #
    791 $(addprefix $(SOLARIS_DBG_DIR_32)/,$(SOLARIS_STRIP_BINS) $(SOLARIS_STRIP_EXES)): \
    792                 $(SOLARIS_DBG_DIR_32)/% : $(SOLARIS_OUT_BIN_32)/% | $$(dir $$@)
    793         $(SOL_DBG_OBJCOPY) $< $@
    794 
    795 $(addprefix $(SOLARIS_DBG_DIR_32)/,$(SOLARIS_DRIVER_BINS)): \
    796                 $(SOLARIS_DBG_DIR_32)/% : $(SOLARIS_OUT_BIN_32)/% | $$(dir $$@)
    797         $(SOL_DBG_OBJCOPY) $< $@
    798 
    799 
    800 #
    801 # 64-bit Debug package
    802 #
    803 $(addprefix $(SOLARIS_DBG_DIR_64)/,$(SOLARIS_STRIP_BINS) $(SOLARIS_STRIP_EXES)): \
    804                 $(SOLARIS_DBG_DIR_64)/% : $(SOLARIS_OUT_BIN_64)/% | $$(dir $$@)
    805         $(SOL_DBG_OBJCOPY) $< $@
    806 
    807 $(addprefix $(SOLARIS_DBG_DIR_64)/,$(SOLARIS_DRIVER_BINS)): \
    808                 $(SOLARIS_DBG_DIR_64)/% : $(SOLARIS_OUT_BIN_64)/% | $$(dir $$@)
    809         $(SOL_DBG_OBJCOPY) $< $@
    810 
     740        $(RM) -Rf "$(VBOX_PATH_SI_SCRATCH_DBG)/"
     741
Note: See TracChangeset for help on using the changeset viewer.

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