Building Unity from Source
In this guide you will build a separated version of Unity trunk (locally installed to your home directory), so you don't need to worry about corrupting the version from the Ubuntu repositories and you also won't need to get root permissions throughout the whole process (except for installing the build dependencies).
0. Installing build dependencies
You'll need to run this once to install all necessary build dependencies:
sudo apt-get install bzr cmake compiz-dev gnome-common libbamf3-dev libboost-dev \
libboost-serialization-dev libgconf2-dev libgdu-dev libglewmx1.6-dev \
libgnome-desktop-3-dev libibus-1.0-dev libindicator3-dev libjson-glib-dev \
libnotify-dev libnux-2.0-dev libpci-dev libsigc++-2.0-dev libunity-dev \
libunity-misc-dev libutouch-geis-dev libxxf86vm-dev libzeitgeist-dev xsltproc
If you have source code repositories (aka deb-src
) enabled, you can instead use:
sudo apt-get build-dep unity
1. Preparing the environment
Replace SOURCE
and PREFIX
with the directories you'd like the source and build files to go. In this example I put both in my home directory:
export SOURCE=$HOME/source/unity
export PREFIX=$HOME/build/unity
export PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig:$PKG_CONFIG_PATH"
export LD_LIBRARY_PATH="$PREFIX/lib:$LD_LIBRARY_PATH"
export LD_RUN_PATH="$PREFIX/lib:$LD_RUN_PATH"
export XDG_DATA_DIRS="$PREFIX/share:$XDG_DATA_DIRS"
mkdir -p "$PREFIX"
mkdir -p "$SOURCE"
cd "$SOURCE"
2. Building Nux
You will probably need to grab the latest version of Nux
to get Unity trunk to compile:
bzr branch lp:nux
cd nux
./autogen.sh --disable-examples --disable-gputests --disable-tests --prefix="$PREFIX"
make -j4
make install
cd ..
Tip: Most modern desktops and laptops have several cores. You can greatly speed up the compilation by taking advantage of this. The make
command has build-in support for this which you can activate using the -jN switch where N is the number of jobs to run in parallel. A good rule of thumb is to run 2 times the number of cores on your processor. Thus, on a normal dual core computer you should run make -j4
to minimize the compilation time.
3. Building Unity
Now grab the latest Unity code and build it:
bzr branch lp:unity
cd unity
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Debug -DCOMPIZ_PLUGIN_INSTALL_TYPE=local -DGSETTINGS_LOCALINSTALL=ON -DCMAKE_INSTALL_PREFIX="$PREFIX"
make -j4
make install
That's it, log out and back in again and you should be running the latest Unity. Alternatively, you can run
setsid $PREFIX/bin/unity
4. Updating
Make sure to prepare the environment like described in step 1, then simply enter both top-level directories nux
and unity
, run bzr pull
, rebuild, and reinstall.
I suggest removing and recreating the build
directory in the unity
directory, to make sure no old files are messing with your build.
5. Removing Unity
Remove the three directories $SOURCE
, $PREFIX
and ~/.compiz-1
.
Useful Link: