Date: Thu, 20 Jul 1995 14:32:31 -0700 (PDT) From: "Rodney W. Grimes" <rgrimes@gndrsh.aac.dev.com> To: asami@cs.berkeley.edu (Satoshi Asami) Cc: jhs@vector.eikon.e-technik.tu-muenchen.de, jkh@time.cdrom.com, hackers@freebsd.org Subject: Re: Strange entries in /usr/src/Makefile Message-ID: <199507202132.OAA09908@gndrsh.aac.dev.com> In-Reply-To: <199507202114.OAA02916@forgery.CS.Berkeley.EDU> from "Satoshi Asami" at Jul 20, 95 02:14:17 pm
next in thread | previous in thread | raw e-mail | index | archive | help
> > * > I'd prefer it nuked, it just doesn't belong here. > * > * Then neither does the assumption in bsd.ports.mk that /usr/ports is > * the root of the ports tree :-(. That is after all what started this > * whole thread, that bsd.port.mk and /usr/src/Makefile where in disagreement > * about locations. > > bsd.ports.mk does not assume that the ports tree is located at > /usr/ports, it is just the default and can be changed by PORTSDIR. > (Or, more precisely, PORTSDIR is set to /usr/ports in bsd.ports.mk if > not defined by the user, and that's the root of the ports tree.) > > If we read bsd.port.mk from /usr/src/Makefile *before* the lines in > question, we can use PORTSDIR to build the ports as part of make > world. But we don't. > > Can I nuke them please? The main source tree and the ports tree are > two different beasts, it just doesn't make much sense to assume > anything about where they should be on a user's machine. Especially ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > if the "problem" can be solved by a 2-line shell script or a shell > command with three semicolons. I can not go with nuking them, some sites have become acustom to what we have. Perhaps the default value of PORTSDIR should move to a more visible location. Your missing a lot of the context and everything that went into the initial work to put that stuff in there, this was not just some half cocked lets go off and add this. It was discussed and reviewed, changed and envolved for about a 2 week period before it ever got added. That is why those lines are .if defined(MAKE_PORTS) & exists(../ports) & exists(../ports/Makefile) and not something much simpler but more error prone. [Oopppss.. my patched version of the file above :-)] Now, the new ports stuff has changed the picture a little and we need to deal with it, not just go nuke it! The argument that that /usr/src should know nothing about /usr/ports is a strawman, as bsd.port.mk lives there along with several other bits. Ideally, sure it would be nice if it didn't know a thing about it. Practical view point, next to imposible to achive the ideal. And as Joerg pointed out /usr/src/ports -> whereever makes the current code just do the right thing, and that was more or less the original intent. If someone wanted there ports collection autobuilt during a make world they just added the symlink and set MAKE_PORTS and boom, bigger longer running more complete ``make world''. You'll also notice all sorts of things in src/Makefile to handle the fact that src/ports may very well be a symbolic link, so this is not an ``after the fact'' side effect, it was designed that way. [gee, 60 lines of comments to defend 10 lines of code :-(] -- Rod Grimes rgrimes@gndrsh.aac.dev.com Accurate Automation Company Reliable computers for FreeBSD
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199507202132.OAA09908>