Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Jun 1996 05:34:00 -0700
From:      "Jordan K. Hubbard" <jkh@time.cdrom.com>
To:        Michael Smith <msmith@atrad.adelaide.edu.au>
Cc:        wollman@lcs.mit.edu (Garrett Wollman), current@freebsd.org
Subject:   Re: tcl -- what's going on here. 
Message-ID:  <9424.835360440@time.cdrom.com>
In-Reply-To: Your message of "Fri, 21 Jun 1996 13:56:17 %2B0930." <199606210426.NAA08584@genesis.atrad.adelaide.edu.au> 

next in thread | previous in thread | raw e-mail | index | archive | help
> Ah!  This is something that has never been adequately explained before.
> 
> I presume this ties in with the suggestion (made by Tom?) of leaving
> the vendor tree aside and building in another directory using VPATH?

There are lots of ways of going about this and yeah, this is one of
them.  I do rather like the idea of a separate hierarchy of makefiles
which simply point at sections of a pristine "in its original box"
port.  It's more work than creating a tree of symlinks which mimic the
the original port's structure so that you can simply use the port's
native build mechanism, but creating symlink trees is also expensive.
I've been shying away from suggesting this as a solution to the TCL
problem for that reason.

> ... following this further down the track, looking at Jordan's gripes
> with the whole objdir thing, would it be practical to build the obj
> tree and populate it with symlinks to corresponding makefiles, and then
> use VPATH to find the sources?

That would do it, sure.  I've done simple tests with simply adding a
VPATH line to an existing Makefile and then copying only the Makefile
to another location - it works fine.

Again, this is another problem with multiple solutions and I would
be perfectly happy for us to pick any one of them, JUST SO LONG AS WE
GOT THE HELL AWAY FROM MODIFYING /usr/src! :-)

I really, genuinly do not understand why the obj mechanism was
implemented with symlinks directly in /usr/src.  There was clearly a
*lot of work* put into making separated src/obj trees work, but then
somebody who was obviously unclear on the original concept came along
and broke the whole show again by making one simple conceptual mistake
about how to point at the obj directories.  One key mistake which
broke the mechanism so badly that we might as well never have bothered
with obj dirs in the first place. :-(

It is /usr/src which should be pointed *to*, not point out - /usr/src
shouldn't have a single goddamn symlink anywhere in it.

Anyway, all of this has annoyed me enough that I've started re-writing
bsd.obj.mk right now.  The general behavior I'm looking for now is
that if you do a make in any directory of /usr/src, the existance of
the corresponding /usr/obj directory is checked and, if it exists,
you'll automagically teleport over there for your make.  The obj
directory is built by the obj rule which also symlinks the Makefile
from ${.CURDIR} over (and I guess that if you did a `make obj' from my
/usr/obj as it currently stands, it would attempt to make a shadow of
a shadow, but that case can be checked for :-)

					Jordan



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9424.835360440>