From owner-freebsd-current Fri Oct 10 15:05:45 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id PAA13423 for current-outgoing; Fri, 10 Oct 1997 15:05:45 -0700 (PDT) (envelope-from owner-freebsd-current) Received: from time.cdrom.com (time.cdrom.com [204.216.27.226]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id PAA13417 for ; Fri, 10 Oct 1997 15:05:37 -0700 (PDT) (envelope-from jkh@time.cdrom.com) Received: from time.cdrom.com (localhost.cdrom.com [127.0.0.1]) by time.cdrom.com (8.8.7/8.6.9) with ESMTP id PAA04459; Fri, 10 Oct 1997 15:04:13 -0700 (PDT) To: Warner Losh cc: =?KOI8-R?B?4c7E0sXKIP7F0s7P1w==?= , FreeBSD-current Subject: Re: make world failed In-reply-to: Your message of "Fri, 10 Oct 1997 15:05:33 MDT." <199710102105.PAA23103@harmony.village.org> Date: Fri, 10 Oct 1997 15:04:13 -0700 Message-ID: <4455.876521053@time.cdrom.com> From: "Jordan K. Hubbard" Sender: owner-freebsd-current@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk > Does anybody know why Make started behaving like this? Yeah, it comes from the target which "makes make" during the bootstrap phase in /usr/src/Makefile. Here's the relevant fragment: cd ${.CURDIR}/usr.bin/make && \ ${IBMAKE} -I${.CURDIR}/share/mk -B ${CLEANDIR} ${OBJDIR} depend && .. This unfortunately has problems because (assuming that ${CLEANDIR} = "cleandir" and ${OBJDIR} = "obj" of course) when make first starts up it goes looking for an appropriate shadow obj tree so that it can point the ${.OBJDIR} variable at it. Because there's no obj dir yet, it sets ${.OBJDIR} = ${.CURDIR} as a fall-back. Now the cleandir and obj targets are run and the obj dir *does* get created but it's too late for that invocation of make, which has already made up its mind about that. When the depend runs, it's with the bad ${.OBJDIR} value. Satoshi fixed this by breaking the depend off into its own make invocation, but apparently this had other undesirable side-effects and I think he's still looking at it. Jordan