Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 28 Sep 1997 21:13:45 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        randyd@nconnect.net, Shimon@i-Connect.Net
Cc:        current@FreeBSD.ORG
Subject:   RE: Make world failure
Message-ID:  <199709281113.VAA16774@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>>...
>>  /usr/src/usr.bin/make/lst.lib/lstReplace.c
>>  /usr/src/usr.bin/make/lst.lib/lstSucc.c
>>  /usr/bin/mkdep: cannot create _mkdep28392: directory nonexistent
>>  *** Error code 2
>> ...
>>  I've been digging around for the last 5 hrs or so.  I'm Stumped!
>
>rm -rf /usr/obj/*
>
>I have been digging too.  Not this long, though.  When in doubt, blow
>/usr/obj.
>
>Note:  There is no logical, mathematical or sceitific reason for the above
>(that I am aware of).

Haven't you been reading your commit mail? :-)  I discussed the bug in
cvs-committers yesterday.  Perhaps I removed the cc's to the general cvs
lists.

The diagnosis of a bug in the log message for rev.1.146 was obviously
wrong, and the "fix" turned out to introduce the current bug without
actually fixing the old one.  Now, if the obj directory already exists,
then `make' shoots itself in the foot by removing its current directory.
Then re-making the obj directory does not help.

Untested fix (for -current):

diff -c2 Makefile~ Makefile
*** Makefile~	Sat Sep 27 01:42:58 1997
--- Makefile	Sat Sep 27 01:53:47 1997
***************
*** 223,231 ****
  	@echo "--------------------------------------------------------------"
  	mkdir -p ${WORLDTMP}/usr/bin
  	cd ${.CURDIR}/usr.bin/make && \
! 		${IBMAKE} -I${.CURDIR}/share/mk \
! 			${CLEANDIR} ${OBJDIR} depend && \
! 		${IBMAKE} -I${.CURDIR}/share/mk ${MK_FLAGS} \
! 			all install clean cleandepend
  	@echo
  	@echo "--------------------------------------------------------------"
--- 223,233 ----
  	@echo "--------------------------------------------------------------"
  	mkdir -p ${WORLDTMP}/usr/bin
+ .if !defined(NOCLEAN) || !defined(NOOBJDIR)
  	cd ${.CURDIR}/usr.bin/make && \
! 		${IBMAKE} -I${.CURDIR}/share/mk ${CLEANDIR} ${OBJDIR}
! .endif
! 	cd ${.CURDIR}/usr.bin/make && \
! 		${IBMAKE} -I${.CURDIR}/share/mk depend && \
! 		${IBMAKE} -I${.CURDIR}/share/mk ${MK_FLAGS} all install
  	@echo
  	@echo "--------------------------------------------------------------"

This also removes the superflous final clean and cleandepend steps.

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199709281113.VAA16774>