From ac2ad45270b09b29930273578ebf35a4913aae9e Mon Sep 17 00:00:00 2001 From: David Herrmann Date: Sat, 23 Jun 2012 20:09:19 +0200 Subject: [PATCH] build: add gtk-doc This adds gtk-doc documentation builds to kmscon. All documentation is build in a central place due to gtk-doc restrictions. Signed-off-by: David Herrmann --- .gitignore | 7 +++ Makefile.am | 1 + autogen.sh | 5 +- configure.ac | 10 +++- docs/reference/Makefile.am | 102 ++++++++++++++++++++++++++++++++++++++++ docs/reference/kmscon-docs.sgml | 47 ++++++++++++++++++ docs/reference/version.xml.in | 1 + 7 files changed, 170 insertions(+), 3 deletions(-) create mode 100644 docs/reference/Makefile.am create mode 100644 docs/reference/kmscon-docs.sgml create mode 100644 docs/reference/version.xml.in diff --git a/.gitignore b/.gitignore index 923da3c..20cba4f 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,10 @@ stamp-* genshader src/output_shaders.c src/genshader.c +docs/reference/*.txt +docs/reference/*.bak +docs/reference/kmscon.????* +docs/reference/*.stamp +docs/reference/version.xml +docs/reference/*/ +gtk-doc.make diff --git a/Makefile.am b/Makefile.am index 3d49dce..6cca2e4 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,4 +1,5 @@ ACLOCAL_AMFLAGS = -I m4 +SUBDIRS = . docs/reference EXTRA_DIST = README TODO COPYING CLEANFILES = diff --git a/autogen.sh b/autogen.sh index ce27d98..f07c694 100755 --- a/autogen.sh +++ b/autogen.sh @@ -1,4 +1,5 @@ #!/bin/sh mkdir -p m4/ -autoreconf -i -./configure --enable-debug $* +gtkdocize || exit 1 +autoreconf -i || exit 1 +./configure --enable-debug $* || exit 1 diff --git a/configure.ac b/configure.ac index 4e2a9fe..0970a06 100644 --- a/configure.ac +++ b/configure.ac @@ -22,6 +22,14 @@ AM_PROG_AR LT_PREREQ(2.2) LT_INIT +# +# check for gtk-doc +# Use weird syntax to make "gtkdocize" happy. +# +m4_ifdef([GTK_DOC_CHECK],[ +GTK_DOC_CHECK([1.14],[--flavour no-tmpl]) +], [AM_CONDITIONAL([ENABLE_GTK_DOC], false)]) + PKG_CHECK_MODULES([SYSTEMD], [libsystemd-login]) AC_SUBST(SYSTEMD_CFLAGS) AC_SUBST(SYSTEMD_LIBS) @@ -113,5 +121,5 @@ else AC_DEFINE([LOG_ENABLE_DEBUG], [1], [Enable debug for log subsystem]) fi -AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([Makefile docs/reference/Makefile docs/reference/version.xml]) AC_OUTPUT([src/genshader.c]) diff --git a/docs/reference/Makefile.am b/docs/reference/Makefile.am new file mode 100644 index 0000000..a77c4e8 --- /dev/null +++ b/docs/reference/Makefile.am @@ -0,0 +1,102 @@ +# +# Kmscon - Libeloop doc makefile +# Copyright (c) 2012 David Herrmann +# + +# We require automake 1.6 at least. +AUTOMAKE_OPTIONS = 1.6 + +# The name of the module, e.g. 'glib'. +DOC_MODULE=kmscon + +# Uncomment for versioned docs and specify the version of the module, e.g. '2'. +#DOC_MODULE_VERSION=2 + +# The top-level SGML file. You can change this if you want to. +DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml + +# Directories containing the source code. +# gtk-doc will search all .c and .h files beneath these paths +# for inline comments documenting functions and macros. +# e.g. DOC_SOURCE_DIR=$(top_srcdir)/gtk $(top_srcdir)/gdk +DOC_SOURCE_DIR=$(top_srcdir)/src + +# Extra options to pass to gtkdoc-scangobj. Not normally needed. +SCANGOBJ_OPTIONS= + +# Extra options to supply to gtkdoc-scan. +# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED" +SCAN_OPTIONS= + +# Extra options to supply to gtkdoc-mkdb. +# e.g. MKDB_OPTIONS=--xml-mode --output-format=xml +MKDB_OPTIONS=--xml-mode --output-format=xml + +# Extra options to supply to gtkdoc-mktmpl +# e.g. MKTMPL_OPTIONS=--only-section-tmpl +MKTMPL_OPTIONS= + +# Extra options to supply to gtkdoc-mkhtml +MKHTML_OPTIONS= + +# Extra options to supply to gtkdoc-fixref. Not normally needed. +# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html +FIXXREF_OPTIONS= + +# Used for dependencies. The docs will be rebuilt if any of these change. +# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h +# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c +HFILE_GLOB=$(top_srcdir)/src/*.h +CFILE_GLOB=$(top_srcdir)/src/*.c + +# Extra header to include when scanning, which are not under DOC_SOURCE_DIR +# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h +EXTRA_HFILES= + +# Header files or dirs to ignore when scanning. Use base file/dir names +# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h private_code +IGNORE_HFILES= + +# Images to copy into HTML directory. +# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png +HTML_IMAGES= + +# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). +# e.g. content_files=running.sgml building.sgml changes-2.0.sgml +content_files= + +# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded +# These files must be listed here *and* in content_files +# e.g. expand_content_files=running.sgml +expand_content_files= + +# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. +# Only needed if you are using gtkdoc-scangobj to dynamically query widget +# signals and properties. +# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) +# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) +GTKDOC_CFLAGS= +GTKDOC_LIBS= + +# This includes the standard gtk-doc make rules, copied by gtkdocize. +include $(top_srcdir)/gtk-doc.make + +# Other files to distribute +# e.g. EXTRA_DIST += version.xml.in +EXTRA_DIST += + +# Files not to distribute +# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types +# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt +#DISTCLEANFILES += + +# Comment this out if you want 'make check' to test you doc status +# and run some sanity checks +if ENABLE_GTK_DOC +TESTS_ENVIRONMENT = cd $(srcdir) && \ + DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ + SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir) +#TESTS = $(GTKDOC_CHECK) +endif + +-include $(top_srcdir)/git.mk diff --git a/docs/reference/kmscon-docs.sgml b/docs/reference/kmscon-docs.sgml new file mode 100644 index 0000000..9120d8e --- /dev/null +++ b/docs/reference/kmscon-docs.sgml @@ -0,0 +1,47 @@ + + + +]> + + + kmscon Reference Manual + + for kmscon &version;. + The latest version of this documentation can be found on-line at + http://[TODO]/kmscon/. + + + 2011-2012 + David Herrmann <dh.herrmann@googlemail.org> + + + + + API Reference + + + + + + + + + + + + + + + + + + + API Index + + + + + diff --git a/docs/reference/version.xml.in b/docs/reference/version.xml.in new file mode 100644 index 0000000..d78bda9 --- /dev/null +++ b/docs/reference/version.xml.in @@ -0,0 +1 @@ +@VERSION@ -- 2.7.4