From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: Recursive makefiles Date: Thu, 29 Aug 2013 00:21:47 +0200 Message-ID: <87eh9d5udg.fsf@gnu.org> References: <87vc2p7ca3.fsf@gnu.org> <20130828214126.GA26655@debian> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:54690) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VEoCW-0004hw-7j for guix-devel@gnu.org; Wed, 28 Aug 2013 18:27:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VEoCQ-00077A-52 for guix-devel@gnu.org; Wed, 28 Aug 2013 18:26:56 -0400 Received: from hera.aquilenet.fr ([141.255.128.1]:51742) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VEoCP-000775-US for guix-devel@gnu.org; Wed, 28 Aug 2013 18:26:50 -0400 In-Reply-To: <20130828214126.GA26655@debian> (Andreas Enge's message of "Wed, 28 Aug 2013 23:41:26 +0200") List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Andreas Enge Cc: guix-devel@gnu.org --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Andreas Enge skribis: > On Wed, Aug 28, 2013 at 11:09:40PM +0200, Ludovic Court=C3=A8s wrote: >> Please don=E2=80=99t do that: the build system purposefully avoids recur= sive >> makefiles, to improve parallelism etc. (see >> .) > > I did it for two reasons: > - It allows to type "make ps" and "make pdf" in the main directory, > instead of "cd doc; make pdf; cd ..". Hmm, there was no Makefile in doc/, so how could =E2=80=9Ccd doc; make pdf= =E2=80=9D work? > - It avoids clutter in the main directory (not checked this time, but I > think there were a few files guix.* then). I just tried =E2=80=9Cmake pdf=E2=80=9D from 3d1b29a, and, surprise: it doe= sn=E2=80=99t do anything. :-) Turns out that the =E2=80=9Cdoc/guix.pdf:=E2=80=9D line in Makefile.am anni= hilated the built-in rule. This is =E2=80=9Cfixed=E2=80=9D with: --=-=-= Content-Type: text/x-patch Content-Disposition: inline diff --git a/Makefile.am b/Makefile.am index 6eb4c0f..710f708 100644 --- a/Makefile.am +++ b/Makefile.am @@ -210,9 +210,9 @@ DOT_OPTIONS = \ dot -Teps $(DOT_OPTIONS) < "$<" > "$@.tmp" mv "$@.tmp" "$@" -doc/guix.pdf: doc/images/bootstrap-graph.png -doc/guix.info: doc/images/bootstrap-graph.png -doc/guix.ps: doc/images/bootstrap-graph.eps +# doc/guix.pdf: doc/images/bootstrap-graph.png +# doc/guix.info: doc/images/bootstrap-graph.png +# doc/guix.ps: doc/images/bootstrap-graph.eps if BUILD_DAEMON --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable With that, =E2=80=9Cmake pdf=E2=80=9D at the top level creates doc/guix.pdf= , and leaves no intermediate files at all at the top level. Is it an acceptable solution for you (provided the bug above is fixed nicely)? If so, I=E2=80=99ll prepare a patch. I feel quite strongly about avoid recursive Makefiles, so I=E2=80=99d prefe= r to fix any bugs in the current build system. Thanks, Ludo=E2=80=99. --=-=-=--