On Thu, Nov 21, 2002 at 04:30:02PM -0700, M. Warner Losh wrote:
> In message: <[EMAIL PROTECTED]>
>             David Schultz <[EMAIL PROTECTED]> writes:
> : Thus spake John Baldwin <[EMAIL PROTECTED]>:
> : > Make release is a very poor example b/c make release goes to great
> : > efforts to create a clean-room environment for a release.  make
> : > rerelease is quite helpful though and does do what you want to
> : > restart a previous release. :)  Also, make buildworld -DNOCLEAN
> : > isn't too shabby, though if I could do make TARGET_ARCH=alpha
> : > everything I would prefer that.
> : 
> : I have long wondered why NOCLEAN isn't the default.  There seem to
> : be a few cases where it doesn't DTRT for kernel builds, but it
> : seems a bit conservative to make incremental world builds require
> : that an undocumented variable be defined.  Any ideas?
> 
> Because the number of times that NOCLEAN screws you is high enough
> that we don't want to hear the noise from novice users....
> 
I would like to point out that NOCLEAN is only safe to use if sources
did not change in between, or you know the nature of the change and
are sure that it does not require cleaning .OBJDIR.  It is common to
see a problem with NOCLEAN caused by changes to makefiles.  For
example, with this Makefile:

a: b c
        cat ${.ALLSRC} > ${.TARGET}

You first `make a' and later modify the Makefile to read:

a: c b
        cat ${.ALLSRC} > ${.TARGET}

If you don't clean .OBJDIR before repeating `make a', you'll get
the (`a' is up to date.) message, and the result will be wrong.


Cheers,
-- 
Ruslan Ermilov          Sysadmin and DBA,
[EMAIL PROTECTED]           Sunbay Software AG,
[EMAIL PROTECTED]          FreeBSD committer,
+380.652.512.251        Simferopol, Ukraine

http://www.FreeBSD.org  The Power To Serve
http://www.oracle.com   Enabling The Information Age

Attachment: msg47181/pgp00000.pgp
Description: PGP signature

Reply via email to