summaryrefslogtreecommitdiff
path: root/README
blob: 446da369c325ab00b4d77f510e281083f2aca35e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
GTK-Doc - Documentation generator for C code
============================================

GTK-Doc is used to document C code. It is typically used to document the public
API of libraries, such as GLib-based 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 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 for example with yelp: `yelp help/manual/C/index.docbook`.

Building
--------

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

### Build using the Autotools

In order to build with the classic Autotools 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.

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