rules revision 2b66a097b19f31e00af3abc508a3ff8c74ca1f8a
c330021bf3f45cbf187fa644781e67f7e470a58awrowe# Copyright (C) 2006-2008 Sun Microsystems, Inc.
62f7716b14b71603a8004434ca3536902bfb8899wrowe# This file is part of VirtualBox Open Source Edition (OSE), as
366616a5cc6212cbf7134ccf877f965d668c6b04wrowe# available from http://www.virtualbox.org. This file is free software;
366616a5cc6212cbf7134ccf877f965d668c6b04wrowe# you can redistribute it and/or modify it under the terms of the GNU
366616a5cc6212cbf7134ccf877f965d668c6b04wrowe# General Public License as published by the Free Software Foundation,
366616a5cc6212cbf7134ccf877f965d668c6b04wrowe# in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
366616a5cc6212cbf7134ccf877f965d668c6b04wrowe# distribution. VirtualBox OSE is distributed in the hope that it will
366616a5cc6212cbf7134ccf877f965d668c6b04wrowe# be useful, but WITHOUT ANY WARRANTY of any kind.
366616a5cc6212cbf7134ccf877f965d668c6b04wrowe#export DH_VERBOSE=1
366616a5cc6212cbf7134ccf877f965d668c6b04wrowe# possible overrides:
366616a5cc6212cbf7134ccf877f965d668c6b04wrowe# OSE=1 force VBOX_OSE
366616a5cc6212cbf7134ccf877f965d668c6b04wrowe# NOPARALLEL=1 compile with -j1
366616a5cc6212cbf7134ccf877f965d668c6b04wrowe# LINUX=<dir> compile vboxdrv against Linux found in <dir>
366616a5cc6212cbf7134ccf877f965d668c6b04wrowe# VERBOSE=1 verbose build
38dc50ae00a1ea57fa41500d74f4e818747e3cefpquerna# DEBUG=1 debug build
366616a5cc6212cbf7134ccf877f965d668c6b04wrowe# NOSUBVER=1 disable generation of the sub-version field (which is
ecf8d72af432e53e4c0661fb99dfda8061507bfajerenkrantz# either the subversion rev [if available] or the build date)
f19a8656f9b21bf3e66eb96e25eac2046c2d102bjim# NODOCS=1 don't build docs, use precompiled UserManual.pdf and
80464b326874ee15d74742ae39708ec3f2eae1d7wrowe# NOMODS=1 don't build any module
80464b326874ee15d74742ae39708ec3f2eae1d7wrowe# NOQT=1 don't build the Qt GUI
38dc50ae00a1ea57fa41500d74f4e818747e3cefpquerna# HEADLESS=1 build the headless version
9c67ffea79ab184351b5d554b57814e13285e758jim# STAGEDISO=<path> don't build the VBoxAdditions, use the precompiled .iso
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe ifeq ($(wildcard $(STAGEDISO)/VBoxGuestAdditions.iso),)
ecf8d72af432e53e4c0661fb99dfda8061507bfajerenkrantz $(error STAGEDISO='$(STAGEDISO)/VBoxGuestAdditions.iso' not found)
f610c7c704235bc327dbe9b62982f5b3f8e30a77wrowe# Hack: Xandros is actually Debian/sarge ... :(
f19a8656f9b21bf3e66eb96e25eac2046c2d102bjim debrel := $(if $(shell which lsb_release),_$(shell lsb_release -si)_$(shell lsb_release -sc),unknown)
f19a8656f9b21bf3e66eb96e25eac2046c2d102bjimdebcfgs := VBOX_PATH_PACKAGE_DOCS="\"/usr/share/doc/$(verpkg)\""
45b0e1c775c1cfed6473c9e5304179ccb9609f53stoddard# Ubuntu dapper: gcc-4.0 does not work with recompiler, use gcc-3.4 instead
dbec4658981e4f9127e8676457c28d42932be7cdtrawick# Ubuntu gutsy: gcc-4.1 does not work for the webservices, use gcc-4.2 instead
1ee6112c113ecc54ddca716a674f9b1a132f263asf cd $(vboxroot) && ./configure --odir=$(current)/debian $(if \
e84aedcb9f389f94263ca602b1f6c36e3575699bsf $(ose),--ose,) $(if $(LINUX),--with-linux=$(LINUX),) $(if \
e84aedcb9f389f94263ca602b1f6c36e3575699bsf $(filter _Ubuntu_dapper,$(debrel)),--with-gcc=gcc-3.4 --with-g++=g++-3.4,) $(if \
e84aedcb9f389f94263ca602b1f6c36e3575699bsf $(filter _Ubuntu_gutsy,$(debrel)),--with-gcc=gcc-4.2 --with-g++=g++-4.2,) $(if \
7ac1ffe4121328055c55cc1db7fc4aeae0fcc3d6sf $(filter _xandros4.1 _ucs1.3,$(debrel)),--disable-sdl-ttf,) $(if \
7ac1ffe4121328055c55cc1db7fc4aeae0fcc3d6sf $(HEADLESS),--build-headless,) $(if $(DEBUG),--build-debug,)
42ed359b3cec14d50bec77d6a0de2320215fd006minfrin $(VERBOSE),--print-directory,--no-print-directory) $(if \
ab5b666cf1382c8c3e58797524fdece77e8e17a8minfrin $(if $(NODOCS),cp $(vboxroot)/prebuild/UserManual.pdf $(builddir)/bin,)
f19a8656f9b21bf3e66eb96e25eac2046c2d102bjim $(if $(NODOCS),cp $(vboxroot)/prebuild/VirtualBox.chm $(builddir)/bin,)
a74ee4396fe11ffc1ca05837a59e497c905eedc3sf $(if $(STAGEDISO),cp $(STAGEDISO)/VBoxGuestAdditions.iso $(builddir)/bin/additions,)
a74ee4396fe11ffc1ca05837a59e497c905eedc3sf $(VERBOSE),--print-directory,--no-print-directory) $(if \
0db0abcbe4211435c08e0c0e8f5daa278bed3524wsanchez# Build modules for every kernel we find in /lib/modules/*
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz make -C $(builddir)/bin/src/vboxdrv KERN_DIR=$$d/build MODULE_DIR=$$d clean && \
53e66a2931d02e84628ba946055cc92e56b43db8wrowe make -C $(builddir)/bin/src/vboxdrv KBUILD_VERBOSE= KERN_DIR=$$d/build MODULE_DIR=$$d all && \
53e66a2931d02e84628ba946055cc92e56b43db8wrowe $(builddir)/bin/src/vboxdrv/vboxdrv.ko $(moddir)/$$(basename $$d)/vboxdrv.ko && \
53e66a2931d02e84628ba946055cc92e56b43db8wrowe make -C $(builddir)/bin/src/vboxnetflt KERN_DIR=$$d/build MODULE_DIR=$$d clean && \
71cda1f2d621dbd9fd3406e35a6f8c412576a15dpgollucci (cp $(builddir)/bin/src/vboxdrv/Module.symvers $(builddir)/bin/src/vboxnetflt || true) && \
53e66a2931d02e84628ba946055cc92e56b43db8wrowe make -C $(builddir)/bin/src/vboxnetflt KBUILD_VERBOSE= KERN_DIR=$$d/build MODULE_DIR=$$d all && \
b05930e6008f69bd323abe0c10f81f40ffd27983brianp $(builddir)/bin/src/vboxnetflt/vboxnetflt.ko $(moddir)/$$(basename $$d)/vboxnetflt.ko; \
9c09bec965ddf31d132ffaef4305a4eb945b2877jim make -C $(builddir)/bin/src/vboxnetadp KERN_DIR=$$d/build MODULE_DIR=$$d clean && \
9c09bec965ddf31d132ffaef4305a4eb945b2877jim (cp $(builddir)/bin/src/vboxdrv/Module.symvers $(builddir)/bin/src/vboxnetadp || true) && \
99665be7f22b9e3421bd698bd731f82ab0deb827sf make -C $(builddir)/bin/src/vboxnetadp KBUILD_VERBOSE= KERN_DIR=$$d/build MODULE_DIR=$$d all && \
e1c6982304adafcec09d2627755be15b87a6b425sf $(builddir)/bin/src/vboxnetadp/vboxnetadp.ko $(moddir)/$$(basename $$d)/vboxnetadp.ko; \
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe rm -f debian/AutoConfig.kmk debian/configure.log debian/env.sh debian/preinst
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe rm -f debian/modules-stamp debian/build-stamp debian/configure-stamp
979b5dac648b2e3eef4b5a514b3711b58640026bsctemme# Build architecture-dependent files here.
a46801e6532423aa7bd184471eb49158d7c9ae62sfbinary binary-arch binary-indep: build $(if $(NOMODS),,modules)
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe tar -xjC $(prefix)/opt -f $(builddir)/bin/VirtualBox.tar.bz2
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe install -d -g 0 -o 0 $(prefix)/usr/share/doc/$(verpkg)
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe install -d -g 0 -o 0 $(prefix)/usr/share/lintian/overrides
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe -e 's|%VERPKG%|$(verpkg)|g' \
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe mv $(archdir)/*.rel $(prefix)/usr/lib/$(package) || true
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe mv $(archdir)/VBoxNetDHCP $(prefix)/usr/lib/$(package)
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe mv $(archdir)/VBoxNetAdpCtl $(prefix)/usr/lib/$(package)
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe mv $(archdir)/VBoxXPCOMIPCD $(prefix)/usr/lib/$(package)
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe mv $(archdir)/components $(prefix)/usr/lib/$(package)/components
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe mv $(archdir)/*.so.4 $(prefix)/usr/lib/$(package) || true
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe $(if $(NOQT),,mv $(archdir)/nls $(prefix)/usr/share/$(package))
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe install -D -g 0 -o 0 -m 644 debian/VBox.sh $(prefix)/usr/bin/VBox
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe mv $(archdir)/VBoxSysInfo.sh $(prefix)/usr/share/$(package)
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe for i in VBoxManage VBoxSVC $(if $(HEADLESS),,VBoxSDL) \
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe mv $(archdir)/vboxwebsrv $(prefix)/usr/lib/$(package); \
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe install -D -g 0 -o 0 -m 0644 \
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe $$d/vboxdrv.ko $(prefix)/lib/modules/$$(basename $$d)/misc/vboxdrv.ko; \
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe install -D -g 0 -o 0 -m 0644 \
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe $$d/vboxnetflt.ko $(prefix)/lib/modules/$$(basename $$d)/misc/vboxnetflt.ko; \
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe install -D -g 0 -o 0 -m 0644 \
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe $$d/vboxnetadp.ko $(prefix)/lib/modules/$$(basename $$d)/misc/vboxnetadp.ko; \
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe $(if $(NOQT),,mv $(archdir)/kchmviewer $(prefix)/usr/lib/$(package))
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe $(archdir)/UserManual*.pdf $(archdir)/VirtualBox*.chm \
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe rm $(addprefix $(archdir)/,UserManual*.pdf VirtualBox*.chm LICENSE)
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe for i in rdesktop-vrdp.tar.gz additions/VBoxGuestAdditions.iso; do \
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe mv $(archdir)/$$i $(prefix)/usr/share/$(package); done
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe if [ -d $(archdir)/accessible ]; then mv $(archdir)/accessible $(prefix)/usr/lib/virtualbox; fi
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe usr/share/virtualbox/src/vboxdrv usr/src/vboxdrv-$(ver) \
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe usr/share/virtualbox/src/vboxnetflt usr/src/vboxnetflt-$(ver) \
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe usr/share/virtualbox/src/vboxnetadp usr/src/vboxnetadp-$(ver)
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe -e 's|%NOLSB%|$(if $(filter _Debian_sarge ucs1.3,$(debrel)),yes,)|g' \
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe -e 's|%PACKAGE%|virtualbox|g' \
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe src/VBox/Installer/linux/vboxdrv.sh.in > debian/vboxdrv.init
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe cat debian/preinst.in | sed -e 's|%VER%|$(ver)|g' > debian/preinst
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe if [ "$(debrel)" = "_Ubuntu_dapper" -o "$(debrel)" = "_Debian_sarge" ]; then \
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe dh_strip --keep-debug --exclude=libVBoxQtCore.so.4 --exclude=libVBoxQtGui.so.4 --exclude=libVBoxQtNetwork.so.4 --exclude=libqtaccessiblewidgets.so
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe # manually strip our R0/GC modules, dh_strip cannot handle them
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe $(prefix)/usr/lib/$(package)/*.r0 $(prefix)/usr/lib/$(package)/*.gc; do \
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe $(prefix)/usr/lib/debug/usr/lib/$(package)/`basename $$f`; \
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe objcopy --add-gnu-debuglink=$(prefix)/usr/lib/debug/usr/lib/$(package)/`basename $$f` $$f; \
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe mv $(current)/debian/$(verpkg)/usr/lib/debug $(current)/debian/$(verpkg)-dbg/usr/lib
9e86ff266f053757dd96dab7cf4bc53aaaaa583ewrowe -Vdkms=$(if $(filter _Ubuntu_gutsy _Ubuntu_hardy _Ubuntu_intrepid _Ubuntu_jaunty,$(debrel)),dkms,)