1e01aa904Sopenharmony_ci/*!
2e01aa904Sopenharmony_ci
3e01aa904Sopenharmony_ci\mainpage The ABI Generic Analysis and Instrumentation Library
4e01aa904Sopenharmony_ci
5e01aa904Sopenharmony_ci\tableofcontents
6e01aa904Sopenharmony_ci
7e01aa904Sopenharmony_ci\section presentation Presentation
8e01aa904Sopenharmony_ci
9e01aa904Sopenharmony_ciThis project aims at providing a C++ library for constructing,
10e01aa904Sopenharmony_cimanipulating, serializing and de-serializing ABI-relevant artifacts.
11e01aa904Sopenharmony_ciThe set of artifacts that we are interested in is made of
12e01aa904Sopenharmony_ciconstructions like types, variables, functions and declarations of a
13e01aa904Sopenharmony_cigiven library or program.  For a given program or library, this set of
14e01aa904Sopenharmony_ciconstructions is called an ABI corpus.
15e01aa904Sopenharmony_ci
16e01aa904Sopenharmony_ciThus the project aims at providing a library to manipulate ABI
17e01aa904Sopenharmony_cicorpora, compare them, provide detailed information about their
18e01aa904Sopenharmony_cidifferences and help build tools to infer interesting conclusions
19e01aa904Sopenharmony_ciabout these differences.
20e01aa904Sopenharmony_ci
21e01aa904Sopenharmony_ci\section documentation Documentation
22e01aa904Sopenharmony_ci
23e01aa904Sopenharmony_ciThe documentations of the libabigail tools is available online <a
24e01aa904Sopenharmony_cihref="http://sourceware.org/libabigail/manual">here</a>.
25e01aa904Sopenharmony_ci
26e01aa904Sopenharmony_ciThe html documentation of the API of the library itself is available
27e01aa904Sopenharmony_cionline <a href="http://sourceware.org/libabigail/apidoc">here</a>.
28e01aa904Sopenharmony_ci
29e01aa904Sopenharmony_ci\section communication IRC and Mailing lists
30e01aa904Sopenharmony_ci
31e01aa904Sopenharmony_ciTo hang out with libabigail developers and users, you can chat with us
32e01aa904Sopenharmony_civia <a href="http://en.wikipedia.org/wiki/Wikipedia:IRC">IRC</a> at
33e01aa904Sopenharmony_ci<em>irc://irc.oftc.net\#libabigail</em>.
34e01aa904Sopenharmony_ci
35e01aa904Sopenharmony_ciTo send us patches or just drop by to say Hi, please send an email to
36e01aa904Sopenharmony_ciour mailing list at the address 'libabigail <at> sourceware <dot>
37e01aa904Sopenharmony_ciorg'.  The archives of the mailing list can be read <a
38e01aa904Sopenharmony_cihref="https://sourceware.org/ml/libabigail">online</a>.  To send us an
39e01aa904Sopenharmony_ciemail, you first need to register to the mailing list by feeling
40e01aa904Sopenharmony_ci<a href="https://sourceware.org/mailman/listinfo/libabigail">this
41e01aa904Sopenharmony_ciform</a>.
42e01aa904Sopenharmony_ci
43e01aa904Sopenharmony_ci\section bugs Bug reports
44e01aa904Sopenharmony_ci
45e01aa904Sopenharmony_ciBug reports are to be filed into our <a
46e01aa904Sopenharmony_cihref="http://sourceware.org/bugzilla/enter_bug.cgi?product=libabigail">Bugzilla
47e01aa904Sopenharmony_cidatabase</a>.
48e01aa904Sopenharmony_ci
49e01aa904Sopenharmony_ci\section license License
50e01aa904Sopenharmony_ci
51e01aa904Sopenharmony_ciThe source code of the library is under the <a href="https://spdx.org/licenses/Apache-2.0.html">Apache version 2 license</a> with the <a href="https://spdx.org/licenses/LLVM-exception.html">LLVM exception</a>.
52e01aa904Sopenharmony_ci
53e01aa904Sopenharmony_ci\section source Getting the source code
54e01aa904Sopenharmony_ci
55e01aa904Sopenharmony_ciYou can download compressed tarballs containing the source code of
56e01aa904Sopenharmony_ciLibabigail at http://mirrors.kernel.org/sourceware/libabigail.  The
57e01aa904Sopenharmony_cilatest released version of is source code is
58e01aa904Sopenharmony_cihttp://mirrors.kernel.org/sourceware/libabigail/libabigail-2.1.tar.gz.
59e01aa904Sopenharmony_ci
60e01aa904Sopenharmony_ciYou can also get the source code in a read-only manner from our <a
61e01aa904Sopenharmony_cihref="http://sourceware.org/git/gitweb.cgi?p=libabigail.git">Git
62e01aa904Sopenharmony_cirepository</a> by doing:
63e01aa904Sopenharmony_ci
64e01aa904Sopenharmony_ci\code
65e01aa904Sopenharmony_ci	git clone git://sourceware.org/git/libabigail.git
66e01aa904Sopenharmony_ci\endcode
67e01aa904Sopenharmony_ci
68e01aa904Sopenharmony_ciIf you have write access on sourceware.org, you can check the source
69e01aa904Sopenharmony_ciout in read-write by doing:
70e01aa904Sopenharmony_ci
71e01aa904Sopenharmony_ci\code
72e01aa904Sopenharmony_ci	git clone ssh://sourceware.org/git/libabigail.git
73e01aa904Sopenharmony_ci\endcode
74e01aa904Sopenharmony_ci
75e01aa904Sopenharmony_ci\section compile Compiling the source code
76e01aa904Sopenharmony_ci
77e01aa904Sopenharmony_ciTo compile libabigail, you first need to install its dependencies.  At
78e01aa904Sopenharmony_cithe moment the dependencies are the following Free Software packages:
79e01aa904Sopenharmony_ci
80e01aa904Sopenharmony_ci    \li <a href="http://www.gnu.org/software/autoconf/">autoconf</a>
81e01aa904Sopenharmony_ci    \li <a href="http://www.gnu.org/software/automake/">automake</a>
82e01aa904Sopenharmony_ci    \li <a href="http://www.gnu.org/software/libtool/">libtool</a>
83e01aa904Sopenharmony_ci    \li <a href="http://www.freedesktop.org/wiki/Software/pkg-config/">pkg-config</a>
84e01aa904Sopenharmony_ci    \li <a href="http://www.xmlsoft.org">libxml2</a>
85e01aa904Sopenharmony_ci    \li <a href="https://fedorahosted.org/elfutils/">elfutils</a>
86e01aa904Sopenharmony_ci    \li <a href="http://www.stack.nl/~dimitri/doxygen/download.html">doxygen</a>
87e01aa904Sopenharmony_ci    \li <a href="http://www.sphinx-doc.org/en/stable/">python-sphinx</a>
88e01aa904Sopenharmony_ci
89e01aa904Sopenharmony_ci\subsection compile-from-tarball Compiling the code from the tarball
90e01aa904Sopenharmony_ci
91e01aa904Sopenharmony_ciOnce you've downloaded the tarball, please extract its content to a
92e01aa904Sopenharmony_cidirectory of your choice.  To extract the tarball on GNU/Linux, please
93e01aa904Sopenharmony_citype:
94e01aa904Sopenharmony_ci
95e01aa904Sopenharmony_ci\code
96e01aa904Sopenharmony_ci  tar -xvf libabigail-<version>.tar.gz
97e01aa904Sopenharmony_ci\endcode
98e01aa904Sopenharmony_ci
99e01aa904Sopenharmony_ciThis should create a directory <em>libabigail-<version></em>.
100e01aa904Sopenharmony_ci
101e01aa904Sopenharmony_ciThen go to that directory and run the commands:
102e01aa904Sopenharmony_ci
103e01aa904Sopenharmony_ci\code
104e01aa904Sopenharmony_ci  mkdir build
105e01aa904Sopenharmony_ci  cd build
106e01aa904Sopenharmony_ci  ../configure --prefix=/where/you/want/to/install/libabigail
107e01aa904Sopenharmony_ci  make all install
108e01aa904Sopenharmony_ci\endcode
109e01aa904Sopenharmony_ci
110e01aa904Sopenharmony_ciMake sure the directory <em>/where/you/want/to/install/libabigail</em>
111e01aa904Sopenharmony_ciexists and is writeable by you.
112e01aa904Sopenharmony_ci
113e01aa904Sopenharmony_ciThe commands above should have built libabigail and its associated
114e01aa904Sopenharmony_citools, and installed them under
115e01aa904Sopenharmony_ci<em>/where/you/want/to/install/libabigail</em>.  Note that built
116e01aa904Sopenharmony_ciobjects are under the <em>build</em> sub-directory of the source tree
117e01aa904Sopenharmony_ciof Libabigail which you extracted from the tarball.
118e01aa904Sopenharmony_ci
119e01aa904Sopenharmony_ci\subsection compile-from-git Compiling the code retrieved via the source code repository
120e01aa904Sopenharmony_ci
121e01aa904Sopenharmony_ciGo to your local libabigail.git directory where the source code
122e01aa904Sopenharmony_ciyou've checked out lies and create a 'build' directory that will
123e01aa904Sopenharmony_cireceive the binaries resulting from the compilation:
124e01aa904Sopenharmony_ci
125e01aa904Sopenharmony_ci\code
126e01aa904Sopenharmony_ci    cd libabigail
127e01aa904Sopenharmony_ci    mkdir build
128e01aa904Sopenharmony_ci\endcode
129e01aa904Sopenharmony_ci
130e01aa904Sopenharmony_ciGenerate the relevant build-system-related information needed to
131e01aa904Sopenharmony_ciconfigure the package for compilation, by typing:
132e01aa904Sopenharmony_ci
133e01aa904Sopenharmony_ci\code
134e01aa904Sopenharmony_ci    autoreconf -i
135e01aa904Sopenharmony_ci\endcode
136e01aa904Sopenharmony_ci
137e01aa904Sopenharmony_ciThen configure the package:
138e01aa904Sopenharmony_ci
139e01aa904Sopenharmony_ci\code
140e01aa904Sopenharmony_ci    cd build
141e01aa904Sopenharmony_ci    ../configure --prefix=<absolute-path-of-where-you-want-the-binaries-to-be-installed>
142e01aa904Sopenharmony_ci\endcode
143e01aa904Sopenharmony_ci
144e01aa904Sopenharmony_ciThen build the package
145e01aa904Sopenharmony_ci
146e01aa904Sopenharmony_ci\code
147e01aa904Sopenharmony_ci    make
148e01aa904Sopenharmony_ci\endcode
149e01aa904Sopenharmony_ci
150e01aa904Sopenharmony_ciAnd then install its resulting binaries and documentation:
151e01aa904Sopenharmony_ci
152e01aa904Sopenharmony_ci\code
153e01aa904Sopenharmony_ci    make install
154e01aa904Sopenharmony_ci\endcode
155e01aa904Sopenharmony_ci
156e01aa904Sopenharmony_ci
157e01aa904Sopenharmony_ci*/
158