libabigail/doc/website/mainpage.txt

102 lines
2.8 KiB
Plaintext
Raw Normal View History

/*!
\mainpage Home page of the ABI Generic Analysis and Instrumentation Library
\par Introduction
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
corpuses, compare them, provide detailed information about their
differences and help build tools to infer interesting conclusions
about these differences.
\par Documentation
The html documentation of the library is available online <a
href="http://sourceware.org/libabigail/apidoc">here</a>.
\par 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{.sh}
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{.sh}
git clone ssh://sourceware.org/git/libabigail.git
\endcode
\par Compiling
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.xmlsoft.org">libxml2</a>
\li <a href="http://www.gnu.org/software/autoconf/">autoconf</a>
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
\li <a href="http://www.nih.at/libzip">libzip</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{.sh}
cd libabigail
mkdir build
\endcode
Generate the relevant build-system-related information needed to
configure the package for compilation, by typing:
\code{.sh}
autoreconf -i
\endcode
Then configure the package:
\code{.sh}
cd build
../configure --prefix=<absolute-path-of-where-you-want-the-binaries-to-be-installed>
\endcode
Then build the package
\code{.sh}
make
\endcode
And then install its resulting binaries and documentation:
\code{.sh}
make install
\endcode
\par Contribute and file bug reports
To send us patches or just drop by to say hi, feel free to send an
email to our mailing list libabigail@sourceware.org.
Bug reports are to be filed into our <a
href="http://sourceware.org/bugzilla/enter_bug.cgi?product=libabigail">Bugzilla
database</a>.
\par License
The source code of the library is under <a href="http://www.gnu.org/licenses/lgpl.html"> LGPL version 3</a> or later.
*/