Makefile.kmk revision 1118e5cc554674bf0e3828c2d838caf6a8effe5a
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Makefile for the Linux installer.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Copyright (C) 2006-2007 Sun Microsystems, Inc.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# This file is part of VirtualBox Open Source Edition (OSE), as
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# available from http://www.virtualbox.org. This file is free software;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# you can redistribute it and/or modify it under the terms of the GNU
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# General Public License (GPL) as published by the Free Software
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Foundation, in version 2 as it comes in the "COPYING" file of the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Clara, CA 95054 USA or visit http://www.sun.com if you need
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# additional information or have any questions.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterSUB_DEPTH = ../../../..
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterinclude $(KBUILD_PATH)/subheader.kmk
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifneq ($(KBUILD_HOST),linux)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(error "The Linux installer can only be built on Linux!")
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Globals and targets.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterVBOX_PATH_LNX_INST_SRC := $(PATH_SUB_CURRENT)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterVBOX_LNX_INST_OUT_DIR := $(PATH_TARGET)/Installer/linux
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterVBOX_LNX_INST_STAGE_DIR := $(PATH_TARGET)/Installer/linux/install
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterVBOX_LNX_DBG_PATH := usr/lib/debug/opt/VirtualBox-$(VBOX_VERSION_STRING)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterVBOX_LNX_PACKAGE_NAME = VirtualBox-$(VBOX_VERSION_STRING)-r$(VBOX_SVN_REV).run
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Unset this to speed up things during makefile hacking.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterVBOX_LNX_INST_DEP_ON_MAKEFILE := $(MAKEFILE_CURRENT)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterBLDDIRS += $(VBOX_LNX_INST_OUT_DIR) $(VBOX_LNX_INST_STAGE_DIR)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterPACKING += $(PATH_BIN)/VirtualBox.tar.bz2
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterif !defined(VBOX_NO_LINUX_RUN_INSTALLER) && !defined(VBOX_OSE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster PACKING += $(PATH_BIN)/$(VBOX_LNX_PACKAGE_NAME) \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterOTHER_CLEAN += \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(addprefix $(VBOX_LNX_INST_STAGE_DIR)/,\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(wildcard $(VBOX_LNX_INST_OUT_DIR)/VirtualBox-*) \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(VBOX_LNX_INST_OUT_DIR)/vboxdrv.sh \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(VBOX_LNX_INST_OUT_DIR)/vboxnet.sh \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(VBOX_LNX_INST_OUT_DIR)/install.sh
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Linux installs.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterINSTALLS += linux-bin
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterlinux-bin_INST = bin/
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterlinux-bin_MODE = a+rx,u+w
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterlinux-bin_SOURCES = \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(PATH_linux-bin)/VBoxAddIF.sh
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterlinux-bin_CLEAN = \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(PATH_linux-bin)/VBoxAddIF.sh
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster$$(PATH_linux-bin)/VBoxAddIF.sh: $(PATH_SUB_CURRENT)/VBoxAddIF.sh $(VBOX_VERSION_STAMP) | $$(dir $$@)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(call MSG_GENERATE,,$@,$<)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(QUIET)$(SED) -e "s;_VERSION_;$(VBOX_VERSION_STRING);g" --output $@ $<
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterINSTALLS += linux-misc
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterlinux-misc_INST = bin/
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterlinux-misc_MODE = a+r,u+w
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterlinux-misc_SOURCES = \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(PATH_ROOT)/src/VBox/Frontends/VirtualBox/images/$(if $(VBOX_OSE),OSE,NonOSE)/VirtualBox_32px.png=>VBox.png \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(if $(VBOX_OSE),,$(VBOX_BRAND_LICENSE_TXT)=>LICENSE) \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(if $(VBOX_WITH_QT4GUI),$(PATH_linux-misc)/VirtualBox.desktop,)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster$$(PATH_linux-misc)/VirtualBox.desktop: $(PATH_SUB_CURRENT)/VirtualBox.desktop $(VBOX_VERSION_STAMP) | $$(dir $$@)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(call MSG_GENERATE,,$@,$<)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifdef VBOX_PATH_PACKAGE_DOCS
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(QUIET)$(SED) -e "s+\$$VBOX_DOC_PATH+$(VBOX_PATH_PACKAGE_DOCS)+" --output $@ $<
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(QUIET)$(SED) -e "s+\$$VBOX_DOC_PATH+/opt/VirtualBox-$(VBOX_VERSION_STRING)+" --output $@ $<
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# The files residing in bin/ that we'll ship.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Strip these binaries
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterVBOX_LNX_STRIP_BIN = \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(if $(VBOX_WITH_FFMPEG),VBoxFFmpegFB.so,) \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBoxManage \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(if $(VBOX_WITH_VBOXSDL),VBoxSDL $(if $(VBOX_WITH_HARDENING),VBoxSDL.so),) \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(if $(VBOX_WITH_GUEST_PROPS),VBoxGuestPropSvc.so) \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBoxXPCOMIPCD \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(if $(VBOX_WITH_PYTHON),VBoxPython.so,) \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBoxTunctl \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(if $(VBOX_OSE),,VRDPAuth.so)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Do not remove relocation information of these binaries
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterVBOX_LNX_STRIP_OBJ = \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifeq ($(KBUILD_TARGET_ARCH),amd64)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBOX_LNX_STRIP_OBJ += \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Do not strip anything of these files
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterVBOX_LNX_NO_STRIP = \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(if $(VBOX_OSE),,LICENSE) \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifdef VBOX_WITH_QT4GUI
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster include $(PATH_ROOT)/src/VBox/Frontends/VirtualBox4/nls/ApprovedLanguages.kmk
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBOX_LNX_STRIP_BIN += \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VirtualBox \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(if $(VBOX_WITH_HARDENING),VirtualBox.so) \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(if $(VBOX_WITH_DEBUGGER_GUI),VBoxDbg.so)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBOX_LNX_NO_STRIP += \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(if $(VBOX_OSE),,License-$(VBOX_LICENSE_VER).html) \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(if $(VBOX_WITH_QT4_SUN),$(notdir $(wildcard $(PATH_BIN)/libVBox*)),) \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(if $(VBOX_WITH_QT4_SUN),accessible/libqtaccessiblewidgets.so,) \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(foreach f,$(VBOX_APPROVED_GUI_LANGUAGES),nls/VirtualBox_$(f).qm nls/qt_$(f).qm)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Guest Additions
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifdef VBOX_WITH_ADDITIONS_PACKING
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBOX_LNX_NO_STRIP += \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Documentation
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifdef VBOX_WITH_DOCS_PACKING
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBOX_LNX_NO_STRIP += \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(notdir $(wildcard $(PATH_BIN)/UserManual*.pdf)) \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(notdir $(wildcard $(PATH_BIN)/VirtualBox*.chm))
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBOX_LNX_STRIP_BIN += \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(if $(VBOX_WITH_KCHMVIEWER),kchmviewer,)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifdef VBOX_WITH_VRDP
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBOX_LNX_STRIP_BIN += \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBOX_LNX_NO_STRIP += \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ifdef VBOX_WITH_VRDP_RDESKTOP
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBOX_LNX_NO_STRIP += \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster rdesktop-vrdp-keymaps
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBOX_LNX_STRIP_BIN += \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster rdesktop-vrdp
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifdef VBOX_WITH_HEADLESS
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBOX_LNX_STRIP_BIN += \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBoxHeadless \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(if $(VBOX_WITH_HARDENING),VBoxHeadless.so)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Webservices
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifdef VBOX_WITH_WEBSERVICES
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBOX_LNX_STRIP_BIN += \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster vboxwebsrv \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# All the bin files that goes into the archives.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterVBOX_LNX_ARCH_FILES := $(VBOX_LNX_STRIP_BIN) $(VBOX_LNX_STRIP_OBJ) $(VBOX_LNX_NO_STRIP)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Cleanup of the files we copy/symlink from bin.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterOTHER_CLEAN += $(addprefix $(VBOX_LNX_INST_OUT_DIR)/archive/,$(VBOX_LNX_ARCH_FILES)) \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(addprefix $(VBOX_LNX_INST_OUT_DIR)/archive-dbg/$(VBOX_LNX_DBG_PATH)/,$(VBOX_LNX_STRIP_BIN))
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# The generic installer.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster$(PATH_BIN)/$(VBOX_LNX_PACKAGE_NAME): \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(VBOX_LNX_INST_STAGE_DIR)/VirtualBox.tar.bz2 \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(VBOX_VERSION_STAMP) \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(VBOX_PATH_LNX_INST_SRC)/routines.sh \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(VBOX_PATH_LNX_INST_SRC)/deffiles \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(if $(VBOX_OSE),,$(VBOX_BRAND_LICENSE_TXT)) \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(VBOX_LNX_INST_OUT_DIR)/vboxnet.sh \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(VBOX_LNX_INST_OUT_DIR)/vboxdrv.sh \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(VBOX_LNX_INST_OUT_DIR)/install.sh
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(call MSG_TOOL,makeself,,$@)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(QUIET)$(RM) -f $(wildcard $(PATH_BIN)/VirtualBox-*.run)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(QUIET)$(INSTALL) -m 0755 $(VBOX_PATH_LNX_INST_SRC)/routines.sh $(VBOX_LNX_INST_STAGE_DIR)/
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(QUIET)$(INSTALL) -m 0755 $(VBOX_PATH_LNX_INST_SRC)/deffiles $(VBOX_LNX_INST_STAGE_DIR)/
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(QUIET)$(if $(VBOX_OSE),,$(INSTALL) -m 0644 $(VBOX_BRAND_LICENSE_TXT)) $(VBOX_LNX_INST_STAGE_DIR)/LICENSE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(QUIET)$(INSTALL) -m 0755 $(VBOX_LNX_INST_OUT_DIR)/vboxnet.sh $(VBOX_LNX_INST_STAGE_DIR)/
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(QUIET)$(INSTALL) -m 0755 $(VBOX_LNX_INST_OUT_DIR)/vboxdrv.sh $(VBOX_LNX_INST_STAGE_DIR)/
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(QUIET)$(INSTALL) -m 0755 $(VBOX_LNX_INST_OUT_DIR)/install.sh $(VBOX_LNX_INST_STAGE_DIR)/
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(QUIET)$(RM) -f $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(QUIET)$(VBOX_MAKESELF) --follow --nocomp $(VBOX_LNX_INST_STAGE_DIR) $@ \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "VirtualBox for Linux installation" ./install.sh "\$$0 1> /dev/null"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# files that needs editing before they can be included in the generic installer.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster$(VBOX_LNX_INST_OUT_DIR)/vboxdrv.sh: $(VBOX_PATH_LNX_INST_SRC)/vboxdrv.sh.in | $$(dir $$@)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(QUIET)$(SED_EXT) -e "s|%NOLSB%|yes|g; s|%PACKAGE%|virtualbox|g" --output $@ $<
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster$(VBOX_LNX_INST_OUT_DIR)/vboxnet.sh: $(VBOX_PATH_LNX_INST_SRC)/vboxnet.sh.in | $$(dir $$@)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(QUIET)$(SED_EXT) -e "s|%NOLSB%|yes|g" --output $@ $<
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster$(VBOX_LNX_INST_OUT_DIR)/install.sh: $(VBOX_PATH_LNX_INST_SRC)/install.sh | $$(dir $$@)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(QUIET)$(SED) \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster -e "s;_VERSION_;$(VBOX_VERSION_STRING);g" \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster -e "s;_BUILD_;$(date-utc );g" \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster -e "s;_ARCH_;$(KBUILD_TARGET_ARCH);g" \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster -e "s;_HARDENED_;$(VBOX_WITH_HARDENING);g" \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster --output $@ \
6cf99bcf5206a0fcc9dd9296fc46ac28c3fe8adePeter Major# .tar.bz2 for converting into .run
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster$(VBOX_LNX_INST_STAGE_DIR)/VirtualBox.tar.bz2: \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(addprefix $(VBOX_LNX_INST_OUT_DIR)/archive/, $(VBOX_LNX_ARCH_FILES)) \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(VBOX_LNX_INST_DEP_ON_MAKEFILE) \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(VBOX_VERSION_STAMP)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(call MSG_L1,Packing $@)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(QUIET)$(RM) -f -- $@ $(patsubst %.bz2,%,$@)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(QUIET)$(MKDIR) -p $(@D)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifdef VBOX_USE_PBZIP2
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(QUIET)tar --owner 0 --group 0 -cRhf $(patsubst %.bz2,%,$@) -C $(VBOX_LNX_INST_OUT_DIR)/archive $(VBOX_LNX_ARCH_FILES)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(QUIET)pbzip2 $(patsubst %.bz2,%,$@)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(QUIET)tar --owner 0 --group 0 -cjRhf $@ -C $(VBOX_LNX_INST_OUT_DIR)/archive $(VBOX_LNX_ARCH_FILES)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(QUIET)$(CHMOD) 0644 $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# .tar.bz2 for distribution with the files under VirtualBox-<ver>/.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(addprefix $(VBOX_LNX_INST_OUT_DIR)/archive/, $(VBOX_LNX_ARCH_FILES)) \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(VBOX_LNX_INST_DEP_ON_MAKEFILE) \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(VBOX_VERSION_STAMP)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(call MSG_L1,Packing $@)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(QUIET)$(RM) -f -- $(VBOX_LNX_INST_OUT_DIR)/VirtualBox-$(VBOX_VERSION_STRING) $@ $(patsubst %.bz2,%,$@)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(QUIET)$(LN_SYMLINK) $(VBOX_LNX_INST_OUT_DIR)/archive/ $(VBOX_LNX_INST_OUT_DIR)/VirtualBox-$(VBOX_VERSION_STRING)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifdef VBOX_USE_PBZIP2
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(QUIET)tar --owner 0 --group 0 -cRhf $(patsubst %.bz2,%,$@) -C $(VBOX_LNX_INST_OUT_DIR) \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(addprefix VirtualBox-$(VBOX_VERSION_STRING)/,$(VBOX_LNX_ARCH_FILES))
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(QUIET)pbzip2 $(patsubst %.bz2,%,$@)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(QUIET)tar --owner 0 --group 0 -cjRhf $@ -C $(VBOX_LNX_INST_OUT_DIR) \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(addprefix VirtualBox-$(VBOX_VERSION_STRING)/,$(VBOX_LNX_ARCH_FILES))
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(QUIET)$(RM) -f -- $(VBOX_LNX_INST_OUT_DIR)/VirtualBox-$(VBOX_VERSION_STRING)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# pattern rule for stripping and copying the VBOX_LNX_STRIP_BIN files to archive/
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster$(addprefix $(VBOX_LNX_INST_OUT_DIR)/archive/,$(VBOX_LNX_STRIP_BIN)): \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(VBOX_LNX_INST_OUT_DIR)/archive/% : $(PATH_BIN)/% \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(if $(VBOX_NO_LINUX_RUN_INSTALLER),,\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(VBOX_LNX_INST_OUT_DIR)/archive-dbg/$(VBOX_LNX_DBG_PATH)/%) \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster | $$(dir $$@)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(call MSG_INST_FILE,$<,$@)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(QUIET)$(INSTALL) -m 0755 $(if $(VBOX_DO_STRIP),-s,) $< $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(QUIET)$(if $(VBOX_NO_LINUX_RUN_INSTALLER),,objcopy --add-gnu-debuglink=$(subst $(VBOX_LNX_INST_OUT_DIR)/archive,$(VBOX_LNX_INST_OUT_DIR)/archive-dbg/$(VBOX_LNX_DBG_PATH),$@) $@)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# pattern rule for striping and copying the VBOX_LNX_STRIP_OBJ files to archive/
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster$(addprefix $(VBOX_LNX_INST_OUT_DIR)/archive/,$(VBOX_LNX_STRIP_OBJ)): \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(VBOX_LNX_INST_OUT_DIR)/archive/% : $(PATH_BIN)/% | $$(dir $$@)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(call MSG_INST_FILE,$<,$@)
# rules for creating directories in archive (the pattern rules depends on these). ## @todo use BLDDIRS
$(if $(VBOX_WITH_QT4_SUN),archive/accessible,) \
# .tar.bz2 for with the debug info.
$(PATH_BIN)/VirtualBox-dbg.tar.bz2: \
$(QUIET)tar --owner 0 --group 0 -cRhf $(patsubst %.bz2,%,$@) -C $(VBOX_LNX_INST_OUT_DIR)/archive-dbg \
# pattern rule for copying the debug info from the VBOX_LNX_STRIP_BIN files into archive-dbg/$(VBOX_LNX_DBG_PATH)/
# rules for creating directories in archive-dbg (the pattern rules depends on these). ## @todo use BLDDIRS
include $(KBUILD_PATH)/subfooter.kmk