Hi,
My name is Bram Adams and I'm a PhD student at Ghent University in
Belgium. Part of the research of our lab is about understanding build
systems to investigate the close (co-)evolution of source code and the
build system. For this, we have examined the evolution of the (major
releases of the) Linux kernel build system from 1991 to 2007. A first
report of this work has been published online at http://eceasst.cs.tu-berlin.de/index.php/eceasst/article/view/115
, and Sam Ravnborg encouraged us to share this with the kbuild mailing
list. A more detailed report is expected to be available in two or
three months.
Our paper looks at the evolution of the Linux kernel build system
(1991-2007) from various angles:
* measurement of the number of lines of source code, build and
configuration scripts
* measurements of the complexity of the build dependency graph
* visualisation of the build dependency graph
* filtering of the build dependency graph to uncover build idioms
* the kbuild documentation
* mailing list discussions
* notes on web sites
* and of course the makefiles and configuration scripts themselves
when in doubt about something
We have used this data to find measurable evidence of the evolution of
the internal complexity of the build layer (kbuild). We did not
investigate in detail the "user interface" of makefiles and
configuration scripts, i.e. how developers add new modules or kernel
source files. Further investigation is needed on this. We are planning
to analyse other systems besides the Linux kernel to generalise our
findings and to examine whether predictions could be made on the
health or evolvability of a build system based on the above
characteristics.
We would like to thank Sam Ravnborg and Kai Germaschewski for their
constructive comments on an earlier version of the report. Any
feedback on the published report or suggestions for further analysis
are gladly appreciated.
Kind regards,
Bram Adams
GH-SEL, INTEC, Ghent University (Belgium)
http://users.ugent.be/~badams/
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html