Managing Projects with GNU Make
sarumont writes "Every Open Source developer uses or has used GNU make at some point or another. Everyone who has ever compiled a piece of Open Source software has used GNU's make. So what exactly is GNU make and how does it work? The 3rd Edition of 'Managing Projects with GNU Make' tells you all about using GNU make and more."
Significant, invisible characters like tab? Just say no. And that's just the start of your problems...
I still have nightmares.
-WolfWithoutAClause
"Gravity is only a theory, not a fact!"As a Sourceforge admin (see my sig) I can testify from personal experience that Sourceforge has a heavy Linux bias. I do not think that this necessarily comes from the site, but who the site affiliates with, and the people who are drawn to it. First off is FreshMeat. FreshMeat is a great way to create interest in your project and attract developers, and yet windows only projects cannot use it. There is no good reason for this except an anti-windows bias. And secondly the majority of Sourceforge users are Linux users, which means that Linux projects attract more developers and users, which means in turn that their projects shoot up in popularity and name recognition much faster than a Windows project. And finally those Linux projects, being popular have an easy time finding someone to port to Windows, but a low key windows project has a hard time finding someone to port it to Linux since no one knows about it. Hence a kind of self-perpetuating process has arisen that downs out windows projects.
Philosophy.
One thing I find quite remarkable is that in a couple of decades, make is still the only mainstream multi-language multi-platform build tool. The alternatives are either not widely used or are language-specific like Ant. With so many people not liking make, it's suprising an alternative tool hasn't really caught on.
-- Microsoft is the most expensive commodity operating system and office suite vendor in the marketplace.
Everyone who has ever compiled a piece of Open Source software has used GNU's make.
It is quite possible to compile a piece of Open Source Software without GNU make. It's not easy, to be sure, since there are so many projects out there that require GNU make (automake doesn't help matters much), but it is possible. There is BSD make, Solaris make, Microsoft's strange nmake, and several others. GNU is but one of many, and it's not even the only free make.
The problem is that the make standard is so tepid that to get a decent make you need to extend it. So what we end up in reality is a lack of a make standard. I can write a complete C program that will compile with any standard C compiler. I can write a powerful bourne shell script that runs on any Bourne compliant shell. But to write a Makefile that will work under all makes is quite difficult.
Don't blame me, I didn't vote for either of them!
I'm pretty sure there are plenty of open source developers who have never touched GNU Make.
Open source on windows, OMG it does exist!!!!
Step out of your Linux bubble.
What's Linux-centric about GNU make?
I'm primarily a Windows user, and I used to use GNU make all the time. Until I realised I preferred omake.
Please alter my pants as fashion dictates.
I think the main problem is that many people still want their projects to be pretty portable, at least among unix variants. Once you start requiring people to have "super-duper-make" (requiring pyperl version X.Y.Z) installed, they often just give up on your software rather than deal with the hassle of installing whatever your favorite tool is.
:-]
Traditional make is a lowest-common-denominator, however much it sucks. GNU make is slowly becoming widespread enough that it may be a viable alternative.
The autotools are widespread for a similar reason, in that they try very hard to produce portable configure scripts.
[I don't have much experience with autoconf alternatives, but those I've seen -- e.g. imake and Larry Wall's Configure stuff -- suck even more than autoconf. It's sort of like democracy: the worst system there is, except for all the others
We live, as we dream -- alone....
It's almost the same as the situation with internet explorer. Until the program with the most market share improves, everyone who cares about working with the marjority of people is stuck with a deficient system.