libctf: workaround automake bug with conditional info pages
authorMike Frysinger <vapier@gentoo.org>
Fri, 3 Dec 2021 04:13:15 +0000 (23:13 -0500)
committerMike Frysinger <vapier@gentoo.org>
Fri, 3 Dec 2021 04:26:18 +0000 (23:26 -0500)
It looks like automake makes assumptions about its ability to build info
pages based on the GNU standard behavior of shipping info pages with the
distributions.  So even though the info pages were conditionalized, and
automake disabled some of the targets, it was still creeping in by way
of unconditional INFO_DEPS settings.

We can workaround this by adding a stub target for the info page when
building info pages are disabled.  This tricks automake into disabling
its own extended generation target.  I'll follow up with the automake
folks to see what they think.

libctf/Makefile.am
libctf/Makefile.in
libctf/doc/local.mk

index 3e51b7b30d0c97b8ac705f0ac6178e486c87f94c..8d31701855629e5d573160a658b03963dae05435 100644 (file)
@@ -114,6 +114,4 @@ EXTRA_DEJAGNU_SITE_CONFIG = development.exp
 DISTCLEANFILES += site.exp development.exp
 endif
 
-if BUILD_INFO
 include doc/local.mk
-endif
index 379f50df44b2dcadbd70d744e2e03d218eabc2f6..2b74bf2855ef153574e8ea98e0430226d0d7b6dd 100644 (file)
@@ -1023,24 +1023,24 @@ doc/$(am__dirstamp):
        @$(MKDIR_P) doc
        @: > doc/$(am__dirstamp)
 
-doc/ctf-spec.info: doc/ctf-spec.texi 
-       @test -f doc/$(am__dirstamp) || $(MAKE) $(AM_MAKEFLAGS) doc/$(am__dirstamp)
-       $(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \
-       rm -rf $$backupdir && mkdir $$backupdir && \
-       if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
-         for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
-           if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
-         done; \
-       else :; fi && \
-       if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I doc -I $(srcdir)/doc \
-        -o $@ `test -f 'doc/ctf-spec.texi' || echo '$(srcdir)/'`doc/ctf-spec.texi; \
-       then \
-         rc=0; \
-       else \
-         rc=$$?; \
-         $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
-       fi; \
-       rm -rf $$backupdir; exit $$rc
+@BUILD_INFO_TRUE@doc/ctf-spec.info: doc/ctf-spec.texi 
+@BUILD_INFO_TRUE@      @test -f doc/$(am__dirstamp) || $(MAKE) $(AM_MAKEFLAGS) doc/$(am__dirstamp)
+@BUILD_INFO_TRUE@      $(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \
+@BUILD_INFO_TRUE@      rm -rf $$backupdir && mkdir $$backupdir && \
+@BUILD_INFO_TRUE@      if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
+@BUILD_INFO_TRUE@        for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
+@BUILD_INFO_TRUE@          if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
+@BUILD_INFO_TRUE@        done; \
+@BUILD_INFO_TRUE@      else :; fi && \
+@BUILD_INFO_TRUE@      if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I doc -I $(srcdir)/doc \
+@BUILD_INFO_TRUE@       -o $@ `test -f 'doc/ctf-spec.texi' || echo '$(srcdir)/'`doc/ctf-spec.texi; \
+@BUILD_INFO_TRUE@      then \
+@BUILD_INFO_TRUE@        rc=0; \
+@BUILD_INFO_TRUE@      else \
+@BUILD_INFO_TRUE@        rc=$$?; \
+@BUILD_INFO_TRUE@        $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
+@BUILD_INFO_TRUE@      fi; \
+@BUILD_INFO_TRUE@      rm -rf $$backupdir; exit $$rc
 
 doc/ctf-spec.dvi: doc/ctf-spec.texi  doc/$(am__dirstamp)
        $(AM_V_TEXI2DVI)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
@@ -1709,6 +1709,10 @@ uninstall-am: uninstall-dvi-am uninstall-html-am \
 @BUILD_INFO_TRUE@      $(AM_V_GEN)$(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) \
 @BUILD_INFO_TRUE@        --split=node -I$(srcdir) --output doc/ctf-spec $(srcdir)/doc/ctf-spec.texi
 
+# Workaround bug in automake: it can't handle conditionally building info pages
+# since GNU projects normally include info pages in the source distributions.
+@BUILD_INFO_FALSE@doc/ctf-spec.info:
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
index 7ee2fec78cc77e1ec333d46f1924d2ebf4ff5dff..e533d72227d0ac8d29c87def75c6f7b6d5488fff 100644 (file)
@@ -17,6 +17,8 @@
 # <http://www.gnu.org/licenses/>.
 #
 
+if BUILD_INFO
+
 info_TEXINFOS += %D%/ctf-spec.texi
 libctf_TEXINFOS = $(info_TEXINFOS)
 
@@ -29,3 +31,11 @@ html-local: %D%/ctf-spec/index.html
 %D%/ctf-spec/index.html: %D%/ctf-spec.texi %D%/$(am__dirstamp)
        $(AM_V_GEN)$(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) \
          --split=node -I$(srcdir) --output %D%/ctf-spec $(srcdir)/%D%/ctf-spec.texi
+
+else
+
+# Workaround bug in automake: it can't handle conditionally building info pages
+# since GNU projects normally include info pages in the source distributions.
+%D%/ctf-spec.info:
+
+endif