[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#29727: changing contributing.texi does not trigger rebuild of “info”

From: Mathieu Lirzin
Subject: bug#29727: changing contributing.texi does not trigger rebuild of “info” target
Date: Wed, 17 Jan 2018 13:20:08 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)


Chris Marusich <address@hidden> writes:

> Mathieu Lirzin <address@hidden> writes:
>>  info_TEXINFOS = %D%/guix.texi
>> +%C%_guix_TEXINFOS = \
>> +  %D%/contributing.texi \
>> +  %D%/fdl-1.3.texi
> Why is the %C% required here?  What does it do?  I read (automake)
> Texinfo, so I understand that this is probably a way to tell Automake
> that guix.texi depends on contributing.texi and fdl-1.3.texi, but I
> don't understand why %C% is present in the variable name here.

Indeed this is can be hard to grasp.

A variable like ‘doc_foo_TEXINFOS’ declares the dependencies of
‘doc/foo.texi’ which must be declared in the special ‘info_TEXINFOS’
variable to be built with ‘makeinfo’.  The transformation from
‘doc/foo_XXX’ to ‘doc_foo_XXX’ is required because only letters and
underscores can be used for Make variables indentifier.  This
transformation is called canonalization [1].

Guix uses the inclusion of Makefile snippets instead of recursive Makefiles
which are evil [2]. %D% and %C% are used to avoid having to be explicit
about the current directory where the Makefile snippet is located.

- %D% is a shorthand for %reldir% which is substituted with the dirname
  relative to the top level “Makefile.am”.

- %C% is a shorthand for %canon_reldir% which is the canonalization of
  %reldir% [3].


[1] https://www.gnu.org/software/automake/manual/html_node/Canonicalization.html
[2] https://www.gnu.org/software/automake/manual/html_node/Include.html for

Mathieu Lirzin
GPG: F2A3 8D7E EB2B 6640 5761  070D 0ADE E100 9460 4D37

reply via email to

[Prev in Thread] Current Thread [Next in Thread]