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