Skip to content
whatsbcn edited this page Nov 17, 2013 · 1 revision

Here you'll find a rough introduction to some things you should know if you want to follow the development.

Getting the code

You'll need a subversion client and run the following command:BR {{{svn co https://www.wekk.net/svn goback}}}

Understanding the repository layout

There are several directories at the root of the repository.

  • doc: contains internal documentation (references, discussion documents, etc.)
  • project directories: each of them contains the standard subversion layout for one software package. These are the currently available packages:
  • libgoback: the core of the application
  • goback-ncurses: ncurses client
  • goback-gtk: gtk+ client

Building the project

  1. Make sure you have autoconf, automake and libtool to be able to bootstrap the project
  2. Build and install libgoback
  3. Build and install the client of your preference (just the ncurses one is working right now)

Building libgoback

  1. Install the required dependencies:
    • binutils-dev
  2. Enter the source directoryBR {{{cd libgoback/trunk}}}
  3. Bootstrap the autoconf/automake filesBR {{{./autogen.sh}}}
  4. Configure the library, specifying the install directory (don't use a system wide directory while you're developing) and optionally using the maintainer mode, which will automatically regenerate the outdated files in the build system.BR {{{./configure --prefix=/home/user/opt/goback --enable-maintainer-mode}}}
  5. Build the libraryBR {{{make}}}
  6. Install the libraryBR {{{make install}}}

Building goback-ncurses

  1. Install the required dependencies:
    • ncurses-dev
  2. Enter the source directoryBR {{{cd goback-ncurses/trunk}}}
  3. Bootstrap the autoconf/automake filesBR {{{./autogen.sh}}}
  4. Configure the client, specifying the install directory (don't use a system wide directory while you're developing, it can be the same one you used for the library) and optionally using the maintainer mode, which will automatically regenerate the outdated files in the build system. You'll also need to use the environment variable PKG_CONFIG_PATH to let it know where libgoback is installed.BR {{{PKG_CONFIG_PATH=/home/user/opt/goback/lib/pkgconfig/ ./configure --prefix=/home/user/opt/goback --enable-maintainer-mode}}}
  5. Build the clientBR {{{make}}}
  6. Install the clientBR {{{make install}}}

Code formatting and documentation

  • Currently we're using [http://wiki.scummvm.org/index.php/Code_Formatting_Conventions ScummVM's code formating conventions]
  • We use Doxygen to generate documentation from the source code. Use documentation blocks marked as {{{/** */}}} to document the interfaces.
  • You can generate libgoback's code documentation in HTML by using {{{make doc}}}. You'll need doxygen and graphviz for this to work.

Additional notes

  • When appropiate, try to add core test cases to libgoback's /test. The test cases can be run using {{{make check}}}.
  • You can create distribution packages with {{{make dist}}}, while it would be best to use {{{make distcheck}}}, which tests the packages by building and installing to temporary directories, and running the tests.
  • If you want to get additional warnings and make GCC behave in a strict mode, set {{{CXXFLAGS="-Wall -pedantic"}}} when calling {{{./configure}}}