[PATCH] Autogen bootstrap targets and make them preinstall

Paolo Bonzini bonzini@gnu.org
Wed May 12 11:04:00 GMT 2004


I got tired of updating the same thing three times, so I decided it was 
time to let Autogen do some more.  I'm quite pleased of the result, and 
it will make it *much* easier to add yummy things like 
profiledbootstrap4-lean. ;-)

All bootstrap-related targets are automatically generated from 
parameters in Makefile.def.

The new targets are

- distclean-stageN: quite clear.
- new-stageN-start: same as stageN in the gcc makefile
- new-stageN-end: same as unstageN in the gcc makefile
- new-stageN-bubble (N=1,2): If a stage has been built, forces an
   incremental rebuild of the stages up to N.  Then, if the successive
   stage has been already configured, it disables reconfiguration of
   stage N+1.  If the stage has not been built, this does nothing.

With this patch, after any all-stageN-gcc has been successfully built, 
"make new-bootstrap" will act as a bubblestrap because it invokes 
new-stage3-bubble to make stage3.  If one does not want the bubblestrap 
behavior, they'll use new-restage3 or new-cleanstrap.

I include the Makefile.in diff because it is quite easy to read, more 
than Makefile.tpl. :-(  New-bootstrapped i686-pc-linux-gnu, ok for 
mainline and src if the gcc patch is accepted?

(I'll be on a short vacation until Monday).

Paolo

2005-05-12  Paolo Bonzini  <bonzini@gnu.org>

	* configure.in: Test the ability to symlink directories.
	* configure: Regenerate.

	* Makefile.def (bootstrap-stage): New definitions.
	* Makefile.tpl (configure-stage1-gcc,
	configure-stage2-gcc, configure-stage3-gcc,
	all-stage1-gcc, all-stage2-gcc, all-stage3-gcc,
	new-bootstrap, new-cleanstrap, new-restage1, new-restage2,
	new-restage3, compare): Autogenerate, see Makefile.in
	entry for behavioral changes.
	(distclean-stage1, new-stage1-start, new-stage1-end,
	new-stage1-bubble, distclean-stage2, new-stage2-start,
	new-stage2-end, new-stage2-bubble, distclean-stage3,
	new-stage3-start, new-stage3-end): New autogenerated targets.
	(objext, prebootstrap, BOOT_CFLAGS,
	POSTSTAGE1_FLAGS_TO_PASS): Move above the autogenerated
	targets.

	* Makefile.in: Regenerate.
	(distclean-stage1, new-stage1-start, new-stage1-end,
	new-stage1-bubble, distclean-stage2, new-stage2-start,
	new-stage2-end, new-stage2-bubble, distclean-stage3,
	new-stage3-start, new-stage3-end): New targets.
	(all-stage1-gcc): Move prebootstrap dependency from here...
	(configure-stage1-gcc): ...to here.
	(all-stage1-gcc, all-stage2-gcc): Preinstall after making.
	(configure-stage2-gcc, configure-stage3-gcc): Use preinstalled
	gcc.
	(new-bootstrap): Use bubble targets.
	(new-cleanstrap, new-restage1, new-restage2, new-restage3):
	Use per-stage distclean targets.
	(configure-stage1-gcc, configure-stage2-gcc,
	configure-stage3-gcc, all-stage1-gcc,
	all-stage2-gcc, all-stage3-gcc, new-bootstrap):
	Use new-stageN-start to prepare the tree.

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: 9-bootstrap-staging-area-take3.patch
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20040512/26154bea/attachment.ksh>


More information about the Gcc-patches mailing list