libabigail/doc/website/mainpage.txt

139 lines
4.0 KiB
Plaintext
Raw Normal View History

/*!
\mainpage The ABI Generic Analysis and Instrumentation Library
\tableofcontents
\section presentation Presentation
This project aims at providing a C++ library for constructing,
manipulating, serializing and de-serializing ABI-relevant artifacts.
The set of artifacts that we are interested in is made of
constructions like types, variables, functions and declarations of a
given library or program. For a given program or library, this set of
constructions is called an ABI corpus.
Initial writing/reading of an ABI corpus to an archive * configure.ac: Support detection of libzip dependency. Define new DEPS_CFLAGS and DEPS_LIBS variables for use in Makefile.am to refer to the dependency headers and libraries. * doc/website/mainpage.txt: Update this to talk about the new libzip dependency. * include/Makefile.am: Add abg-libzip-utils.h to the build system. * include/abg-corpus.h (corps): Hide abigail::corpus's private behind a pimpl idiom. (corpus::{drop_translation_units, get_file_path, set_file_path, write, read}): New methods. * include/abg-libxml-utils.h (new_reader_from_buffer): Declare new function. * include/abg-libzip-utils.h: New file. * src/Makefile.am: Add abg-corpus.cc and abg-libzip-utils.cc to the build system. Refer to the library and headers dependencies via the new DEPS_LIBS and DEPS_CFLAGS variables. * src/abg-corpus.cc: New file. * src/abg-ir.cc (translation::set_path): New method. * src/abg-libxml-utils.cc (new_reader_from_buffer): Define new function. * src/abg-libzip-utils.cc: New file. * src/abg-reader.cc (translation_unit::read): New overload. * src/abg-writer.cc: Inject the names from the std namespace into the abigail namespace, rather than into abigail::writer. (abigail::translation_unit::write): New overload. This can now use ofstream and the other stuff from std that are injected in the abigail:: namespace. * tests/Makefile.am: Add tests/test-write-read-archive.cc to the build system; use that to build runtestwritereadarchive. Also add the input test data from tests/data/test-write-read-archive/test[0-4].xml. * /tests/data/test-write-read-archive/test[0-4].xml: New test input data files. * tests/test-write-read-archive.cc: New test for this archive write/read support. Signed-off-by: Dodji Seketeli <dodji@redhat.com>
2013-08-27 13:18:59 +00:00
Thus the project aims at providing a library to manipulate ABI
corpora, compare them, provide detailed information about their
differences and help build tools to infer interesting conclusions
about these differences.
\section documentation Documentation
The documentations of the libabigail tools is available online <a
href="http://sourceware.org/libabigail/manual">here</a>.
The html documentation of the API of the library itself is available
online <a href="http://sourceware.org/libabigail/apidoc">here</a>.
\section communication IRC and Mailing lists
To hang out with libabigail developers and users, you can chat with us
via <a href="http://en.wikipedia.org/wiki/Wikipedia:IRC">IRC</a> at
<em>irc://irc.oftc.net\#libabigail</em>.
To send us patches or just drop by to say Hi, please send an email to
our mailing list <em>libabigail@sourceware.org</em>. The archives of
the mailing list can be read <a
href="https://sourceware.org/ml/libabigail">online</a>. To send us an
email, you first need to register to the mailing list by feeling the
form below.
\htmlonly
<form method="get" action="http://sourceware.org/cgi-bin/ml-request">
Mailing list name:
<input type="text" name="listname" value="libabigail" size="10"/>
<br>
Your e-mail address:
<input type="text" name="username" size="14"/>
<br>
<input type="checkbox" name="digest"/>Digest version
<tt>&nbsp;</tt>
<select name="operation">
<option value="subscribe">subscribe</option>
<option value="unsubscribe">unsubscribe</option>
</select>
<tt>&nbsp;</tt>
<input type="Submit" name="submit" value="Send in the request"/>
</form>
\endhtmlonly
\section bugs Bug reports
Bug reports are to be filed into our <a
href="http://sourceware.org/bugzilla/enter_bug.cgi?product=libabigail">Bugzilla
database</a>.
\section license License
The source code of the library is under <a href="http://www.gnu.org/licenses/lgpl.html"> LGPL version 3</a> or later.
\section source Getting the source code
This project is still in an early stage; we haven't released any
official tarball yet. You can get the source code in a read-only
manner from our <a
href="http://sourceware.org/git/gitweb.cgi?p=libabigail.git">Git
repository</a> by doing:
\code
git clone git://sourceware.org/git/libabigail.git
\endcode
If you have write access on sourceware.org, you can check the source
out in read-write by doing:
\code
git clone ssh://sourceware.org/git/libabigail.git
\endcode
\section compile Compiling the source code
To compile libabigail, you first need to install its dependencies. At
the moment the dependencies are the following Free Software packages:
\li <a href="http://www.gnu.org/software/autoconf/">autoconf</a>
\li <a href="http://www.freedesktop.org/wiki/Software/pkg-config/">pkg-config</a>
\li <a href="http://www.xmlsoft.org">libxml2</a>
\li <a href="https://fedorahosted.org/elfutils/">elfutils</a>
Then go to your local libabigail.git directory where the source code
you've checked out lies and create a 'build' directory that will
receive the binaries resulting from the compilation:
\code
cd libabigail
mkdir build
\endcode
Generate the relevant build-system-related information needed to
configure the package for compilation, by typing:
\code
autoreconf -i
\endcode
Then configure the package:
\code
cd build
../configure --prefix=<absolute-path-of-where-you-want-the-binaries-to-be-installed>
\endcode
Then build the package
\code
make
\endcode
And then install its resulting binaries and documentation:
\code
make install
\endcode
*/