LWN.net Logo

LCA: Disintermediating distributions

LCA: Disintermediating distributions

Posted Feb 7, 2008 0:17 UTC (Thu) by vmole (subscriber, #111)
In reply to: LCA: Disintermediating distributions by vapier
Parent article: LCA: Disintermediating distributions

"Don't write portable Makefiles, use a portable make." I don't remember the source of that quote, but I do know that trying to deal with each broken vendor version of make leads to nothing pain and tears before bedtime. If you're building software, just install gmake and be done with it.


(Log in to post comments)

LCA: Disintermediating distributions

Posted Feb 7, 2008 0:38 UTC (Thu) by nix (subscriber, #2304) [Link]

Well, I know Paul D. Smith (the GNU make author) has said that in the 
past, and I agree with him (for what very little it's worth).

LCA: Disintermediating distributions

Posted Feb 7, 2008 1:11 UTC (Thu) by stevenj (subscriber, #421) [Link]

Note that GNU make itself is built using automake, so it seems the GNU make developers have voted with their feet on this one.

LCA: Disintermediating distributions

Posted Feb 7, 2008 1:41 UTC (Thu) by stevenj (subscriber, #421) [Link]

(Although, to be fair, it's not like they could require GNU make to build.  =)

LCA: Disintermediating distributions

Posted Feb 7, 2008 7:05 UTC (Thu) by madscientist (subscriber, #16861) [Link]

Although GNU make does come with an automake environment, it also provides a shell script that
can be used to build make.  Obviously this will recompile and relink everything every time you
run it, but GNU make is not such a huge program that this is a problem.  And once you've got
it built once, you can use that make for subsequent builds.  Having this avoids the catch-22
of needing some make to build make.

That said, automake is awesome especially if you're developing highly portable tools, which
most of the GNU tools are.  For GNU make I don't so much care about the portability aspects,
although that's nice too (but the shell script above would be enough of an "out" for GNU make
itself).  The great thing about automake is all the default rules it provides, including
things like distcheck for building new packages, etc.  These rules save huge amounts of time
and effort for package developers/maintainers.

LCA: Disintermediating distributions

Posted Feb 15, 2008 11:51 UTC (Fri) by ekj (subscriber, #1524) [Link]

The catch-22 of needing a make-program to compile gnu make isn't that much of a problem
really.

You need a C compiler to compile GCC too. If you want it self-compiled you need to compile it
twice:

First use whatever C-compiler you happen to have lying around to compile GCC. 

Then use your fresh gcc to compile gcc. 

LCA: Disintermediating distributions

Posted Feb 15, 2008 22:00 UTC (Fri) by nix (subscriber, #2304) [Link]

With recent versions, thanks to the magic of top-level bootstrap, `make' 
should give you a compiler and libraries byte-for-byte identical to what 
you'd have got if you did the recompile-it dance. (Older versions wouldn't 
have recompiled libiberty with the new compiler before linking that 
compiler with it; top-level bootstrap has fixed that.)

LCA: Disintermediating distributions

Posted Feb 7, 2008 20:11 UTC (Thu) by vapier (subscriber, #15768) [Link]

it's really a mindset.  do you tell every user their system sucks and they should install
Linux and up-to-date utilities ?  or do you use automake and everyone out there can build your
project without a problem ?  some people will choose the former while others will pick the
latter.  in the latter case, automake is the only realistic solution.

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.