LWN.net Logo

LCA: Disintermediating distributions

LCA: Disintermediating distributions

Posted Feb 7, 2008 0:15 UTC (Thu) by stevenj (subscriber, #421)
In reply to: LCA: Disintermediating distributions by DonDiego
Parent article: LCA: Disintermediating distributions

Try using raw 'make' in a project with subdirectories sometime.

Another obstacle is that 'make' relies on 'sh' (a fairly primitive language) if you want to do anything nontrivial, and portable shell programming requires extreme care. (This is also a source of unfortunate complexity in autoconf and automake, but they provide tools to lessen your dependence on sh, at least.)


(Log in to post comments)

LCA: Disintermediating distributions

Posted Feb 7, 2008 4:39 UTC (Thu) by roelofs (subscriber, #2599) [Link]

Try using raw 'make' in a project with subdirectories sometime.

Have:

        $(MAKE) -C subdir
or
        cd subdir && $(MAKE)

I believe even MS nmake circa 1990 supported that much, and it's not even close to a standard make. Every Unix make I've used (couple dozen) was better than that.

But it has been quite a few years since I messed with any of this stuff, so craniorectal impaction is always a possibility.

Greg

LCA: Disintermediating distributions

Posted Feb 7, 2008 10:05 UTC (Thu) by epa (subscriber, #39769) [Link]

Have a look at the article linked from the parent post.  Calling one 'make' from another
makefile tends to lead to all sorts of crufty problems.  The paper gives examples, and my own
experience certainly confirms it.  That said, you can use make in a large project, just not by
recursive invocation.

LCA: Disintermediating distributions

Posted Feb 7, 2008 11:52 UTC (Thu) by cortana (subscriber, #24596) [Link]

> Try using raw 'make' in a project with subdirectories sometime. 

Then you have already failed. Why on earth would anyone want to call make recursively? The
only reason I have ever heard is "because I don't understand what I'm doing, and I cargo
culted my build system from someone else, who also did not understand what he was doing".

Copyright © 2008, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds
Powered by Rackspace Managed Hosting.