Overview

Directories

docs

The documentation for xy resides in the docs directory.

XY’s documentation is managed by Sphinx; the latest version is always available online.

examples

Various examples for interacting and integrating with xy live in the examples directory.

lib

The core of xy is housed in the lib directory. The real parts of xy live here – from utilities and library interefaces to modules like xy’s broadcasting engine.

resources

The resources directory contains xy’s ancillary files. Resources for build automation and testing, images, and runtime resources are all held here.

src

The src directory contains xy’s main function - the application’s entry point. The main executable is built independently of xy’s libraries and tests to allow for things like parallel builds and a robust level of testing.

tests

The tests directory contains binaries that test pieces of xy. The same tests are used to exercise various components and identify potential memory leaks or performance problems.

XY supports testing via the Check unit testing framework.

Requirements

TODO - requirements currently in flux (njb)

Building

The xy source tree is managed by Autotools. It follows a standard configure-and-build approach.

# ./configure --quiet
xy build configuration
----------------------
version         : 2012
cflags          : -pipe -std=c99 -Wall -Wunused -Wextra -Wno-unused-parameter -O0 -g3
tests           : yes
optimizations   : no

The default build configuration targets developers. To build xy for production use:

# ./configure --enable-optimizations --disable-tests --quiet
xy build configuration
----------------------
version         : 2012
cflags          : -pipe -std=c99 -Wall -Wunused -Wextra -Wno-unused-parameter -O3
tests           : no
optimizations   : yes

Running

XY can be launched using ck-launch-session and a Xclients or xsession file in your home directory. Your login manager can also be configured to start xy for you. Refer to your distribution’s documentation for more information.

Under Valgrind

You can run xy under Valgrind, to help isolate memory leaks or troubleshoot performance problems. The overhead of running xy with Valgrind will make the interface cumbersome making xy unsuitable for regular use.

valgrind --tool=memcheck --leak-check=full --log-file=$HOME/valgrind.xy.log xy

Documenting

Documentation can be generated by using the html make target.

# make html

Use of this target requires Sphinx. The HTML-based documentation will be located in docs/build/html.