From owner-freebsd-current Mon Sep 16 14:39:03 1996 Return-Path: owner-current Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id OAA10205 for current-outgoing; Mon, 16 Sep 1996 14:39:03 -0700 (PDT) Received: from meter.eng.uci.edu (root@meter.eng.uci.edu [128.200.85.3]) by freefall.freebsd.org (8.7.5/8.7.3) with ESMTP id OAA10197 for ; Mon, 16 Sep 1996 14:38:57 -0700 (PDT) Received: from newport.ece.uci.edu by meter.eng.uci.edu (8.7.4) id OAA29040; Mon, 16 Sep 1996 14:38:40 -0700 (PDT) Received: from localhost by newport.ece.uci.edu (8.7.4) id OAA05187; Mon, 16 Sep 1996 14:38:38 -0700 (PDT) Message-Id: <199609162138.OAA05187@newport.ece.uci.edu> To: Bruce Evans cc: freebsd-current@freebsd.org Subject: Re: Object directory changes to make In-reply-to: Your message of "Tue, 10 Sep 1996 07:00:19 +1000." <199609092100.HAA27432@godzilla.zeta.org.au> Date: Mon, 16 Sep 1996 14:38:33 -0700 From: Steven Wallace Sender: owner-current@freebsd.org X-Loop: FreeBSD.org Precedence: bulk I have made more changes to make and the makefiles as per our previous discussion. Bruce, will you look over ~swallace/work/make and ~swallace/work/mk once more before I commit? The object directory searching goes as follows. If the env var MAKEOBJDIRPREFIX is not set, then it's ${.CURDIR}/obj.`uname -m` $(.CURDIR}/obj ${MAKEOBJDIRPREFIX}`cwd` ${.CURDIR} If it IS set, then the order is ${MAKEOBJDIRPREFIX}`cwd` ${.CURDIR} I chose to make obj by default have a higher priority if MAKEOBJDIRPREFIX is not set because with an obj tree one may wish to use the object tree for something at /usr/obj/a/b/c, but not for /usr/obj/a/b. Since /usr/obj/a/b/ must be created for /usr/obj/a/b/c, /a/b/obj will not be used. The obj tree can be forced to used if MAKEOBJDIRPREFIX is set. .TARGETOBJDIR has been removed from make and CANONICALOBJDIR set in bsd.obj.mk. Also, a make target called objwarn checks to see if ${.OBJDIR} != ${.CURDIR} and ${.OBJDIR} != ${CANONICALOBJDIR} and outputs a warning. (No warning for the latter if MAKEOBJDIR or MAKEOBJDIRPREFIX is set). objwarn is called from bsd.prog.mk, bsd.kmod.mk, and bsd.lib.mk. Steven