From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mathieu Lirzin Subject: bug#29727: changing contributing.texi does not trigger rebuild of =?UTF-8?Q?=E2=80=9Cinfo=E2=80=9D?= target Date: Wed, 17 Jan 2018 13:20:08 +0100 Message-ID: <873734k77r.fsf@gnu.org> References: <87r2rvoabu.fsf@elephly.net> <87a7xfdxas.fsf@gnu.org> <876081gcxe.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:42729) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ebmiG-00077s-Fn for bug-guix@gnu.org; Wed, 17 Jan 2018 07:21:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ebmiF-00009J-7u for bug-guix@gnu.org; Wed, 17 Jan 2018 07:21:04 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:51612) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ebmiF-00009C-3P for bug-guix@gnu.org; Wed, 17 Jan 2018 07:21:03 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1ebmiE-0005vY-R1 for bug-guix@gnu.org; Wed, 17 Jan 2018 07:21:02 -0500 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <876081gcxe.fsf@gmail.com> (Chris Marusich's message of "Tue, 16 Jan 2018 23:30:21 -0800") List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: "bug-Guix" To: Chris Marusich Cc: 29727@debbugs.gnu.org Hello, Chris Marusich writes: > Mathieu Lirzin writes: > >> info_TEXINFOS =3D %D%/guix.texi >>=20=20 >> +%C%_guix_TEXINFOS =3D \ >> + %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 =E2=80=98doc_foo_TEXINFOS=E2=80=99 declares the dependencie= s of =E2=80=98doc/foo.texi=E2=80=99 which must be declared in the special =E2=80= =98info_TEXINFOS=E2=80=99 variable to be built with =E2=80=98makeinfo=E2=80=99. The transformation f= rom =E2=80=98doc/foo_XXX=E2=80=99 to =E2=80=98doc_foo_XXX=E2=80=99 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 =E2=80=9CMakefile.am=E2=80=9D. - %C% is a shorthand for %canon_reldir% which is the canonalization of %reldir% [3]. HTH, [1] https://www.gnu.org/software/automake/manual/html_node/Canonicalization= .html [1] https://ator1699.home.xs4all.nl/Work/GBS/Doc_and_download/2_RecursiveMa= keConsideredHarmful.pdf [2] https://www.gnu.org/software/automake/manual/html_node/Include.html for --=20 Mathieu Lirzin GPG: F2A3 8D7E EB2B 6640 5761 070D 0ADE E100 9460 4D37