The gmake Debacle
Once upon a time, there was one make, and all was well within the universe.
And then a pothead known as RMS to
some, and Jesus to others, decided to write a new make. This make, he
decided, would break as many standards as possible in one go. He decided that
this make would limit portability as much as a single build utility could.
gmake sucks such massive amounts of vinegar-soaked camel nuts that I’m not
sure I can convey this rant into proper written language. There’s a lot of
things about Linux that I don’t like, but the biggest one is gmake. Just in
case you don’t know, gmake is the lamest piece of shit I’ve ever encountered
as a programmer. It ignores standards and defies all logic and reason just so
some lazy ass Linux programmer doesn’t have to hit tab in a build instruction
block.
“Makefile”, line 42: Need an operator
This isn’t the first thing that comes to mind, but it’s the most annoying. Most
make utilities require an operator in build instruction blocks in order to
actually do something. They do this for sane and logical reasons. If you’ve
ever used a sane make, then you know what I’m talking about. However, gmake
chooses to blatantly ignore this requirement, executing anything. One might
argue that this makes things easier, if you’re a lazy bastard. One might also
argue that BSD make
requires an operator in order to figure out when the instruction block has
ended and that gmake is so sophisticated that it can figure it out without
that. That’s actually the only valid argument I can think of. Too bad it’s
wrong.
“Makefile”, don’t know how to make build.o. Stop.
Now this one really, really pisses me off. If you have an instruction target
called “build” (which most Makefiles do), and a source file called “build.c,”
or what have you, gmake shits its pants. When receiving make build in this
case, gmake decides to completely ignore the instruction block, and try to
compile build.c!
What were these fucktards thinking?
Why in the world make would ignore an instruction block in favor of a file
without an extension specificed is beyond my ability to grasp. This is simply
broken.
“gmake,” don’t know how to make portability. Stop.
Sometimes I think RMS purposely designed gmake to break shit so people will
use Linux, and thus his pothead GNU
bullshit programs. I hate this shit. I run FreeBSD on the majority of my
machines, and it really irks me that I have to install gmake just because
some retard can’t follow standards. A BSD Makefile will work fine with gmake,
but a gmake Makefile probably won’t work fine with a BSD make because it
refuses to follow standards, thus breaking shit. This seems to be one thing
Linux excells in.
0 TrackBacks
Listed below are links to blogs that reference this entry.
TrackBack URL for this entry: http://mt.ericw.org/mt-tb.cgi/281
