[LWN Logo]
[LWN.net]
From:	 "Eric S. Raymond" <esr@thyrsus.com>
To:	 kbuild-devel@lists.sourceforge.net
Subject: [kbuild-devel] Draft transition plan
Date:	 Mon, 25 Jun 2001 16:51:04 -0400

Based on the discussion to date, here is a draft transition plan.  Please
read it to make sure it is representing reality correctly.

mec, please take this and edit as necessary to fill in the remaining blanks.
Your call when we release it.

(If I missed the name of anyone on the team, apologies.)

------------------------------------------------------------------------------
On Thursday 21 June Linus let the cat out of the bag that 2.5 "looks
like it will open in a week or two" <http://lwn.net/daily/2.5-coming.php3>.  

The CML2 and new-Makefiles cutover is still, as of Linus's last ukase
on the subject at the Linux Kernel summit, scheduled for sometime
between 2.5.1 and 2.5.2.  Linus chose a sharp cutover; when Eric
Raymond's CML2 and Keith Owens's new makefiles system go in, the old
CML1 stuff will drop out.

The changeover seems imminent, probably within the next six to eight
weeks.  To prepare, the build-system team (Giacomo Catenazzi, Michael
Elizabeth Chastain, Keith Owens, Eric S. Raymond, and Peter Samuelson)
has developed a transition plan.

Here is the current state of the tools:

Eric reports that his CML2 compiler and configurator engine both seem
to be in great shape.  Minor user-interface fixes have been trickling
in, but the core is stable.  There have been no serious bugs since
1.1.3 in mid-April.

Eric wishes he could be as sure about the CML2 rulesfiles.  He has
been keeping them up to date with respect to Linus's 2.4.6
prereleases, but it is intrinsically rather hard for him to know
whether they are doing what the configuration maintainers expect.  We
expect there will be a flurry of minor patches (and config maintainers
grumbling) after the cutover.

Keith reports his new makefile system is basically production-ready,
but he's still tying up some loose ends near implicit dependencies.

The Configure.help file is in good shape.  As of 2.14, all option symbols 
in use have help entries.  Thanks to everyone who contributed.  With a
little work (and a little nagging from Eric :-)) we'll keep it that way.

For you CML2 Adventure fans, Eric has decided not to implement monster
combat at this time.  On the other hand, the dungeon walls may soon
develop grafitti. :-)

Here is our transition plan:

1. Transition patch #1 -- CML2

Our first patch will put CML2 in place and scrap the CML1 machinery.

The old (existing) makefiles will remain in place, and configuration
will still be invoked by "make config", "make menuconfig", and "make
xconfig".  The .config and autoconf.h formats will not change.

Besides the [Cc]onfig.in files in the tree, the following files will go away:

scripts/Configure
scripts/Makefile
scripts/Menuconfig
scripts/README.Menuconfig
scripts/header.tk
scripts/tail.tk
scripts/tkcond.c
scripts/tkgen.c
scripts/tkparse.c
scripts/tkparse.h
scripts/checkhelp.pl
scripts/checkconfig.pl
scripts/checkincludes.pl
scripts/lxdialog/BIG.FAT.WARNING
scripts/lxdialog/Makefile
scripts/lxdialog/checklist.c
scripts/lxdialog/colors.h
scripts/lxdialog/dialog.h
scripts/lxdialog/inputbox.c
scripts/lxdialog/lxdialog*
scripts/lxdialog/lxdialog.c
scripts/lxdialog/menubox.c
scripts/lxdialog/msgbox.c
scripts/lxdialog/textbox.c
scripts/lxdialog/util.c
scripts/lxdialog/yesno.c
Documentation/kbuild/config-language.txt
Documentation/Configure.help

Note that the information now in Configure.help will migrate into the 
CML2 rulesfiles.  The config-language.txt file will be replaced by
CML2 reference material and a transition guide.

The new configurator will do automatic computation of necessary side-effects
when a symbol is changed, and will make it impossible to commit a configuration
which doesn't obey the rulesfile constraints.

This patch will be large.

2. Transition patch #2 -- Kaos makefiles

The second patch will replace the present makefile system with Keith 
Owens's new "kaos" makefiles.  

Configuration will still be invoked by "make config", "make
menuconfig", and "make xconfig".  The .config and autoconf.h formats
will not change.

The new system will have many benefits, including abolishing the 
always-irksome `make dep' step and a much friendlier set of make
targets.

This patch will be large.

3. Transition patch #3 -- Cleanup

The third patch will change the format of .config slightly so that
"no" answers are stored explicitly, FOO=n rather than "# FOO is not set."
It will also clean up after any unanticipated interactions between 1 and 2:

Configuration will still be invoked by "make config", "make
menuconfig", and "make xconfig".  The autoconf.h format
will not change. but the .config format will change.

This format change will enable passing around partial configurations
containing both "no" and "don't care".  This will be important for
supporting autoconfiguration scripts (a work in progress by 
Giacomo Catenazzi).

We expect this patch to be small. 

Timing:

The timing, of course, is up to Linus.  Only as he accepts each
transition patch can we resync for the next one.  If 2.5 opens next
week, historical timing of release frequency suggests that the
transition will take place over approximately the next ten weeks.
-- 
		<a href="http://www.tuxedo.org/~esr/">Eric S. Raymond</a>

I have never made but one prayer to God, a very short one: "O Lord,
make my enemies ridiculous." And God granted it.
	--Voltaire 

_______________________________________________
kbuild-devel mailing list
kbuild-devel@lists.sourceforge.net
http://lists.sourceforge.net/lists/listinfo/kbuild-devel