gtk-doc: get rid of templates
authorTim-Philipp Müller <tim@centricular.com>
Fri, 20 Apr 2018 11:34:17 +0000 (12:34 +0100)
committerTim-Philipp Müller <tim@centricular.com>
Wed, 25 Apr 2018 23:14:37 +0000 (00:14 +0100)
gtkdoc-mktmpl was removed in recent gtk-doc versions.

Update gtk-doc.make to 1.27, but modify to generate
xml/version.entities (i.e. add copy in right dir).

All a bit cargo-culted, but seems to work.

configure.ac
doc/Makefile.am
gtk-doc.make

index c32970d..b630d5c 100644 (file)
@@ -51,7 +51,7 @@ AC_CHECK_FUNCS([posix_memalign])
 if test "x$cross_compiling" = "xyes" ; then
   enable_gtk_doc=no
 fi
-GTK_DOC_CHECK([1.12])
+GTK_DOC_CHECK([1.12], [--flavour no-tmpl])
 
 AS_HOST_DEFINES()
 
index c12b373..da3fc9a 100644 (file)
@@ -37,10 +37,6 @@ SCAN_OPTIONS=
 # e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml
 MKDB_OPTIONS=--sgml-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=
 
index 6d73d0c..0ae1802 100644 (file)
@@ -1,4 +1,22 @@
 # -*- mode: makefile -*-
+#
+# gtk-doc.make - make rules for gtk-doc
+# Copyright (C) 2003 James Henstridge
+#               2004-2007 Damon Chaplin
+#               2007-2017 Stefan Sauer
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ####################################
 # Everything below here is generic #
@@ -25,6 +43,7 @@ TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
 
 SETUP_FILES = \
        $(content_files)                \
+       $(expand_content_files)         \
        $(DOC_MAIN_SGML_FILE)           \
        $(DOC_MODULE)-sections.txt      \
        $(DOC_MODULE)-overrides.txt
@@ -33,9 +52,9 @@ EXTRA_DIST =                          \
        $(HTML_IMAGES)                  \
        $(SETUP_FILES)
 
-DOC_STAMPS=setup-build.stamp scan-build.stamp tmpl-build.stamp sgml-build.stamp \
+DOC_STAMPS=setup-build.stamp scan-build.stamp sgml-build.stamp \
        html-build.stamp pdf-build.stamp \
-       tmpl.stamp sgml.stamp html.stamp pdf.stamp
+       sgml.stamp html.stamp pdf.stamp
 
 SCANOBJ_FILES =                 \
        $(DOC_MODULE).args       \
@@ -80,149 +99,141 @@ $(REPORT_FILES): sgml-build.stamp
 
 #### setup ####
 
