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>