Empathy is split in different processes:
- src/empathy: contact list, considered as the main UI
- src/empathy-chat: chat UI
- src/empathy-call: call UI
- src/empathy-accounts: UI to configure IM accounts
- src/empathy-debugger: debug tool

Each process can be run directly from source without having to be installed to
its prefix. You just have to define an appropriate environment using the
wrapper found in the tools/ directory.. For example:
  ./tools/empathy-env ./src/empathy

The chat and call UI are automatically started by telepathy-mission-control
when receiving or requesting a chat/call. In order to use your custom version
you have to kill any existing instance of empathy-{chat,call} and then start
it with EMPATHY_PERSIST=1 to prevent it from auto exiting if there is no
channel to handle. For example:
  EMPATHY_PERSIST=1 ./tools/empathy-env ./src/empathy-chat

Debugging can be turned on using EMPATHY_DEBUG=all and logged to a file
with EMPATHY_LOGFILE=/tmp/empathy.log

Sometimes you may want to load the locally compiled version of some GStreamer
plugin (e.g. Farstream) instead of the system installed one. To do so, just
set the GST_PLUGIN_PATH environment variable to tell GStreamer where your
plugins are located and the GST_PLUGIN_LOADING_WHITELIST to avoid conflicts
with system installed plugins. It's also a good idea to use GST_REGISTRY to
avoid clobbering your default GStreamer registry. For example you can
export these before launching the empathy processes as shown above:
  export GST_PLUGIN_LOADING_WHITELIST=gstreamer:gst-plugins-base:gst-plugins-good:libnice:farstream:gst-plugins-bad:gst-plugins-ugly:gst-ffmpeg
  export GST_PLUGIN_PATH=/path/to/your/custom/lib/gstreamer-0.10
  export GST_REGISTRY=/tmp/gstreamer.registry

See http://live.gnome.org/Empathy/ about coding style conventions.
See also http://live.gnome.org/Empathy/Git to read about our git workflow.
