Giter Club home page Giter Club logo

heraia's Introduction

================================================================================
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
[email protected] 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

heraia's People

Contributors

dupgit avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.