summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Withnall <philip.withnall@collabora.co.uk>2014-12-16 13:38:02 +0000
committerStefan Sauer <ensonic@users.sf.net>2015-07-15 10:30:09 +0200
commit98b88db275738b7235248a503e8fa1cb4c42e01a (patch)
treecadc2b1b2688f78c50da5407b68d2fad5507d1a7
parent647d9fffe9657cc13b1da100f9ebe5976f07ca44 (diff)
downloadgtk-doc-98b88db275738b7235248a503e8fa1cb4c42e01a.tar.gz
make: Generate an entities file on build containing PACKAGE variables
Users frequently want to substitute PACKAGE_VERSION into the build documentation, but end up having to do entity substitutions and automake integration for it themselves, which is tricky to get right. Generate an entity file automatically on build, containing all the PACKAGE_* variables. Use it in the default generated main XML file, so that new modules using gtk-doc don’t have to worry about this any more. https://bugzilla.gnome.org/show_bug.cgi?id=743182
-rw-r--r--gtk-doc.make13
-rw-r--r--gtk-doc.notmpl.make13
-rwxr-xr-xgtkdoc-mkdb.in14
-rw-r--r--tests/gtk-doc.notmpl.make13
4 files changed, 47 insertions, 6 deletions
diff --git a/gtk-doc.make b/gtk-doc.make
index 823abb0..28754c0 100644
--- a/gtk-doc.make
+++ b/gtk-doc.make
@@ -165,7 +165,7 @@ GTK_DOC_V_XML=$(GTK_DOC_V_XML_$(V))
GTK_DOC_V_XML_=$(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY))
GTK_DOC_V_XML_0=@echo " DOC Building XML";
-sgml-build.stamp: tmpl.stamp $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files)
+sgml-build.stamp: tmpl.stamp $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files) xml/gtkdocentities.ent
-$(GTK_DOC_V_XML)chmod -R u+w $(srcdir) && _source_dir='' ; \
for i in $(DOC_SOURCE_DIR) ; do \
_source_dir="$${_source_dir} --source-dir=$$i" ; \
@@ -176,6 +176,17 @@ sgml-build.stamp: tmpl.stamp $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(
sgml.stamp: sgml-build.stamp
@true
+xml/gtkdocentities.ent: Makefile
+ $(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \
+ echo "<!ENTITY package \"$(PACKAGE)\">"; \
+ echo "<!ENTITY package_bugreport \"$(PACKAGE_BUGREPORT)\">"; \
+ echo "<!ENTITY package_name \"$(PACKAGE_NAME)\">"; \
+ echo "<!ENTITY package_string \"$(PACKAGE_STRING)\">"; \
+ echo "<!ENTITY package_tarname \"$(PACKAGE_TARNAME)\">"; \
+ echo "<!ENTITY package_url \"$(PACKAGE_URL)\">"; \
+ echo "<!ENTITY package_version \"$(PACKAGE_VERSION)\">"; \
+ ) > $@
+
#### html ####
GTK_DOC_V_HTML=$(GTK_DOC_V_HTML_$(V))
diff --git a/gtk-doc.notmpl.make b/gtk-doc.notmpl.make
index 9ccd0b0..45a3350 100644
--- a/gtk-doc.notmpl.make
+++ b/gtk-doc.notmpl.make
@@ -142,7 +142,7 @@ GTK_DOC_V_XML=$(GTK_DOC_V_XML_$(V))
GTK_DOC_V_XML_=$(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY))
GTK_DOC_V_XML_0=@echo " DOC Building XML";
-sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files)
+sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent
$(GTK_DOC_V_XML)_source_dir='' ; \
for i in $(DOC_SOURCE_DIR) ; do \
_source_dir="$${_source_dir} --source-dir=$$i" ; \
@@ -153,6 +153,17 @@ sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DO
sgml.stamp: sgml-build.stamp
@true
+xml/gtkdocentities.ent: Makefile
+ $(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \
+ echo "<!ENTITY package \"$(PACKAGE)\">"; \
+ echo "<!ENTITY package_bugreport \"$(PACKAGE_BUGREPORT)\">"; \
+ echo "<!ENTITY package_name \"$(PACKAGE_NAME)\">"; \
+ echo "<!ENTITY package_string \"$(PACKAGE_STRING)\">"; \
+ echo "<!ENTITY package_tarname \"$(PACKAGE_TARNAME)\">"; \
+ echo "<!ENTITY package_url \"$(PACKAGE_URL)\">"; \
+ echo "<!ENTITY package_version \"$(PACKAGE_VERSION)\">"; \
+ ) > $@
+
#### html ####
GTK_DOC_V_HTML=$(GTK_DOC_V_HTML_$(V))
diff --git a/gtkdoc-mkdb.in b/gtkdoc-mkdb.in
index cafc023..db73af1 100755
--- a/gtkdoc-mkdb.in
+++ b/gtkdoc-mkdb.in
@@ -384,6 +384,8 @@ EOF
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
[
<!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'">
+ <!ENTITY % gtkdocentities SYSTEM "../xml/gtkdocentities.ent">
+ %gtkdocentities;
]>
EOF
}
@@ -2648,11 +2650,11 @@ sub OutputBook {
${\( MakeDocHeader ("book") )}
<book id="index">
<bookinfo>
- <title>$MODULE Reference Manual</title>
+ <title>&package_name; Reference Manual</title>
<releaseinfo>
- for $MODULE [VERSION].
+ for &package_string;.
The latest version of this documentation can be found on-line at
- <ulink role="online-location" url="http://[SERVER]/$MODULE/index.html">http://[SERVER]/$MODULE/</ulink>.
+ <ulink role="online-location" url="http://[SERVER]/&package_name;/index.html">http://[SERVER]/&package_name;/</ulink>.
</releaseinfo>
</bookinfo>
@@ -3079,6 +3081,12 @@ sub MakeDocHeader {
my ($tag) = @_;
my $header = $doctype_header;
$header =~ s/<!DOCTYPE \w+/<!DOCTYPE $tag/;
+
+ # fix the path for book since this is one level up
+ if ($tag eq "book") {
+ $header =~ s#<!ENTITY % gtkdocentities SYSTEM \"../([a-zA-Z./]+)\">#<!ENTITY % gtkdocentities SYSTEM \"$1\">#;
+ }
+
return $header;
}
diff --git a/tests/gtk-doc.notmpl.make b/tests/gtk-doc.notmpl.make
index e247da9..026cb51 100644
--- a/tests/gtk-doc.notmpl.make
+++ b/tests/gtk-doc.notmpl.make
@@ -127,7 +127,7 @@ $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)
#### xml ####
-sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files)
+sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent
@ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \
echo " DOC `$(DATE_FMT_CMD)$$tsd`: Building XML"
@_source_dir='' ; \
@@ -142,6 +142,17 @@ sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DO
sgml.stamp: sgml-build.stamp
@true
+xml/gtkdocentities.ent: Makefile
+ $(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \
+ echo "<!ENTITY package \"$(PACKAGE)\">"; \
+ echo "<!ENTITY package_bugreport \"$(PACKAGE_BUGREPORT)\">"; \
+ echo "<!ENTITY package_name \"$(PACKAGE_NAME)\">"; \
+ echo "<!ENTITY package_string \"$(PACKAGE_STRING)\">"; \
+ echo "<!ENTITY package_tarname \"$(PACKAGE_TARNAME)\">"; \
+ echo "<!ENTITY package_url \"$(PACKAGE_URL)\">"; \
+ echo "<!ENTITY package_version \"$(PACKAGE_VERSION)\">"; \
+ ) > $@
+
#### html ####
html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)