eb6931a667057b5ac33461587e75a64f29521448vboxsync
eb6931a667057b5ac33461587e75a64f29521448vboxsynckBuild / VBox Build Tricks
eb6931a667057b5ac33461587e75a64f29521448vboxsync==========================
eb6931a667057b5ac33461587e75a64f29521448vboxsync
eb6931a667057b5ac33461587e75a64f29521448vboxsync
eb6931a667057b5ac33461587e75a64f29521448vboxsyncIntroduction
eb6931a667057b5ac33461587e75a64f29521448vboxsync------------
eb6931a667057b5ac33461587e75a64f29521448vboxsync
eb6931a667057b5ac33461587e75a64f29521448vboxsyncThis document is written in reStructuredText (rst) which just happens to
eb6931a667057b5ac33461587e75a64f29521448vboxsyncbe used by Python, the primary language for this revamp. For more information
eb6931a667057b5ac33461587e75a64f29521448vboxsyncon reStructuredText: http://docutils.sourceforge.net/rst.html
eb6931a667057b5ac33461587e75a64f29521448vboxsync
eb6931a667057b5ac33461587e75a64f29521448vboxsync
eb6931a667057b5ac33461587e75a64f29521448vboxsyncChanging the output directory
eb6931a667057b5ac33461587e75a64f29521448vboxsync-----------------------------
eb6931a667057b5ac33461587e75a64f29521448vboxsync
eb6931a667057b5ac33461587e75a64f29521448vboxsyncWhen switch between different VBox build settings it can be nice to have
eb6931a667057b5ac33461587e75a64f29521448vboxsyncdifferent output directories to avoid having to rebuild the whole source tree
eb6931a667057b5ac33461587e75a64f29521448vboxsynceverything. One typical example is hardening, another is guest additions using
eb6931a667057b5ac33461587e75a64f29521448vboxsynccrossbuild gcc w/ SDK. The latter is is simpler so that's the first example:
eb6931a667057b5ac33461587e75a64f29521448vboxsync
eb6931a667057b5ac33461587e75a64f29521448vboxsync.. code:: makefile
eb6931a667057b5ac33461587e75a64f29521448vboxsync
eb6931a667057b5ac33461587e75a64f29521448vboxsync ifdef VBOX_WITH_COMPATIBLE_LINUX_GUEST_PACKAGE
eb6931a667057b5ac33461587e75a64f29521448vboxsync PATH_OUT_BASE = $(PATH_ROOT)/add-out
eb6931a667057b5ac33461587e75a64f29521448vboxsync endif
eb6931a667057b5ac33461587e75a64f29521448vboxsync
eb6931a667057b5ac33461587e75a64f29521448vboxsyncThe following example is the typical developer setup, i.e. disable hardening by
eb6931a667057b5ac33461587e75a64f29521448vboxsyncdefault but respect command line overrides (kmk VBOX_WITH_HARDENING=1):
eb6931a667057b5ac33461587e75a64f29521448vboxsync
eb6931a667057b5ac33461587e75a64f29521448vboxsync.. code:: make
eb6931a667057b5ac33461587e75a64f29521448vboxsync
eb6931a667057b5ac33461587e75a64f29521448vboxsync VBOX_WITH_HARDENING :=
eb6931a667057b5ac33461587e75a64f29521448vboxsync ifeq ($(VBOX_WITH_HARDENING),)
eb6931a667057b5ac33461587e75a64f29521448vboxsync VBOX_WITHOUT_HARDENING=1
eb6931a667057b5ac33461587e75a64f29521448vboxsync else
eb6931a667057b5ac33461587e75a64f29521448vboxsync PATH_OUT_BASE = $(PATH_ROOT)/hard-out
eb6931a667057b5ac33461587e75a64f29521448vboxsync endif
eb6931a667057b5ac33461587e75a64f29521448vboxsync
eb6931a667057b5ac33461587e75a64f29521448vboxsync
eb6931a667057b5ac33461587e75a64f29521448vboxsyncShare tools download directory between trunk and branches
eb6931a667057b5ac33461587e75a64f29521448vboxsync---------------------------------------------------------
eb6931a667057b5ac33461587e75a64f29521448vboxsync
eb6931a667057b5ac33461587e75a64f29521448vboxsyncTo avoid filling up your disk with unnecessary tool zip and tar.gz files, set
eb6931a667057b5ac33461587e75a64f29521448vboxsyncthe FETCHDIR variable in LocalConfig.kmk to point to a common directory for all
eb6931a667057b5ac33461587e75a64f29521448vboxsyncVBox checkouts.
eb6931a667057b5ac33461587e75a64f29521448vboxsync
eb6931a667057b5ac33461587e75a64f29521448vboxsync.. code:: make
eb6931a667057b5ac33461587e75a64f29521448vboxsync
eb6931a667057b5ac33461587e75a64f29521448vboxsync FETCHDIR = $(HOME)/Downloads/FetchDir
eb6931a667057b5ac33461587e75a64f29521448vboxsync
eb6931a667057b5ac33461587e75a64f29521448vboxsync
eb6931a667057b5ac33461587e75a64f29521448vboxsync-----
eb6931a667057b5ac33461587e75a64f29521448vboxsync
eb6931a667057b5ac33461587e75a64f29521448vboxsync.. [1] no such footnote
eb6931a667057b5ac33461587e75a64f29521448vboxsync
eb6931a667057b5ac33461587e75a64f29521448vboxsync
eb6931a667057b5ac33461587e75a64f29521448vboxsync-----
eb6931a667057b5ac33461587e75a64f29521448vboxsync
eb6931a667057b5ac33461587e75a64f29521448vboxsync:Status: $Id$
eb6931a667057b5ac33461587e75a64f29521448vboxsync:Copyright: Copyright (C) 2006-2013 Oracle Corporation.
eb6931a667057b5ac33461587e75a64f29521448vboxsync