From owner-freebsd-current Tue Jun 25 09:53:40 1996 Return-Path: owner-current Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id JAA16885 for current-outgoing; Tue, 25 Jun 1996 09:53:40 -0700 (PDT) Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.19]) by freefall.freebsd.org (8.7.5/8.7.3) with SMTP id JAA16874 for ; Tue, 25 Jun 1996 09:53:34 -0700 (PDT) Received: (from bde@localhost) by godzilla.zeta.org.au (8.6.12/8.6.9) id CAA16299; Wed, 26 Jun 1996 02:50:48 +1000 Date: Wed, 26 Jun 1996 02:50:48 +1000 From: Bruce Evans Message-Id: <199606251650.CAA16299@godzilla.zeta.org.au> To: bde@zeta.org.au, jkh@time.cdrom.com Subject: Re: Building inside of /usr/src? Cc: freebsd-current@FreeBSD.org, nate@sri.MT.net Sender: owner-current@FreeBSD.org X-Loop: FreeBSD.org Precedence: bulk >> Make's path building and priorities for finding the obj directory are now >> broken. Not only the source tree is broken. Try this: >But it's not! >> $ cd /tmp >> $ cvs co cat >> $ cd cat >> $ make # builds in ".", OK >> $ make clean >> $ mkdir obj >> $ make # still builds in ".", not OK >WRONG. This is not how it works now! I don't know what this weird This is exactly how it works now. Have you tried it? :-). >fixation people have with trampling on /usr/src now is, but there's no >reason for this to work because it's not looking in ${.SRCDIR}/obj and >never will again. Don't be fooled by the `objlink' stuff as that's >only user convenience - the make system does *not* follow the link! Building things in /usr/src is only slightly broken. Building elsewhere is completely broken. My example builds in /tmp just because paths like /home/bde wouldn't be portable. >> $ make clean >> $ mkdir /usr/obj/tmp /usr/obj/tmp/cat >"make obj" is recommended. It will normally fail because normal users won't have write permission in /usr/obj, and in any case it only applies for building standard sources. >> $ rm -rf /usr/obj/tmp # don't leave this trap >> $ export MAKEOBJDIR=obj >Again, this is wrong and I explained this! MAKEOBJDIR is an absolute >path now, NOT the name of the obj directory itself. Actually, it's still relative to the current directory unless it begins with a '/', but most of the point of this is lost by appending the full path to the current directory to $MAKEOBJDIR. >Sorry Bruce, but there's nothing broken here except your expectation >that everything should be still broken in the ways it was broken >before! :-) There is no reason to break the old behaviour. If you want to break it, break it properly by removing the builtin /usr/obj path which is at best right for building /usr/src. Bruce