
GTK+ DocBook Documentation Generator
====================================

GTK-Doc is used to document C code. It is typically used to document the public
API of libraries, such as the GTK+ and GNOME libraries, but it can also be
used to document application code.

Note that GTK-Doc wasn't originally intended to be a general-purpose
documentation tool, so it can be a bit awkward to setup and use.
For a more polished general-purpose documentation tool you may want to look
at Doxygen (http://www.doxygen.org/). However GTK-Doc has some special code
to document the signals and properties of GTK+ widgets and GObject classes
which other tools may not have.

From your source code comments GTK-Doc generates a Docbook XML document, which
is then transformed into HTML and/or PDF.
The generated HTML documentation can be browsed in an ordinary web browser or
by using the special Devhelp API browser
(see https://wiki.gnome.org/Apps/Devhelp).


Requirements
============

Python 3.x
    http:///www.python.org

Additional python modules:
    For the tests: unittest, parameterized
    For mkhtml2 (experimental): anytree, lxml and pygments
    For fixxref: pygments

For XML output (recommended):

The DocBook XML DTD.
    http://www.oasis-open.org/docbook/

The DocBook XSL Stylesheets.
    http://docbook.sourceforge.net/projects/xsl/

libxslt & libxml2 >= 2.3.6.
    http://xmlsoft.org/

For PDF output:

the dblatex tool.
    http://dblatex.sourceforge.net/

Most distributions now have packages for all of these, so I would strongly
advise that you grab those.

See the documentation in the help/manual directory for more information. You can
read it e.g. with yelp file://$PWD/help/manual/C/gtk-doc-manual.xml


Building
========

We are supporting two build systems to build gtk-doc for some transitions time.


Build using auto*
-----------------

In order to build with a the classic auto* system use these commands:

Build from git:
./autogen.sh; make

Build from dist tarball:
./configure; make

There are a few parameters one can pass to ./configure, run ./configure --help
to see them. Also ./autogen.sh can take those settings (and will hand them
through to ./configure).

To run the tests:
make check

To install:
make install

To make a release:
make distcheck
or
make dist


Build using meson
-----------------

Support for meson is new and still experimental.

Build it from git:
meson build .
ninja -C build

There are some options one can specify too:
meson build . --prefix=
meson build . -Dautotools_support=false
meson build . -Dcmake_support=false
meson build . -Dyelp_manual=false

To run tests:
ninja -C build test

To install:
ninja -C build install

To make a release:
ninja -C build dist
