On Sat, Jun 05, 2010 at 06:48:18PM +1200, Richard Toohey wrote:
> But I don't understand what he's doing differently to me.  A new release is
> out, you want to upgrade from the previous release to the new one, and
> then you want to apply the errata patches.

Look, there are several flaws to the way make works.

Those flaws are *totally integral* to the way make works.

In most cases, you get lucky, sometimes you don't.

Basically, the flaw is that make needs a list of dependencies to work.
It can either be hardcoded in makefiles, or regenerated through .depend.

For anything but the most trivial projects, it is regenerated dynamically
through "make depend".   But if that information changes too much
(especially when files get removed), then it fails.

It fails HARD.

As in, you get a make error because it can no longer find a dependency it
used to find.

If you're even less lucky, it fails silently. As in, it forgets to register
a dependency/recompile a file even though things have changed.

Make doesn't know about every dependency. Especially tweaks to compile flags,
changes in defines, too deep changes don't get noticed.

Oh yeah, you *could* add more meta-junk that says that whenever you change
THAT file, then you have to recompile this and this. More often than not,
GNU-hell projects (as known as autoshit, as known as automake/autoconf/libtool)
err in the other direction. So you make a wee little tweak to a file in there,
and suddenly, it recompiles the WHOLE WORLD.  And assumes you have every
crappy development tool the FSF ever shat on the world. Very offensive if
you ask me (that's the whole point of the REORDER_DEPENDENCIES in ports land,
btw.  This allows up to sneak out of that problem every time we do a small
patch to a Makefile.in in GNUlalaland).


It's all about process. You got a process you can follow to rebuild OpenBSD.
Follow it to the letter. If you take shortcuts, you will get bitten 
eventually.

If you're smart enough, you will recover. But it is complicated.


Hint: if the guy who's actually in charge of the OS, and the guy who's
actually maintaining make are BOTH telling you it's complicated, then it
probably is.  Do you think you're smarter than Theo and I combined ?
Go ahead, prove us wrong...

Reply via email to