-
Notifications
You must be signed in to change notification settings - Fork 16
Developers intro
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.
You'll need a subversion client and run the following command:BR {{{svn co https://www.wekk.net/svn goback}}}
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
- Make sure you have autoconf, automake and libtool to be able to bootstrap the project
- Build and install libgoback
- Build and install the client of your preference (just the ncurses one is working right now)
- Install the required dependencies:
- binutils-dev
- Enter the source directoryBR {{{cd libgoback/trunk}}}
- Bootstrap the autoconf/automake filesBR {{{./autogen.sh}}}
- 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}}}
- Build the libraryBR {{{make}}}
- Install the libraryBR {{{make install}}}
- Install the required dependencies:
- ncurses-dev
- Enter the source directoryBR {{{cd goback-ncurses/trunk}}}
- Bootstrap the autoconf/automake filesBR {{{./autogen.sh}}}
- 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}}}
- Build the clientBR {{{make}}}
- Install the clientBR {{{make install}}}
- 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.
- 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}}}