================================================================================ Building Heraia ================================================================================ Warning : This is an old project that may not compile on recent (>2013) linux distributions. .. contents:: Dependencies needed ------------------- To build heraia you need to install the following packages and all their dependencies before (according that you have a default installation) : On Ubuntu 10.04 and Debian Squeeze : - gcc - make - intltool - libglib2.0-dev - libgtk2.0-dev - libgtkhex0-dev On Debian 7 (Wheezy) : - gcc - make - libtool - intltool - libglib2.0-dev - libgtk-3-dev - libgtkhex-3-dev On OpenSuse 11.3 and Fedora 14 : - gcc - make - intltool - glib2-devel - gtk2-devel - ghex-devel On OpenIndiana 5.11 (still ok for oi_151.1.8) : - gcc-3 - gettext - gnu-gettext - ghex On Centos 6.0 and Redhat 6.0 : - gcc-4.4.4-13.el6 - intltool-0.41.0-1.1.el6 - glib2-devel-2.22.5-5.el6 - gtk2-devel-2.18.9-4.el6 - ghex-2.24.0-4.el6 and ghex-devel-2.24.0-4.el6 found on EPEL_ To make the documentation you will need docutils_ front end tools (rst2html). Compiling the source from a release version (heraia-\*.tar.gz) -------------------------------------------------------------- Type the following set of commands :: ./configure make -s Optional (system installation) :: sudo make install Compiling the source from the svn (the easy way) ------------------------------------------------ You'll need the following programs ``aclocal``, ``libtoolize``, ``automake``, ``autoconf``, ``glib-gettextize`` and ``intltoolize`` to be installed in order to run heraia's autogen.sh :: ./autoclean.sh ./autogen.sh ./configure make -s Optional (system installation) :: sudo make install Now you can run the program (filename is a file of your own choice, for instance *src/heraia* :) :: src/heraia filename If you have installed it :: heraia filename .. note:: If you downloaded the sources from the svn repository the file *heraia.csv* does not mean anything as it has not been generated back since 2007 ! If you have any question regarding heraia, please e-mail me at heraia@delhomme.org I'll be glad to answer your questions. Reminders --------- Code coverage ~~~~~~~~~~~~~ Code coverage and profiling tests do the following :: ./configure --enable-gcov --enable-gprof --enable-debug make ./src/heraia src/heraia Then do whatever you want with the program (eg. test the functions you need to) and (assuming you are in the trunk directory) :: lcov -c -o ../../coverage/coverage.info --directory=./ cd ../../coverage genhtml coverage.info Open *index.html* generated file with your favorite web browser, and you're done ! To do a release ~~~~~~~~~~~~~~~ For a release do not forget to : - change configure.ac version number - heraia.h version number and date - heraia.c doxygen comment version number - generate the doxygen documentation in the docs directory. Edit heraia.doxygen file to reflect version number and directories (basicaly lines PROJECT_NUMBER and OUTPUT_DIRECTORY). - Execute "./make_devel_docs.sh" - make a tar.gz available in the download directory (as for sources) - generate code coverage tests - generate the archive by issuing one of the following command :: make dist make dist-bzip2 make dist-xz Documentation ------------- DocBook ~~~~~~~ Heraia uses JavaDoc style doxygen comments with ``@`` instead of ``\`` to document the code. Here are some of the more commonly used commands : * ``\see`` to do a see also comment * ``\param`` to document parameters * ``\return`` to document to result of a function * ``\struct`` to document a C-struct. * ``\union`` to document a union. * ``\enum`` to document an enumeration type. * ``\fn`` to document a function. * ``\var`` to document a variable or typedef or enum value. * ``\def`` to document a #define. * ``\typedef`` to document a type definition. * ``\file`` to document a file. * ``\namespace`` to document a namespace. * ``\brief`` to document briefly See all available commands in `Dimitri's documentation`_ __ .. _Dimitri's documentation: http://www.stack.nl/~dimitri/doxygen/commands.html ReST ~~~~ Users documentations are now to be written with "ReST" conventions. Here are a few links to some ReST documentation : * The cheatsheet_ * A quickref_ * An `interesting page`_ To generate all the documentation use ``make_docs.sh`` program in the docs sub-directory :: ./make_docs.sh This will generate html documentation in the sub-directory docs/html. __ .. _EPEL: http://download.fedora.redhat.com/pub/epel/6/ .. _cheatsheet: http://docutils.sourceforge.net/docs/user/rst/cheatsheet.txt .. _quickref: http://docutils.sourceforge.net/docs/user/rst/quickref.html .. _interesting page: http://sphinx.pocoo.org/rest.html .. _docutils: http://docutils.sourceforge.net/docs/user/tools.html