Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 31 Jan 2008 18:24:56 +0600
From:      Max Khon <fjoe@samodelkin.net>
To:        obrien@freebsd.org
Cc:        cvs-all@freebsd.org
Subject:   Re: cvs commit: src/usr.bin/make globals.h job.c job.h main.c	make.1 make.h parse.c
Message-ID:  <47A1BE18.4000903@samodelkin.net>
In-Reply-To: <20080113101421.GA45977@dragon.NUXI.org>
References:  <200703080916.l289GB7N040141@repoman.freebsd.org> <20080113101421.GA45977@dragon.NUXI.org>

next in thread | previous in thread | raw e-mail | index | archive | help
David O'Brien wrote:
> On Thu, Mar 08, 2007 at 09:16:11AM +0000, Max Khon wrote:
>> fjoe        2007-03-08 09:16:11 UTC
>>   Modified files:
>>     usr.bin/make         globals.h job.c job.h main.c make.1 
>>                          make.h parse.c 
>>   Log:
>>   Implement "Remaking Makefiles" feature:
>>   
>>   After reading Makefile and all the files that are included using
>>   .include or .sinclude directives (source Makefiles) make considers
>>   each source Makefile as a target and tries to rebuild it.  Both
>>   explicit and implicit rules are checked and all source Makefiles are
>>   updated if necessary. If any of the source Makefiles were rebuilt,
>>   make restarts from clean state.
> 
> How does one turn this off?  It causes SuffFindDeps to be run over every
> .MAKEFILE_LIST member.  This causes a problem if you try to build in
> src/gnu/usr.bin/cvs/contrib and ./Makefile has an older date than
> src/contrib/cvs/contrib/Makefile.in.
> 
> I'm curious, is this functionality depended on to build world?  Or it
> is a feature to do cool stuff outside of /usr/src?

I wanted to use this feature to auto-calculate depends during build 
world. I know about Makefile.in issue in contrib/cvs and this seems to 
be the only issue in FreeBSD src tree. I'd better remove Makefile.in 
from there.

>>   When remaking a source Makefile options -t (touch target), -q (query
>>   mode), and -n (no exec) do not take effect, unless source Makefile is
>>   specified explicitly as a target in make command line.
> 
> I'm not so sure this is good behavior.  When trying to debug the issue
> with src/gnu/usr.bin/cvs/contrib/Makefile; I did:
>     rm Makefile ; cvs up Makefile ; make -n
> and yet still had my Makefile damanged (do to the other issues with this
> commit).  I really do think 'make -n' really does mean "DO NOT ACTUALLY
> EXECUTE THEM".
> 
> At a minimum, make.1 needs updating to make it clear that 'make -n' can
> have side affects.

Will do it.

/fjoe



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