Makefile.kmk revision 098f28af4c67943631523e7ad3f9a4ddceb0d381
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller# $Id$
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller## @file
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller# Makefile for the Linux installer.
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller#
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller#
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller# Copyright (C) 2006-2007 Sun Microsystems, Inc.
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller#
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller# This file is part of VirtualBox Open Source Edition (OSE), as
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller# available from http://www.virtualbox.org. This file is free software;
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller# you can redistribute it and/or modify it under the terms of the GNU
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller# General Public License (GPL) as published by the Free Software
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller# Foundation, in version 2 as it comes in the "COPYING" file of the
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller#
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller# Clara, CA 95054 USA or visit http://www.sun.com if you need
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller# additional information or have any questions.
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller#
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan MmillerSUB_DEPTH = ../../../..
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmillerinclude $(KBUILD_PATH)/subheader.kmk
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmillerifneq ($(KBUILD_HOST),linux)
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller $(error "The Linux installer can only be built on Linux!")
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmillerendif
21dcdac963f79c098a5ea1a2c5c5e109429c9786Brendan Miller
47191265a0ac73f0ac0db0330969ce6920adaa1fBrendan Miller#
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller# Globals and targets.
21dcdac963f79c098a5ea1a2c5c5e109429c9786Brendan Miller#
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan MmillerVBOX_PATH_LNX_INST_SRC := $(PATH_SUB_CURRENT)
47191265a0ac73f0ac0db0330969ce6920adaa1fBrendan MillerVBOX_LNX_INST_OUT_DIR := $(PATH_TARGET)/Installer/linux
47191265a0ac73f0ac0db0330969ce6920adaa1fBrendan MillerVBOX_LNX_INST_STAGE_DIR := $(PATH_TARGET)/Installer/linux/install
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan MmillerVBOX_LNX_DBG_PATH := usr/lib/debug/opt/VirtualBox
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan MmillerVBOX_LNX_PACKAGE_NAME = VirtualBox-$(VBOX_VERSION_STRING)-r$(VBOX_SVN_REV).run
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller# Unset this to speed up things during makefile hacking.
641b861c668fdb84b7ed44966216b36863ffb608Brendan MmillerVBOX_LNX_INST_DEP_ON_MAKEFILE := $(MAKEFILE_CURRENT)
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan MmillerBLDDIRS += $(VBOX_LNX_INST_OUT_DIR) $(VBOX_LNX_INST_STAGE_DIR)
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan MmillerPACKING += $(PATH_BIN)/VirtualBox.tar.bz2
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmillerif !defined(VBOX_NO_LINUX_RUN_INSTALLER) && !defined(VBOX_OSE)
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller PACKING += $(PATH_BIN)/$(VBOX_LNX_PACKAGE_NAME) \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller $(PATH_BIN)/VirtualBox-dbg.tar.bz2
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmillerendif
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan MmillerOTHER_CLEAN += \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller $(addprefix $(VBOX_LNX_INST_STAGE_DIR)/,\
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller install.sh \
47191265a0ac73f0ac0db0330969ce6920adaa1fBrendan Miller uninstall.sh \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller deffiles \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller routines.sh \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller vboxdrv.sh \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller VirtualBox.tar.bz2 \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller LICENSE) \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller $(wildcard $(VBOX_LNX_INST_OUT_DIR)/VirtualBox-*) \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller $(addprefix $(VBOX_LNX_INST_OUT_DIR)/,\
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller vboxdrv.sh \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller install.sh)
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller#
641b861c668fdb84b7ed44966216b36863ffb608Brendan Mmiller# Linux installs.
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller#
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan MmillerINSTALLS += linux-bin
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmillerlinux-bin_INST = bin/
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmillerlinux-bin_MODE = a+rx,u+w
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmillerlinux-bin_SOURCES = \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller VBoxSysInfo.sh \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller VBox.sh=>VBox.sh \
47191265a0ac73f0ac0db0330969ce6920adaa1fBrendan Miller $(if $(VBOX_WITH_PYTHON),$(PATH_ROOT)/src/VBox/Frontends/VBoxShell/vboxshell.py=>vboxshell.py,)
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan MmillerINSTALLS += linux-misc
4898977f579fcb4eb88439686577754e34599f13Brendan Millerlinux-misc_INST = bin/
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmillerlinux-misc_MODE = a+r,u+w
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmillerlinux-misc_SOURCES = \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller $(PATH_ROOT)/src/VBox/Frontends/VirtualBox/images/$(if $(VBOX_OSE),OSE,NonOSE)/VirtualBox_32px.png=>VBox.png \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller $(if $(VBOX_OSE),,$(VBOX_BRAND_LICENSE_TXT)=>LICENSE) \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller $(if $(VBOX_WITH_QTGUI),$(PATH_linux-misc)/VirtualBox.desktop,)
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmillerlinux-misc_CLEAN = $(PATH_linux-misc)/VirtualBox.desktop
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller$$(PATH_linux-misc)/VirtualBox.desktop: $(PATH_SUB_CURRENT)/VirtualBox.desktop $(VBOX_VERSION_STAMP) | $$(dir $$@)
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller $(call MSG_GENERATE,,$@,$<)
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmillerifdef VBOX_PATH_PACKAGE_DOCS
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller $(QUIET)$(SED) -e "s+\$$VBOX_DOC_PATH+$(VBOX_PATH_PACKAGE_DOCS)+" --output $@ $<
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmillerelse
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller $(QUIET)$(SED) -e "s+\$$VBOX_DOC_PATH+/opt/VirtualBox+" --output $@ $<
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmillerendif
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller
0c3f79f75f596c8d6700b2de830000f754bb28a9Phill Cunnington
21dcdac963f79c098a5ea1a2c5c5e109429c9786Brendan Miller#
0c3f79f75f596c8d6700b2de830000f754bb28a9Phill Cunnington# The files residing in bin/ that we'll ship.
21dcdac963f79c098a5ea1a2c5c5e109429c9786Brendan Miller#
21dcdac963f79c098a5ea1a2c5c5e109429c9786Brendan Miller
21dcdac963f79c098a5ea1a2c5c5e109429c9786Brendan Miller# Strip these binaries
0c3f79f75f596c8d6700b2de830000f754bb28a9Phill CunningtonVBOX_LNX_STRIP_BIN = \
0c3f79f75f596c8d6700b2de830000f754bb28a9Phill Cunnington VBoxDD.so \
0c3f79f75f596c8d6700b2de830000f754bb28a9Phill Cunnington VBoxDD2.so \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller VBoxREM.so \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller VBoxDDU.so \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller VBoxVMM.so \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller $(if $(eq $(KBUILD_TARGET_ARCH),x86),VBoxREM32.so,) \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller $(if $(eq $(KBUILD_TARGET_ARCH),x86),VBoxREM64.so,) \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller VBoxRT.so \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller $(if $(VBOX_WITH_VBOXSDL),VBoxSDL $(if $(VBOX_WITH_HARDENING),VBoxSDL.so),) \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller $(if $(VBOX_WITH_SHARED_CLIPBOARD), VBoxSharedClipboard.so,) \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller $(if $(VBOX_WITH_SHARED_FOLDERS), VBoxSharedFolders.so,) \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller $(if $(VBOX_WITH_GUEST_PROPS),VBoxGuestPropSvc.so,) \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller $(if $(VBOX_WITH_MAIN), \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller VBoxManage \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller VBoxNetDHCP $(if $(VBOX_WITH_HARDENING),VBoxNetDHCP.so,) \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller VBoxNetAdpCtl \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller VBoxSVC \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller VBoxSettings.so \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller VBoxXPCOM.so \
47191265a0ac73f0ac0db0330969ce6920adaa1fBrendan Miller VBoxXPCOMC.so \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller VBoxXPCOMIPCD \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller components/VBoxXPCOMIPCC.so \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller components/VBoxSVCM.so \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller components/VBoxC.so,) \
641b861c668fdb84b7ed44966216b36863ffb608Brendan Mmiller $(if $(VBOX_WITH_CROGL),\
641b861c668fdb84b7ed44966216b36863ffb608Brendan Mmiller VBoxOGLhostcrutil.so \
641b861c668fdb84b7ed44966216b36863ffb608Brendan Mmiller VBoxOGLhosterrorspu.so \
641b861c668fdb84b7ed44966216b36863ffb608Brendan Mmiller VBoxOGLrenderspu.so \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller VBoxTestOGL \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller VBoxSharedCrOpenGL.so,) \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller $(if $(VBOX_WITH_PYTHON),$(notdir $(wildcard $(PATH_BIN)/VBoxPython*.so)),) \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller VBoxTunctl
641b861c668fdb84b7ed44966216b36863ffb608Brendan Mmiller
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller# Do not remove relocation information of these binaries
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan MmillerVBOX_LNX_STRIP_OBJ = \
932eacec6c157231777c9b1d1326c8ed1f0a8d99Brendan Mmiller VBoxDD2GC.gc \
VBoxDD2R0.r0 \
VBoxDDGC.gc \
VBoxDDR0.r0 \
VMMGC.gc \
VMMR0.r0
# Do not strip anything of these files
VBOX_LNX_NO_STRIP = \
$(if $(VBOX_OSE),,LICENSE) \
$(if $(VBOX_WITH_MAIN), \
components/VBoxXPCOMBase.xpt \
components/VirtualBox_XPCOM.xpt) \
$(if $(VBOX_WITH_PYTHON),vboxshell.py,) \
VBoxSysInfo.sh \
VBox.sh \
VBox.png \
src
# Qt4 GUI
ifdef VBOX_WITH_QTGUI
include $(PATH_ROOT)/src/VBox/Frontends/VirtualBox/nls/ApprovedLanguages.kmk
VBOX_LNX_STRIP_BIN += \
VBoxKeyboard.so \
VirtualBox \
$(if $(VBOX_WITH_HARDENING),VirtualBox.so) \
$(if $(VBOX_WITH_DEBUGGER_GUI),VBoxDbg.so)
VBOX_LNX_NO_STRIP += \
VirtualBox.desktop \
$(VBOX_LICENSE_FILES) \
$(if $(VBOX_WITH_QT4_SUN),$(notdir $(wildcard $(PATH_BIN)/lib*VBox*)),) \
$(if $(VBOX_WITH_QT4_SUN),accessible/libqtaccessiblewidgets.so,) \
$(foreach f,$(VBOX_APPROVED_GUI_LANGUAGES),nls/VirtualBox_$(f).qm nls/qt_$(f).qm)
endif
# Guest Additions
ifdef VBOX_WITH_ADDITIONS_PACKING
VBOX_LNX_NO_STRIP += \
additions/VBoxGuestAdditions.iso
endif
# Documentation
ifdef VBOX_WITH_DOCS_PACKING
VBOX_LNX_NO_STRIP += \
UserManual.pdf \
$(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES),VirtualBox_$(f).chm UserManual_$(f).pdf)
ifdef VBOX_WITH_DOCS_CHM
VBOX_LNX_NO_STRIP += \
VirtualBox.chm
endif
VBOX_LNX_STRIP_BIN += \
$(if $(VBOX_WITH_KCHMVIEWER),kchmviewer,)
endif
# VRDP
ifdef VBOX_WITH_VRDP
VBOX_LNX_STRIP_BIN += \
VBoxVRDP.so \
VRDPAuth.so
VBOX_LNX_NO_STRIP += \
rdesktop-vrdp.tar.gz
ifdef VBOX_WITH_VRDP_RDESKTOP
VBOX_LNX_NO_STRIP += \
rdesktop-vrdp-keymaps
VBOX_LNX_STRIP_BIN += \
rdesktop-vrdp
endif
endif
# Python XPCOM glue
ifdef VBOX_WITH_PYTHON
VBOX_LNX_NO_STRIP += \
$(foreach f,$(notdir $(wildcard $(PATH_BIN)/sdk/bindings/xpcom/python/xpcom/*.py)),sdk/bindings/xpcom/python/xpcom/$(f)) \
sdk/bindings/xpcom/python/xpcom/client/__init__.py \
sdk/bindings/xpcom/python/xpcom/server/__init__.py \
sdk/bindings/xpcom/python/xpcom/server/enumerator.py \
sdk/bindings/xpcom/python/xpcom/server/factory.py \
sdk/bindings/xpcom/python/xpcom/server/loader.py \
sdk/bindings/xpcom/python/xpcom/server/module.py \
sdk/bindings/xpcom/python/xpcom/server/policy.py \
sdk/installer/vboxapisetup.py \
sdk/installer/vboxapi/__init__.py \
sdk/installer/vboxapi/VirtualBox_constants.py
endif
# Headless
ifdef VBOX_WITH_HEADLESS
VBOX_LNX_STRIP_BIN += \
VBoxHeadless \
$(if $(VBOX_WITH_HARDENING),VBoxHeadless.so)
endif
# BFE
ifdef VBOX_WITH_BFE
VBOX_LNX_STRIP_BIN += \
VBoxBFE \
$(if $(VBOX_WITH_HARDENING),VBoxBFE.so)
endif
# Webservices
ifdef VBOX_WITH_WEBSERVICES
VBOX_LNX_STRIP_BIN += \
vboxwebsrv \
webtest
endif
#
# All the bin files that goes into the archives.
#
VBOX_LNX_ARCH_FILES := $(VBOX_LNX_STRIP_BIN) $(VBOX_LNX_STRIP_OBJ) $(VBOX_LNX_NO_STRIP)
# Cleanup of the files we copy/symlink from bin.
OTHER_CLEAN += $(addprefix $(VBOX_LNX_INST_OUT_DIR)/archive/,$(VBOX_LNX_ARCH_FILES)) \
$(addprefix $(VBOX_LNX_INST_OUT_DIR)/archive-dbg/$(VBOX_LNX_DBG_PATH)/,$(VBOX_LNX_STRIP_BIN))
#
# The generic installer.
#
$(PATH_BIN)/$(VBOX_LNX_PACKAGE_NAME): \
$(VBOX_LNX_INST_STAGE_DIR)/VirtualBox.tar.bz2 \
$(VBOX_VERSION_STAMP) \
$(VBOX_PATH_LNX_INST_SRC)/routines.sh \
$(VBOX_PATH_LNX_INST_SRC)/deffiles \
$(if $(VBOX_OSE),,$(VBOX_BRAND_LICENSE_TXT)) \
$(VBOX_LNX_INST_OUT_DIR)/vboxdrv.sh \
$(VBOX_LNX_INST_OUT_DIR)/install.sh \
$(VBOX_PATH_LNX_INST_SRC)/vboxdrv-pardus.py \
$(VBOX_PATH_LNX_INST_SRC)/uninstall.sh \
$(wildcard $(PATH_BIN)/src/*) \
$(wildcard $(PATH_BIN)/src/*/*) \
$(wildcard $(PATH_BIN)/src/*/*/*) \
$(wildcard $(PATH_BIN)/src/*/*/*/*)
$(call MSG_TOOL,makeself,,$@)
$(QUIET)$(RM) -f $(wildcard $(PATH_BIN)/VirtualBox-*.run)
$(QUIET)$(INSTALL) -m 0755 $(VBOX_PATH_LNX_INST_SRC)/routines.sh $(VBOX_LNX_INST_STAGE_DIR)/
$(QUIET)$(INSTALL) -m 0755 $(VBOX_PATH_LNX_INST_SRC)/deffiles $(VBOX_LNX_INST_STAGE_DIR)/
$(QUIET)$(if $(VBOX_OSE),,$(INSTALL) -m 0644 $(VBOX_BRAND_LICENSE_TXT) $(VBOX_LNX_INST_STAGE_DIR)/LICENSE)
$(QUIET)$(INSTALL) -m 0755 $(VBOX_LNX_INST_OUT_DIR)/vboxdrv.sh $(VBOX_LNX_INST_STAGE_DIR)/
$(QUIET)$(INSTALL) -m 0755 $(VBOX_PATH_LNX_INST_SRC)/vboxdrv-pardus.py $(VBOX_LNX_INST_STAGE_DIR)/
$(QUIET)$(INSTALL) -m 0755 $(VBOX_LNX_INST_OUT_DIR)/install.sh $(VBOX_LNX_INST_STAGE_DIR)/
$(QUIET)$(INSTALL) -m 0755 $(VBOX_PATH_LNX_INST_SRC)/uninstall.sh $(VBOX_LNX_INST_STAGE_DIR)/
$(QUIET)$(RM) -f $@
$(QUIET)$(VBOX_MAKESELF) --follow --nocomp $(VBOX_LNX_INST_STAGE_DIR) $@ \
"VirtualBox for Linux installation" ./install.sh "\$$0 1> /dev/null"
# files that needs editing before they can be included in the generic installer.
$(VBOX_LNX_INST_OUT_DIR)/vboxdrv.sh: $(VBOX_PATH_LNX_INST_SRC)/vboxdrv.sh.in | $$(dir $$@)
$(QUIET)$(SED_EXT) \
-e "s|%NOLSB%|yes|g" \
-e "s|%PACKAGE%|virtualbox|g" \
--output $@ \
$<
$(VBOX_LNX_INST_OUT_DIR)/install.sh: $(VBOX_PATH_LNX_INST_SRC)/install.sh $(VBOX_VERSION_STAMP) | $$(dir $$@)
$(QUIET)$(SED) \
-e "s;_VERSION_;$(VBOX_VERSION_STRING);g" \
-e "s;_SVNREV_;$(VBOX_SVN_REV);g" \
-e "s;_BUILD_;$(date-utc );g" \
-e "s;_ARCH_;$(KBUILD_TARGET_ARCH);g" \
-e "s;_HARDENED_;$(VBOX_WITH_HARDENING);g" \
-e "s;_PYTHON_;$(VBOX_WITH_PYTHON);g" \
--output $@ \
$<
#
# .tar.bz2 for converting into .run
#
$(VBOX_LNX_INST_STAGE_DIR)/VirtualBox.tar.bz2: \
$(addprefix $(VBOX_LNX_INST_OUT_DIR)/archive/, $(VBOX_LNX_ARCH_FILES)) \
$(VBOX_LNX_INST_DEP_ON_MAKEFILE) \
$(VBOX_VERSION_STAMP)
$(call MSG_L1,Packing $@)
$(QUIET)$(RM) -f -- $@ $(patsubst %.bz2,%,$@)
$(QUIET)$(MKDIR) -p $(@D)
ifdef VBOX_USE_PBZIP2
$(QUIET)tar --owner 0 --group 0 -cRhf $(patsubst %.bz2,%,$@) -C $(VBOX_LNX_INST_OUT_DIR)/archive $(VBOX_LNX_ARCH_FILES)
$(QUIET)pbzip2 $(patsubst %.bz2,%,$@)
else
$(QUIET)tar --owner 0 --group 0 -cjRhf $@ -C $(VBOX_LNX_INST_OUT_DIR)/archive $(VBOX_LNX_ARCH_FILES)
endif
$(QUIET)$(CHMOD) 0644 $@
#
# .tar.bz2 for distribution with the files under VirtualBox-<ver>/.
#
$(PATH_BIN)/VirtualBox.tar.bz2: \
$(addprefix $(VBOX_LNX_INST_OUT_DIR)/archive/, $(VBOX_LNX_ARCH_FILES)) \
$(VBOX_LNX_INST_DEP_ON_MAKEFILE) \
$(VBOX_VERSION_STAMP)
$(call MSG_L1,Packing $@)
$(QUIET)$(RM) -f -- $(VBOX_LNX_INST_OUT_DIR)/VirtualBox-$(VBOX_VERSION_STRING) $@ $(patsubst %.bz2,%,$@)
$(QUIET)$(LN_SYMLINK) $(VBOX_LNX_INST_OUT_DIR)/archive/ $(VBOX_LNX_INST_OUT_DIR)/VirtualBox-$(VBOX_VERSION_STRING)
ifdef VBOX_USE_PBZIP2
$(QUIET)tar --owner 0 --group 0 -cRhf $(patsubst %.bz2,%,$@) -C $(VBOX_LNX_INST_OUT_DIR) \
$(addprefix VirtualBox-$(VBOX_VERSION_STRING)/,$(VBOX_LNX_ARCH_FILES))
$(QUIET)pbzip2 $(patsubst %.bz2,%,$@)
else
$(QUIET)tar --owner 0 --group 0 -cjRhf $@ -C $(VBOX_LNX_INST_OUT_DIR) \
$(addprefix VirtualBox-$(VBOX_VERSION_STRING)/,$(VBOX_LNX_ARCH_FILES))
endif
$(QUIET)$(RM) -f -- $(VBOX_LNX_INST_OUT_DIR)/VirtualBox-$(VBOX_VERSION_STRING)
# pattern rule for stripping and copying the VBOX_LNX_STRIP_BIN files to archive/
$(addprefix $(VBOX_LNX_INST_OUT_DIR)/archive/,$(VBOX_LNX_STRIP_BIN)): \
$(VBOX_LNX_INST_OUT_DIR)/archive/% : $(PATH_BIN)/% \
$(if $(VBOX_NO_LINUX_RUN_INSTALLER),,\
$(VBOX_LNX_INST_OUT_DIR)/archive-dbg/$(VBOX_LNX_DBG_PATH)/%) \
| $$(dir $$@)
$(call MSG_INST_FILE,$<,$@)
$(QUIET)$(INSTALL) -m 0755 $(if $(VBOX_DO_STRIP),-s,) $< $@
$(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),$@) $@)
# pattern rule for striping and copying the VBOX_LNX_STRIP_OBJ files to archive/
$(addprefix $(VBOX_LNX_INST_OUT_DIR)/archive/,$(VBOX_LNX_STRIP_OBJ)): \
$(VBOX_LNX_INST_OUT_DIR)/archive/% : $(PATH_BIN)/% | $$(dir $$@)
$(call MSG_INST_FILE,$<,$@)
ifeq ($(VBOX_DO_STRIP),)
$(QUIET)$(INSTALL) -m 0644 $< $@
else # strip to temp file because of umask.
$(QUIET)objcopy --strip-unneeded -R .comment $< $@.tmp
$(QUIET)$(INSTALL) -m 0644 $@.tmp $@
$(QUIET)$(RM) -f -- $@.tmp
endif
# pattern rule for linking the VBOX_LNX_NO_STRIP into archive/
$(addprefix $(VBOX_LNX_INST_OUT_DIR)/archive/,$(VBOX_LNX_NO_STRIP)): \
$(VBOX_LNX_INST_OUT_DIR)/archive/% : $(PATH_BIN)/% | $$(dir $$@)
$(call MSG_INST_SYM,$<,$@)
$(QUIET)$(RM) -f $@
$(QUIET)$(LN_SYMLINK) $< $@
# rules for creating directories in archive (the pattern rules depends on these). ## @todo use BLDDIRS
BLDDIRS += $(foreach d,\
archive \
archive/components \
archive/nls \
$(if $(VBOX_WITH_QT4_SUN),archive/accessible,) \
$(if $(VBOX_WITH_PYTHON),\
archive/sdk/installer \
archive/sdk/installer/vboxapi \
archive/sdk/bindings/xpcom/python/xpcom \
archive/sdk/bindings/xpcom/python/xpcom/client \
archive/sdk/bindings/xpcom/python/xpcom/server,) \
archive/additions \
install\
,$(VBOX_LNX_INST_OUT_DIR)/$(d)/)
#
# .tar.bz2 for with the debug info.
#
$(PATH_BIN)/VirtualBox-dbg.tar.bz2: \
$(addprefix $(VBOX_LNX_INST_OUT_DIR)/archive-dbg/$(VBOX_LNX_DBG_PATH)/, $(VBOX_LNX_STRIP_BIN))
$(call MSG_L1,Packing $@)
$(QUIET)$(RM) -f -- $@ $(patsubst %.bz2,%,$@)
ifdef VBOX_USE_PBZIP2
$(QUIET)tar --owner 0 --group 0 -cRhf $(patsubst %.bz2,%,$@) -C $(VBOX_LNX_INST_OUT_DIR)/archive-dbg \
$(addprefix $(VBOX_LNX_DBG_PATH)/,$(VBOX_LNX_STRIP_BIN))
$(QUIET)pbzip2 $(patsubst %.bz2,%,$@)
else
$(QUIET)tar --owner 0 --group 0 -cjRhf $@ -C $(VBOX_LNX_INST_OUT_DIR)/archive-dbg \
$(addprefix $(VBOX_LNX_DBG_PATH)/,$(VBOX_LNX_STRIP_BIN))
endif
# pattern rule for copying the debug info from the VBOX_LNX_STRIP_BIN files into archive-dbg/$(VBOX_LNX_DBG_PATH)/
$(addprefix $(VBOX_LNX_INST_OUT_DIR)/archive-dbg/$(VBOX_LNX_DBG_PATH)/,$(VBOX_LNX_STRIP_BIN)): \
$(VBOX_LNX_INST_OUT_DIR)/archive-dbg/$(VBOX_LNX_DBG_PATH)/% : $(PATH_BIN)/% | $$(dir $$@)
$(call MSG_TOOL,copydbg,$<,$@)
$(QUIET)objcopy --only-keep-debug $< $@
# rules for creating directories in archive-dbg (the pattern rules depends on these). ## @todo use BLDDIRS
BLDDIRS += $(foreach d,\
$(VBOX_LNX_DBG_PATH) \
$(VBOX_LNX_DBG_PATH)/components \
,$(VBOX_LNX_INST_OUT_DIR)/archive-dbg/$(d)/)
include $(KBUILD_PATH)/subfooter.kmk