diff --git a/docs/reference/gobject/glib-mkenums.xml b/docs/reference/gobject/glib-mkenums.xml
index 1dabe6053..f9245cb5d 100644
--- a/docs/reference/gobject/glib-mkenums.xml
+++ b/docs/reference/gobject/glib-mkenums.xml
@@ -208,30 +208,54 @@ typedef enum /*< flags,prefix=PREFIX >*/
TEXT
-Put out TEXT prior to processing input files.
+Emits TEXT prior to processing input files.
+
+
+You can specify this option multiple times, and the TEXT
+will be concatenated.
+
+
+When used along with a template file, TEXT
+will be prepended to the template's file-header section.
TEXT
-Put out TEXT everytime a new input file
+Emits TEXT every time a new input file
is being processed.
+
+
+You can specify this option multiple times, and the TEXT
+will be concatenated.
+
+
+When used along with a template file, TEXT
+will be appended to the template's file-production section.
TEXT
-Put out TEXT after all input files have been
+Emits TEXT after all input files have been
processed.
+
+
+You can specify this option multiple times, and the TEXT
+will be concatenated.
+
+
+When used along with a template file, TEXT
+will be appended to the template's file-tail section.
TEXT
-Put out TEXT everytime an enum is encountered
+Emits TEXT everytime an enum is encountered
in the input files.
@@ -239,23 +263,47 @@ in the input files.
TEXT
-Put out TEXT before iterating over the set of
+Emits TEXT before iterating over the set of
values of an enum.
+
+
+You can specify this option multiple times, and the TEXT
+will be concatenated.
+
+
+When used along with a template file, TEXT
+will be prepended to the template's value-header section.
TEXT
-Put out TEXT for every value of an enum.
+Emits TEXT for every value of an enum.
+
+
+You can specify this option multiple times, and the TEXT
+will be concatenated.
+
+
+When used along with a template file, TEXT
+will be appended to the template's value-production section.
TEXT
-Put out TEXT after iterating over all values
+Emits TEXT after iterating over all values
of an enum.
+
+
+You can specify this option multiple times, and the TEXT
+will be concatenated.
+
+
+When used along with a template file, TEXT
+will be appended to the template's value-tail section.
@@ -332,6 +380,125 @@ Write output to FILE instead of stdout.
+Using glib-mkenums with Autotools
+
+
+In order to use glib-mkenums in your project when using
+Autotools as the build system, you will first need to modify your
+configure.ac file to ensure you find the appropriate
+command using pkg-config, similarly as to how you discover
+the compiler and linker flags for GLib.
+
+
+PKG_PROG_PKG_CONFIG([0.28])
+
+PKG_CHECK_VAR([GLIB_MKENUMS], [glib-2.0], [glib_mkenums])
+
+
+In your Makefile.am file you will typically use rules
+like these:
+
+
+# A list of headers to inspect
+project_headers = \
+ project-foo.h \
+ project-bar.h \
+ project-baz.h
+
+enum-types.h: $(project_headers) enum-types.h.in
+ $(AM_V_GEN)$(GLIB_MKENUMS) \
+ --template=enum-types.h.in \
+ --output=$@ \
+ $(project_headers)
+
+enum-types.c: $(project_headers) enum-types.c.in enum-types.h
+ $(AM_V_GEN)$(GLIB_MKENUMS) \
+ --template=enum-types.c.in \
+ --output=$@ \
+ $(project_headers)
+
+BUILT_SOURCES += enum-types.h enum-types.c
+CLEANFILES += enum-types.h enum-types.c
+EXTRA_DIST += enum-types.h.in enum-types.c.in
+
+
+In the example above, we have a variable called project_headers
+where we reference all header files we want to inspect for generating enumeration
+GTypes. In the enum-types.h rule we use glib-mkenums
+with a template called enum-types.h.in in order to generate the
+header file; a header template file will typically look like this:
+
+
+/*** BEGIN file-header ***/
+#pragma once
+
+/* Include the main project header */
+#include "project.h"
+
+G_BEGIN_DECLS
+/*** END file-header ***/
+
+/*** BEGIN file-production ***/
+
+/* enumerations from "@filename@" */
+/*** END file-production ***/
+
+/*** BEGIN value-header ***/
+GType @enum_name@_get_type (void) G_GNUC_CONST;
+#define @ENUMPREFIX@_TYPE_@ENUMSHORT@ (@enum_name@_get_type ())
+/*** END value-header ***/
+
+/*** BEGIN file-tail ***/
+G_END_DECLS
+/*** END file-tail ***/
+
+
+The enum-types.c rule is similar to the rule for the
+header file, but will use a different enum-types.c.in template
+file, similar to this:
+
+
+/*** BEGIN file-header ***/
+#include "config.h"
+#include "enum-types.h"
+
+/*** END file-header ***/
+
+/*** BEGIN file-production ***/
+/* enumerations from "@filename@" */
+/*** END file-production ***/
+
+/*** BEGIN value-header ***/
+GType
+@enum_name@_get_type (void)
+{
+ static volatile gsize g_@type@_type_id__volatile;
+
+ if (g_once_init_enter (&g_define_type_id__volatile))
+ {
+ static const G@Type@Value values[] = {
+/*** END value-header ***/
+
+/*** BEGIN value-production ***/
+ { @VALUENAME@, "@VALUENAME@", "@valuenick@" },
+/*** END value-production ***/
+
+/*** BEGIN value-tail ***/
+ { 0, NULL, NULL }
+ };
+
+ GType g_@type@_type_id =
+ g_@type@_register_static (g_intern_static_string ("@EnumName@"), values);
+
+ g_once_init_leave (&g_@type@_type_id__volatile, g_@type@_type_id);
+ }
+ return g_@type@_type_id__volatile;
+}
+
+/*** END value-tail ***/
+
+
+
See also