From: Jonathan Nieder <jrnieder@gmail.com>
To: Jeff King <peff@peff.net>
Cc: Junio C Hamano <gitster@pobox.com>,
Nguyen Thai Ngoc Duy <pclouds@gmail.com>,
git@vger.kernel.org, Nicolas Pitre <nico@fluxnic.net>,
Sverre Rabbelier <srabbelier@gmail.com>
Subject: Recursive make and variations on the theme
Date: Wed, 23 Feb 2011 03:56:50 -0600 [thread overview]
Message-ID: <20110223095650.GE30485@elie> (raw)
In-Reply-To: <20110223084329.GA10738@sigill.intra.peff.net>
Jeff King wrote:
> The problem is that no single make was
> allowed to see the whole dependency tree.
>
> I know GNU make does have some magic for communicating between recursive
> makes. Does it handle this situation?
>
> You can fix this with a rule like "only invoke recursive makes on
> directories _below_ you, never above or to the side". But then you can't
> run "make" from inside cmds/.
In that story, commands/Makefile would make commands/built-in.a and
various commands/foo.o. The toplevel makefile would pass "make -C
commands" a long list of targets to build, presumably deduced from
$(MAKECMDGOALS). Not pleasant, I agree.
>> - keep careful track of what directory "make" was run from; [*]
>> [...]
>> [*] is a little hazy and sounds hackish.
>
> Yeah, you have to be careful with paths.
It could be pretty simple by maintaining a $(prefix_) variable
representing the path from the cwd to the directory containing the
makefile. Might try it out.
> I think a more sane way would
> be a single top-level Makefile that [...] contains everything
That sounds best to me in the short term, too.
> A dummy Makefile in each subdir that cd's to the toplevel and runs a
> specific target. So from the top-level, "make" would build everything,
> "make lib" would build stuff in the lib directory, and the Makefile in
> lib/ would just do "cd .. && make lib".
Yes, reasonable.
Ciao,
Jonathan
next prev parent reply other threads:[~2011-02-23 9:58 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-09 15:14 [PATCH/RFC] Move test-*.c to test/ subdirectory Nguyễn Thái Ngọc Duy
2011-02-09 15:23 ` Nguyen Thai Ngoc Duy
2011-02-09 22:15 ` Junio C Hamano
2011-02-10 2:14 ` [PATCH] Move test-* to t/helper/ subdirectory Nguyễn Thái Ngọc Duy
2011-02-18 2:27 ` [RFC/PATCH 0/3] Thinning the git toplevel directory Jonathan Nieder
2011-02-18 2:31 ` [PATCH 1/3] Move libgit.a sources into a libgit/ subdirectory Jonathan Nieder
2011-02-18 3:47 ` Nguyen Thai Ngoc Duy
2011-02-18 4:14 ` Jonathan Nieder
2011-02-18 4:18 ` Jeff King
2011-02-18 5:58 ` Jonathan Nieder
2011-02-18 4:31 ` Nguyen Thai Ngoc Duy
2011-02-18 2:33 ` [PATCH 2/3] Move test-* into a test-programs/ subdirectory Jonathan Nieder
2011-02-18 2:37 ` [PATCH 3/3] Move header files into a include/ subdirectory Jonathan Nieder
2011-02-18 3:52 ` Nguyen Thai Ngoc Duy
2011-02-18 4:29 ` [RFC/PATCH 4 to 6/3] Move remaining " Jonathan Nieder
2011-02-18 4:32 ` [PATCH 4/3] compat: do not use relative paths to refer to git-compat-util.h et al Jonathan Nieder
2011-02-18 4:34 ` [PATCH 5/3] block-sha1: do not use relative path for git-compat-util.h Jonathan Nieder
2011-02-18 4:35 ` [PATCH 6/3] Move git-compat-util.h, strbuf.h, and cache.h to include/ Jonathan Nieder
2011-02-18 3:56 ` [RFC/PATCH 0/3] Thinning the git toplevel directory Nguyen Thai Ngoc Duy
2011-02-18 4:51 ` [RFC/PATCH 7 - 9/3] " Jonathan Nieder
2011-02-18 4:52 ` [PATCH 7/3] Move test-sha1.sh to test-programs/ Jonathan Nieder
2011-02-18 4:55 ` [PATCH 8/3] Move build helpers to scripts/ subdirectory Jonathan Nieder
2011-02-18 5:04 ` [PATCH 9/3] Move non-builtin git commands and script libraries to a subdirectory Jonathan Nieder
2011-02-18 9:25 ` [RFC/PATCH 0/3] Thinning the git toplevel directory Jonathan Nieder
2011-02-18 11:08 ` Jeff King
2011-02-18 12:33 ` Jonathan Nieder
2011-02-18 12:33 ` Nguyen Thai Ngoc Duy
2011-02-18 18:55 ` Junio C Hamano
2011-02-19 11:11 ` Jonathan Nieder
2011-02-19 23:05 ` Sverre Rabbelier
2011-02-19 23:15 ` The git_remote_helpers package (Re: [RFC/PATCH 0/3] Thinning the git toplevel directory) Jonathan Nieder
2011-02-22 15:56 ` [RFC/PATCH 0/3] Thinning the git toplevel directory Jeff King
2011-02-22 19:30 ` Junio C Hamano
2011-02-22 19:32 ` Sverre Rabbelier
2011-02-23 4:51 ` Jeff King
2011-02-23 8:29 ` Jonathan Nieder
2011-02-23 8:43 ` Jeff King
2011-02-23 9:56 ` Jonathan Nieder [this message]
2011-02-23 16:42 ` Junio C Hamano
2011-02-23 17:18 ` Nicolas Pitre
2011-02-23 23:09 ` Drew Northup
2011-02-24 0:14 ` Nicolas Pitre
2011-02-24 17:10 ` Drew Northup
2011-02-24 18:04 ` Nicolas Pitre
2011-02-24 19:08 ` Jeff King
2011-02-24 19:46 ` Drew Northup
2011-02-19 0:10 ` Piotr Krukowiecki
2011-02-19 0:31 ` Junio C Hamano
2011-02-19 0:50 ` Jonathan Nieder
2011-02-19 9:27 ` Piotr Krukowiecki
2011-02-19 9:24 ` Piotr Krukowiecki
2011-02-19 9:41 ` Advertising the prebuilt htmldocs and manpages Jonathan Nieder
2011-02-20 6:52 ` Junio C Hamano
2011-02-20 9:40 ` Jonathan Nieder
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110223095650.GE30485@elie \
--to=jrnieder@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=nico@fluxnic.net \
--cc=pclouds@gmail.com \
--cc=peff@peff.net \
--cc=srabbelier@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.