main.h
/*
Copyright Universite de Versailles Saint-Quentin en Yvelines 2009
AUTHORS: Sebastien Briais, Sid Touati
This file is part of GDD.
GDD is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
GDD is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with GDD. If not, see
<http://www.gnu.org/licenses/>.
*/
/** \mainpage
\section intro_sec Introduction
This library offers general purpose functions to easily manipulate
data dependency graphs in C.
\section dep_sec Required libraries
\li For data structures and graph algorithms, SCEDA library is
required.
\li For XML parsing, libxml2 is required.
\section install_dec Installation
To install GDD, please refer to INSTALL file of the distribution.
\section compil_sec Using GDD library
\li To compile a project that uses the GDD library, make sure to
add GDD to your include path with -I flag of your C compiler.
\li To link a project against the GDD library, make sure to add
GDD to your library path with -L flag of your C compiler.<br/>
Then link with "-lGDD `xml2-config --libs` -lSCEDA" flags (libxml2 is
needed only if you use the XML parser).
Please refer to the example folder for further details.
\section content_sec Content of the library
\li \ref ddg
\section prog_notes Notes to programmers
All the functions, macros, type definitions of GDD library are
prefixed by "GDD_" (or "_GDD_", "__GDD_").
GDD relies heavily on SCEDA library for representing its data
structures. In particular, it makes use of SCEDA_List,
SCEDA_HashSet, SCEDA_HashMap and of course SCEDA_Graph data
structures. To change the internal representation of GDD, you
will <b>in theory</b> just need to provide a SCEDA compatible API
to manipulate all these data structures. Moreover, it was taken
care to access fields of data structures only through macros or
functions, so this should help the process of changing the
internal representation of data structures such as GDD_NodeLabel,
GDD_Opcode or GDD_EdgeLabel.
\section history_sec History
\subsection v120 v 1.2.0
\li Added extra kind of edge dependencies.
\subsection v110 v 1.1.0
\li Vertices of GDD are now labelled with GDD_NodeLabel structures
instead of GDD_Opcode. This allows to add some extra information
to GDD vertices such as an unique identifier (for debugging
purposes), ...
\subsection v100 v 1.0.0
\li Initial release
\section license_sec License
Copyright Universite de Versailles Saint-Quentin en Yvelines 2009
AUTHORS: Sebastien Briais, Sid Touati
GDD is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
GDD is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with GDD. If not, see
<http://www.gnu.org/licenses/>.
*/