-GTK_DOC_V_SETUP=$(GTK_DOC_V_SETUP_$(V))
-GTK_DOC_V_SETUP_=$(GTK_DOC_V_SETUP_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_SETUP=$(GTK_DOC_V_SETUP_@AM_V@)
+GTK_DOC_V_SETUP_=$(GTK_DOC_V_SETUP_@AM_DEFAULT_V@)
 GTK_DOC_V_SETUP_0=@echo "  DOC   Preparing build";
 
 setup-build.stamp:
        -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
-           files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \
-           if test "x$$files" != "x" ; then \
-               for file in $$files ; do \
-                   destdir=`dirname $(abs_builddir)/$$file` ;\
-                   test -d "$$destdir" || mkdir -p "$$destdir"; \
-                   test -f $(abs_srcdir)/$$file && \
-                       cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \
-               done; \
-           fi; \
-           test -d $(abs_srcdir)/tmpl && \
-               { cp -pR $(abs_srcdir)/tmpl $(abs_builddir)/; \
-               chmod -R u+w $(abs_builddir)/tmpl; } \
+         files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \
+         if test "x$$files" != "x" ; then \
+           for file in $$files ; do \
+             destdir=`dirname $(abs_builddir)/$$file`; \
+             test -d "$$destdir" || mkdir -p "$$destdir"; \
+             test -f $(abs_srcdir)/$$file && \
+               cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \
+           done; \
+         fi; \
        fi
        $(AM_V_at)touch setup-build.stamp
 
 #### scan ####
 
-GTK_DOC_V_SCAN=$(GTK_DOC_V_SCAN_$(V))
-GTK_DOC_V_SCAN_=$(GTK_DOC_V_SCAN_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_SCAN=$(GTK_DOC_V_SCAN_@AM_V@)
+GTK_DOC_V_SCAN_=$(GTK_DOC_V_SCAN_@AM_DEFAULT_V@)
 GTK_DOC_V_SCAN_0=@echo "  DOC   Scanning header files";
 
-GTK_DOC_V_INTROSPECT=$(GTK_DOC_V_INTROSPECT_$(V))
-GTK_DOC_V_INTROSPECT_=$(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_INTROSPECT=$(GTK_DOC_V_INTROSPECT_@AM_V@)
+GTK_DOC_V_INTROSPECT_=$(GTK_DOC_V_INTROSPECT_@AM_DEFAULT_V@)
 GTK_DOC_V_INTROSPECT_0=@echo "  DOC   Introspecting gobjects";
 
 scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB)
        $(GTK_DOC_V_SCAN)_source_dir='' ; \
        for i in $(DOC_SOURCE_DIR) ; do \
-           _source_dir="$${_source_dir} --source-dir=$$i" ; \
+         _source_dir="$${_source_dir} --source-dir=$$i" ; \
        done ; \
        gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)
        $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
-           scanobj_options=""; \
-           gtkdoc-scangobj 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
-           if test "$(?)" = "0"; then \
-               if test "x$(V)" = "x1"; then \
-                   scanobj_options="--verbose"; \
-               fi; \
+         scanobj_options=""; \
+         gtkdoc-scangobj 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
+         if test "$$?" = "0"; then \
+           if test "x$(V)" = "x1"; then \
+             scanobj_options="--verbose"; \
            fi; \
-           CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \
-           gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \
+         fi; \
+         CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \
+         gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \
        else \
-           for i in $(SCANOBJ_FILES) ; do \
-               test -f $$i || touch $$i ; \
-           done \
+         for i in $(SCANOBJ_FILES) ; do \
+           test -f $$i || touch $$i ; \
+         done \
        fi
        $(AM_V_at)touch scan-build.stamp
 
 $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp
        @true
 
-#### templates ####
-
-GTK_DOC_V_TMPL=$(GTK_DOC_V_TMPL_$(V))
-GTK_DOC_V_TMPL_=$(GTK_DOC_V_TMPL_$(AM_DEFAULT_VERBOSITY))
-GTK_DOC_V_TMPL_0=@echo "  DOC   Rebuilding template files";
-
-tmpl-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
-       $(GTK_DOC_V_TMPL)gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS)
-       $(AM_V_at)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
-         if test -w $(abs_srcdir) ; then \
-           cp -pR $(abs_builddir)/tmpl $(abs_srcdir)/; \
-         fi \
-       fi
-       $(AM_V_at)touch tmpl-build.stamp
-
-tmpl.stamp: tmpl-build.stamp
-       @true
-
-$(srcdir)/tmpl/*.sgml:
-       @true
-
 #### xml ####
 
-GTK_DOC_V_XML=$(GTK_DOC_V_XML_$(V))
-GTK_DOC_V_XML_=$(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_XML=$(GTK_DOC_V_XML_@AM_V@)
+GTK_DOC_V_XML_=$(GTK_DOC_V_XML_@AM_DEFAULT_V@)
 GTK_DOC_V_XML_0=@echo "  DOC   Building XML";
 
-sgml-build.stamp: tmpl.stamp $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files)
-       -$(GTK_DOC_V_XML)chmod -R u+w $(srcdir) && _source_dir='' ; \
+sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent xml/version.entities
+       $(GTK_DOC_V_XML)_source_dir='' ; \
        for i in $(DOC_SOURCE_DIR) ; do \
-           _source_dir="$${_source_dir} --source-dir=$$i" ; \
+         _source_dir="$${_source_dir} --source-dir=$$i" ; \
        done ; \
        gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS)
-       @cp version.entities $(abs_builddir)/xml/
        $(AM_V_at)touch sgml-build.stamp
 
 sgml.stamp: sgml-build.stamp
        @true
 
+$(DOC_MAIN_SGML_FILE): 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)\">"; \
+       ) > $@
+
+xml/version.entities: Makefile
+       $(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \
+               echo "<!ENTITY ORC_MAJORMINOR \"$(ORC_MAJORMINOR)\">"; \
+               echo "<!ENTITY ORC_VERSION \"$(PACKAGE_VERSION)\">"; \
+       ) > $@
+
 #### html ####
 
-GTK_DOC_V_HTML=$(GTK_DOC_V_HTML_$(V))
-GTK_DOC_V_HTML_=$(GTK_DOC_V_HTML_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_HTML=$(GTK_DOC_V_HTML_@AM_V@)
+GTK_DOC_V_HTML_=$(GTK_DOC_V_HTML_@AM_DEFAULT_V@)
 GTK_DOC_V_HTML_0=@echo "  DOC   Building HTML";
 
-GTK_DOC_V_XREF=$(GTK_DOC_V_XREF_$(V))
-GTK_DOC_V_XREF_=$(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_XREF=$(GTK_DOC_V_XREF_@AM_V@)
+GTK_DOC_V_XREF_=$(GTK_DOC_V_XREF_@AM_DEFAULT_V@)
 GTK_DOC_V_XREF_0=@echo "  DOC   Fixing cross-references";
 
-html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
+html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files)
        $(GTK_DOC_V_HTML)rm -rf html && mkdir html && \
        mkhtml_options=""; \
        gtkdoc-mkhtml 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
-       if test "$(?)" = "0"; then \
+       if test "$$?" = "0"; then \
          if test "x$(V)" = "x1"; then \
            mkhtml_options="$$mkhtml_options --verbose"; \
          fi; \
        fi; \
        gtkdoc-mkhtml 2>&1 --help | grep  >/dev/null "\-\-path"; \
-       if test "$(?)" = "0"; then \
+       if test "$$?" = "0"; then \
          mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \
        fi; \
        cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
        -@test "x$(HTML_IMAGES)" = "x" || \
        for file in $(HTML_IMAGES) ; do \
-         if test -f $(abs_srcdir)/$$file ; then \
-           cp $(abs_srcdir)/$$file $(abs_builddir)/html; \
-         fi; \
-         if test -f $(abs_builddir)/$$file ; then \
-           cp $(abs_builddir)/$$file $(abs_builddir)/html; \
-         fi; \
+         test -f $(abs_srcdir)/$$file && cp $(abs_srcdir)/$$file $(abs_builddir)/html; \
+         test -f $(abs_builddir)/$$file && cp $(abs_builddir)/$$file $(abs_builddir)/html; \
+         test -f $$file && cp $$file $(abs_builddir)/html; \
        done;
        $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
        $(AM_V_at)touch html-build.stamp
 
 #### pdf ####
 
-GTK_DOC_V_PDF=$(GTK_DOC_V_PDF_$(V))
-GTK_DOC_V_PDF_=$(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_PDF=$(GTK_DOC_V_PDF_@AM_V@)
+GTK_DOC_V_PDF_=$(GTK_DOC_V_PDF_@AM_DEFAULT_V@)
 GTK_DOC_V_PDF_0=@echo "  DOC   Building PDF";
 
-pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
+pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files)
        $(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \
        mkpdf_options=""; \
        gtkdoc-mkpdf 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
-       if test "$(?)" = "0"; then \
+       if test "$$?" = "0"; then \
          if test "x$(V)" = "x1"; then \
            mkpdf_options="$$mkpdf_options --verbose"; \
          fi; \
@@ -247,13 +258,15 @@ clean-local:
        @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \
          rm -f $(DOC_MODULE).types; \
        fi
+       @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-sections" ; then \
+         rm -f $(DOC_MODULE)-sections.txt; \
+       fi
 
 distclean-local:
        @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \
            $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
        @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
-           rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \
-           rm -rf tmpl; \
+           rm -f $(SETUP_FILES) $(DOC_MODULE).types; \
        fi
 
 maintainer-clean-local:
@@ -303,9 +316,7 @@ dist-check-gtkdoc:
 endif
 
 dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local
-       @mkdir $(distdir)/tmpl
        @mkdir $(distdir)/html
-       @-cp ./tmpl/*.sgml $(distdir)/tmpl
        @cp ./html/* $(distdir)/html
        @-cp ./$(DOC_MODULE).pdf $(distdir)/
        @-cp ./$(DOC_MODULE).types $(distdir)/