dupgit / heraia

An hexadecimal editor - project was initially on gna!

Home Page:http://heraia.tuxfamily.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

================================================================================
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

About

An hexadecimal editor - project was initially on gna!

http://heraia.tuxfamily.org/

License:GNU General Public License v2.0


Languages

Language:C 94.8%Language:M4 2.2%Language:Shell 1.6%Language:Makefile 0.9%Language:Inno Setup 0.3%Language:Python 0.2%