Makefile.kmk revision 1118e5cc554674bf0e3828c2d838caf6a8effe5a
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# $Id$
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster## @file
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Makefile for the Linux installer.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Copyright (C) 2006-2007 Sun Microsystems, Inc.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
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#
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 Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterSUB_DEPTH = ../../../..
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterinclude $(KBUILD_PATH)/subheader.kmk
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifneq ($(KBUILD_HOST),linux)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(error "The Linux installer can only be built on Linux!")
6cf99bcf5206a0fcc9dd9296fc46ac28c3fe8adePeter Majorendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Globals and targets.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
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
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Unset this to speed up things during makefile hacking.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterVBOX_LNX_INST_DEP_ON_MAKEFILE := $(MAKEFILE_CURRENT)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
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 Foster $(PATH_BIN)/VirtualBox-dbg.tar.bz2
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterOTHER_CLEAN += \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(addprefix $(VBOX_LNX_INST_STAGE_DIR)/,\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster install.sh \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster deffiles \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster routines.sh \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster vboxdrv.sh \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster vboxnet.sh \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VirtualBox.tar.bz2 \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster LICENSE) \
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
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Linux installs.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterINSTALLS += linux-bin
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterlinux-bin_INST = bin/
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterlinux-bin_MODE = a+rx,u+w
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterlinux-bin_SOURCES = \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBoxSysInfo.sh \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBox.sh=>VBox.sh \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(PATH_linux-bin)/VBoxAddIF.sh
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterlinux-bin_CLEAN = \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(PATH_linux-bin)/VBoxAddIF.sh
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
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 Foster
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
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 Fosterelse
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(QUIET)$(SED) -e "s+\$$VBOX_DOC_PATH+/opt/VirtualBox-$(VBOX_VERSION_STRING)+" --output $@ $<
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# The files residing in bin/ that we'll ship.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Strip these binaries
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterVBOX_LNX_STRIP_BIN = \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBoxDD.so \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBoxDD2.so \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(if $(VBOX_WITH_FFMPEG),VBoxFFmpegFB.so,) \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBoxManage \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBoxREM.so \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBoxRT.so \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(if $(VBOX_WITH_VBOXSDL),VBoxSDL $(if $(VBOX_WITH_HARDENING),VBoxSDL.so),) \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBoxSettings.so \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBoxSharedClipboard.so \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBoxSharedFolders.so \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(if $(VBOX_WITH_GUEST_PROPS),VBoxGuestPropSvc.so) \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBoxSVC \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBoxDDU.so \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBoxVMM.so \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBoxXPCOM.so \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBoxXPCOMIPCD \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(if $(VBOX_WITH_PYTHON),VBoxPython.so,) \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBoxTunctl \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster components/VBoxC.so \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster components/VBoxSVCM.so \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster components/VBoxXPCOMIPCC.so \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(if $(VBOX_OSE),,VRDPAuth.so)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Do not remove relocation information of these binaries
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterVBOX_LNX_STRIP_OBJ = \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBoxDD2GC.gc \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBoxDD2R0.r0 \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBoxDDGC.gc \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBoxDDR0.r0 \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VMMGC.gc \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VMMR0.r0
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifeq ($(KBUILD_TARGET_ARCH),amd64)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBOX_LNX_STRIP_OBJ += \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBoxREM2.rel
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Do not strip anything of these files
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterVBOX_LNX_NO_STRIP = \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(if $(VBOX_OSE),,LICENSE) \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster components/VBoxXPCOMBase.xpt \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster components/VirtualBox_XPCOM.xpt \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBoxSysInfo.sh \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBox.sh \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBox.png \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBoxAddIF.sh \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster src
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Qt4 GUI
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 VBoxKeyboard.so \
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 VirtualBox.desktop \
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 Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Guest Additions
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifdef VBOX_WITH_ADDITIONS_PACKING
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBOX_LNX_NO_STRIP += \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster additions/VBoxGuestAdditions.iso
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
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 Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# VRDP
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifdef VBOX_WITH_VRDP
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBOX_LNX_STRIP_BIN += \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBoxVRDP.so
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBOX_LNX_NO_STRIP += \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster rdesktop-vrdp.tar.gz
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 Foster endif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Headless
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifdef VBOX_WITH_HEADLESS
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBOX_LNX_STRIP_BIN += \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBoxHeadless \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(if $(VBOX_WITH_HARDENING),VBoxHeadless.so)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Webservices
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifdef VBOX_WITH_WEBSERVICES
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VBOX_LNX_STRIP_BIN += \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster vboxwebsrv \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster webtest
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# All the bin files that goes into the archives.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterVBOX_LNX_ARCH_FILES := $(VBOX_LNX_STRIP_BIN) $(VBOX_LNX_STRIP_OBJ) $(VBOX_LNX_NO_STRIP)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
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
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# The generic installer.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
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
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
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
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 $@ \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $<
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
6cf99bcf5206a0fcc9dd9296fc46ac28c3fe8adePeter Major# .tar.bz2 for converting into .run
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
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 Fosterelse
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(QUIET)tar --owner 0 --group 0 -cjRhf $@ -C $(VBOX_LNX_INST_OUT_DIR)/archive $(VBOX_LNX_ARCH_FILES)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(QUIET)$(CHMOD) 0644 $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# .tar.bz2 for distribution with the files under VirtualBox-<ver>/.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster$(PATH_BIN)/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 -- $(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 Fosterelse
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 Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(QUIET)$(RM) -f -- $(VBOX_LNX_INST_OUT_DIR)/VirtualBox-$(VBOX_VERSION_STRING)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
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
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,$<,$@)
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,) \
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