If you want to hack on unity you need the following packages - libnux-2.0 - libbamf - libdee - gio-2.0 - dbusmenu-glib-0.4 - gthread-2.0 - indicator - atk - libatk-adaptor Or if you are on ubuntu run the command, apt-get build-dep unity Unity uses the google coding style for any C++ code which can be found here: http://google-styleguide.googlecode.com/svn/trunk/cppguide_xml When in doubt copy the coding style of the file you are editing. Internal Documentation can be built for Unity by having doxygen installed and running make doxygen - its intended to give a high level understanding of the relationships between different parts of the code, not as a definitive API. doxygen generated files will be stored in api-docs/ To build Unity the latest Unity you should grab the source files from bzr with bzr branch lp:unity then make a directory called build in unity directory. inside that directory run CMAKE ../ make Please note that this will create a systemwide install of unity, if you are developing localy (you are unless you know different) run CMAKE -DCMAKE_INSTALL_PREFIX=~/staging ../ changing ~/staging to suit wherever you want to install files locally Standalone clients are not built by default, they require substantial build time investments and memory investments (500MB and will double your build time) - however they are very useful for development. to build them you can run the standalone clients make target make standalone-clients all or if you have a specific client you care about you can build that client explictly make dash Testing is handled through GTest, googles test system, we currently have three test targets; test-gtest, test-gtest-xless, test-gtest-dbus. tests that require Nux should be in test-gtest as they require X, tests that can run headless should be in test-gtest-xless and tests that require dbus should be run with test-gtest-dbus, which tests run with our test service. To enable debug logging you must set the environment variable UNITY_LOG_SEVERITY to the log domain you want to watch and the log level for that domain. For example: UNITY_LOG_SEVERITY="unity.dash.lens=DEBUG" standalone-clients/dash If you want to run the autopilot test suite, refer to the instructions in tests/autopilot/README. for more information see the README file