GNOME Bugzilla – Bug 507336
automake-1.10 reveals a lot of non POSIX stuff in gnome-doc-utils.make
Last modified: 2020-03-03 18:36:39 UTC
Building GNOME modules in jhbuild I've those warning messages while running automake (automake-1.10) in autogen phase. gnome-doc-utils.make:74: if $(DOC_H_FILE: non-POSIX variable name gnome-doc-utils.make:74: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:77: if $(DOC_H_FILE: non-POSIX variable name gnome-doc-utils.make:77: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:110: if $(DOC_USER_FORMATS: non-POSIX variable name gnome-doc-utils.make:110: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:115: if $(filter environment,$(origin LINGUAS: non-POSIX variable name gnome-doc-utils.make:115: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:115: filter $(LINGUAS: non-POSIX variable name gnome-doc-utils.make:115: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:144: shell xmllint --format $(2: non-POSIX variable name gnome-doc-utils.make:144: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:144: notdir $(patsubst %/$(notdir $(2: non-POSIX variable name gnome-doc-utils.make:144: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:144: if $(_ENABLE_SK: non-POSIX variable name gnome-doc-utils.make:144: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:160: if $(DOC_MODULE: non-POSIX variable name gnome-doc-utils.make:160: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:160: wildcard $(_DOC_ABS_SRCDIR: non-POSIX variable name gnome-doc-utils.make:160: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:164: if $(_DOC_OMF_IN: non-POSIX variable name gnome-doc-utils.make:164: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:164: foreach lc,C $(_DOC_REAL_LINGUAS: non-POSIX variable name gnome-doc-utils.make:164: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:173: call db2omf_args,$@,$<,'docbook': non-POSIX variable name gnome-doc-utils.make:173: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:177: if $(_DOC_OMF_IN: non-POSIX variable name gnome-doc-utils.make:177: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:177: foreach lc,C $(_DOC_REAL_LINGUAS: non-POSIX variable name gnome-doc-utils.make:177: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:188: call db2omf_args,$@,$<,'xhtml': non-POSIX variable name gnome-doc-utils.make:188: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:193: if $(filter docbook,$(_DOC_REAL_FORMATS: non-POSIX variable name gnome-doc-utils.make:193: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:193: if $(filter html HTML,$(_DOC_REAL_FORMATS: non-POSIX variable name gnome-doc-utils.make:193: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:206: if $(DOC_MODULE: non-POSIX variable name gnome-doc-utils.make:206: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:210: foreach ent,$(DOC_ENTITIES: non-POSIX variable name gnome-doc-utils.make:210: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:214: foreach inc,$(DOC_INCLUDES: non-POSIX variable name gnome-doc-utils.make:214: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:230: if $(DOC_FIGURES: non-POSIX variable name gnome-doc-utils.make:230: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:230: foreach fig,$(DOC_FIGURES: non-POSIX variable name gnome-doc-utils.make:230: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:230: patsubst $(srcdir: non-POSIX variable name gnome-doc-utils.make:230: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:230: wildcard $(srcdir: non-POSIX variable name gnome-doc-utils.make:230: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:237: foreach f, \ gnome-doc-utils.make:237: $(shell xsltproc --xinclude \ gnome-doc-utils.make:237: --stringparam db.chunk.basename "$(DOC_MODULE: non-POSIX variable name gnome-doc-utils.make:237: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:248: if $(DOC_MODULE: non-POSIX variable name gnome-doc-utils.make:248: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:248: foreach lc,$(_DOC_REAL_LINGUAS: non-POSIX variable name gnome-doc-utils.make:248: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:256: if $(DOC_MODULE: non-POSIX variable name gnome-doc-utils.make:256: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:256: foreach lc,$(_DOC_REAL_LINGUAS: non-POSIX variable name gnome-doc-utils.make:256: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:261: foreach lc,$(_DOC_REAL_LINGUAS: non-POSIX variable name gnome-doc-utils.make:261: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:261: foreach inc,$(_DOC_C_INCLUDES: non-POSIX variable name gnome-doc-utils.make:261: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:261: notdir $(inc: non-POSIX variable name gnome-doc-utils.make:261: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:268: foreach lc,$(_DOC_REAL_LINGUAS: non-POSIX variable name gnome-doc-utils.make:268: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:268: foreach doc,$(_DOC_C_HTML: non-POSIX variable name gnome-doc-utils.make:268: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:268: notdir $(doc: non-POSIX variable name gnome-doc-utils.make:268: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:274: if $(filter html HTML,$(_DOC_REAL_FORMATS: non-POSIX variable name gnome-doc-utils.make:274: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:280: foreach lc,$(_DOC_REAL_LINGUAS: non-POSIX variable name gnome-doc-utils.make:280: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:280: patsubst C/%,$(lc: non-POSIX variable name gnome-doc-utils.make:280: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:283: foreach fig,$(_DOC_C_FIGURES: non-POSIX variable name gnome-doc-utils.make:283: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:283: foreach lc,C $(_DOC_REAL_LINGUAS: non-POSIX variable name gnome-doc-utils.make:283: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:283: wildcard $(srcdir: non-POSIX variable name gnome-doc-utils.make:283: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:283: patsubst C/%,%,$(fig: non-POSIX variable name gnome-doc-utils.make:283: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:288: dir $@: non-POSIX variable name gnome-doc-utils.make:288: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:318: dir $@: non-POSIX variable name gnome-doc-utils.make:318: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:319: notdir $@: non-POSIX variable name gnome-doc-utils.make:319: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:328: if $(DOC_MODULE: non-POSIX variable name gnome-doc-utils.make:328: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:340: if $(filter html HTML,$(_DOC_REAL_FORMATS: non-POSIX variable name gnome-doc-utils.make:340: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:343: foreach lc,C $(_DOC_REAL_LINGUAS: non-POSIX variable name gnome-doc-utils.make:343: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:346: patsubst %.xhtml,%.xml,$@: non-POSIX variable name gnome-doc-utils.make:346: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:385: if $(_DOC_OMF_IN: non-POSIX variable name gnome-doc-utils.make:385: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:386: if $(_DOC_DSK_IN: non-POSIX variable name gnome-doc-utils.make:386: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:387: if $(_DOC_REAL_LINGUAS: non-POSIX variable name gnome-doc-utils.make:387: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:388: if $(DOC_MODULE: non-POSIX variable name gnome-doc-utils.make:388: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here gnome-doc-utils.make:505: patsubst C/%,%,$(_DOC_C_FIGURES: non-POSIX variable name gnome-doc-utils.make:505: (probably a GNU make extension) help/Makefile.am:1: `gnome-doc-utils.make' included from here
Now quite visible in GNOME2.24 releases. Apparently during the automake1.9.x series, this warning got lost for a while, so g-d-u probably wasn't too noisy in the past. But now automake1.10 is standard, so this set of warnings is seen. And it's *always* been true, even if the warning about it wasn't displayed.
Is there any progress on this? What can be done expect for disabling strict error checking in automake, which I consider a horrible idea.
Some of these can probably be solved by converting a makefile conditional or loop in the dependency into a shell conditional or loop in the recipe block. Examples: Here, dist-doc-header is a dependency only if DOC_H_FILE is nonblank: >dist-doc-header: $(DOC_H_FILE) > @if test -f "$(DOC_H_FILE)"; then d=; else d="$(srcdir)/"; fi; \ > echo "$(INSTALL_DATA) $${d}$(DOC_H_FILE) $(distdir)/$(DOC_H_FILE)"; \ > $(INSTALL_DATA) "$${d}$(DOC_H_FILE)" "$(distdir)/$(DOC_H_FILE)"; > >doc-dist-hook: dist-check-gdu $(if $(DOC_H_FILE),dist-doc-header) whereas here (NB: untested!): >dist-doc-header: $(DOC_H_FILE) > @if test -n "$(DOC_H_FILE)"; then \ > if test -f "$(DOC_H_FILE)"; then d=; else d="$(srcdir)/"; fi; \ > echo "$(INSTALL_DATA) $${d}$(DOC_H_FILE) $(distdir)/$(DOC_H_FILE)"; \ > $(INSTALL_DATA) "$${d}$(DOC_H_FILE)" "$(distdir)/$(DOC_H_FILE)"; \ > fi > >doc-dist-hook: dist-check-gdu dist-doc-header there is no GNU-Makefile-ism. The only regression is if DOC_H_FILE contains nothing but whitespace, but I'd presume setting a variable to spaces with the intent of meaning it to be blank is uncommon. I think the $(if...) construct strips whitespace first, so it checks for "any non-whitespace character" whereas "test -n" checks for "any character at all". The same solution could be applied here: >_clean_doc_header = $(if $(DOC_H_FILE),clean-doc-header) >clean-local: $(_clean_doc_header) >distclean-local: $(_clean_doc_header) >mostlyclean-local: $(_clean_doc_header) >maintainer-clean-local: $(_clean_doc_header) >clean-doc-header: > rm -f $(DOC_H_FILE) as something like: >_clean_doc_header = clean-doc-header >clean-local: $(_clean_doc_header) >distclean-local: $(_clean_doc_header) >mostlyclean-local: $(_clean_doc_header) >maintainer-clean-local: $(_clean_doc_header) >clean-doc-header: > @if test -n $(DOC_H_FILE); then \ > echo "rm -f $(DOC_H_FILE)"; \ > rm -f $(DOC_H_FILE); \ > fi
And what about the definition of _DOC_C_HTML, or any of the other variables that are defined with $(foreach ...)?
http://mail.gnome.org/archives/desktop-devel-list/2009-February/msg00111.html
gnome-doc-utils has been superseded by yelp-xsl, yelp-tools, and itstool. gnome-doc-utils will not see any further development, hence closing as WONTFIX. See https://gitlab.gnome.org/Infrastructure/Infrastructure/issues/255