From 40f4b5dd504842e5646555aa865cadc06bcc0165 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sat, 18 Dec 2021 18:26:46 -0800 Subject: doc: %reldir% and %canon_reldir% do not expand to the empty string. This change fixes https://bugs.gnu.org/52500. * doc/automake.texi (Include): correct wrong text. (Along the way, correct plain-text "Makefile" to "@file{Makefile}".) --- doc/automake.texi | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/doc/automake.texi b/doc/automake.texi index 47f49a49b..55fc3f72e 100644 --- a/doc/automake.texi +++ b/doc/automake.texi @@ -1840,7 +1840,7 @@ variable definitions. @cindex Automake parser, limitations of @cindex indentation in Makefile.am Generally, Automake is not particularly smart in the parsing of unusual -Makefile constructs, so you're advised to avoid fancy constructs or +@file{Makefile} constructs, so you're advised to avoid fancy constructs or ``creative'' use of whitespace. @c Keep this in sync with doc-parsing-buglets-tabs.sh For example, @key{TAB} characters cannot be used between a target name @@ -1971,7 +1971,7 @@ of the GNU standards. Future versions of Automake may, at this level of strictness, require certain non-standard GNU tools to be available to maintainer-only -Makefile rules. For instance, in the future @command{pathchk} +@file{Makefile} rules. For instance, in the future @command{pathchk} (@pxref{pathchk invocation,,, coreutils, GNU Coreutils}) may be required to run @samp{make dist}. @@ -5459,7 +5459,7 @@ Convenience libraries listed in @code{noinst_LTLIBRARIES} are always built. Those listed in @code{check_LTLIBRARIES} are built only upon @samp{make check}. Finally, libraries listed in @code{EXTRA_LTLIBRARIES} are never built explicitly: Automake outputs -rules to build them, but if the library does not appear as a Makefile +rules to build them, but if the library does not appear as a @file{Makefile} dependency anywhere it won't be built (this is why @code{EXTRA_LTLIBRARIES} is used for conditional compilation). @@ -10900,7 +10900,7 @@ Include a fragment that is found relative to the top source directory. Note that if a fragment is included inside a conditional, then the condition applies to the entire contents of that fragment. -Makefile fragments included this way are always distributed because +@file{Makefile} fragments included this way are always distributed because they are needed to rebuild @file{Makefile.in}. Inside a fragment, the construct @code{%reldir%} is replaced with the @@ -10911,12 +10911,20 @@ Similarly, @code{%canon_reldir%} is replaced with the canonicalized is a synonym for @code{%canon_reldir%}. A special feature is that if the fragment is in the same directory as -the base @file{Makefile.am} (i.e., @code{%reldir%} is @code{.}), then -@code{%reldir%} and @code{%canon_reldir%} will expand to the empty -string as well as eat, if present, a following slash or underscore -respectively. +the base @file{Makefile.am} (i.e., @code{%reldir%} is @code{.}), then: + +@table @code +@item %reldir% +together with a following slash expands to the empty string, otherwise +it expands to a dot; + +@item %canon_reldir% +together with a following underscore expands to the empty string, otherwise +it expands to an underscore. + +@end table -Thus, a makefile fragment might look like this: +Thus, a @file{Makefile} fragment might look like this: @example bin_PROGRAMS += %reldir%/mumble @@ -11711,7 +11719,7 @@ The necessary substitutions: @samp{@@srcdir@@}, @samp{@@top_srcdir@@}, and @samp{@@top_builddir@@} are defined by @file{configure} when it processes a @file{Makefile} (@pxref{Preset Output Variables, , Preset Output Variables, autoconf, The Autoconf Manual}); they are not -computed by the Makefile like the aforementioned @samp{$(distdir)} and +computed by the @file{Makefile} like the aforementioned @samp{$(distdir)} and @samp{$(top_distdir)} variables. It is sometimes inconvenient to modify a third-party @file{Makefile} -- cgit v1.2.1