On Sun, Jan 30, 2011 at 01:59:36PM -0300, Sergio Belkin wrote:
I wonder is there out is some statistic about build system for
construct the packages. I mean: autotools, cmake, scons, plain
makefile, etc.
Of course I could download a entire repo and take a look at each
package, but I have no enough space ;)
I'm not aware of anyone who has done this particular analysis, but
there are two observations which might help you.
Firstly it's rather easy to download either all or a representative
subset of the Fedora packages. For a survey that I did a few years
ago I grabbed 100 packages at random and scaled those results up to
the whole Fedora code base, and that wasn't very hard at all. I was
looking at things like languages and lines of code, not build systems.
My analysis (well out of date now) is attached below.
Secondly an anecdote: when I was cross-compiling lots of core packages
for the Windows cross compiler project (see .signature), I found that
most of them are sensible and use autoconf. The rest used a whole
variety of build systems which caused considerably more trouble than
autoconf. This is _not_ an endorsement of autoconf, which is horrible
but at least it's consistently horrible.
Rich.
----------------------------------------------------------------------
Total number of packages 8334
in Fedora 'devel' branch
Packages picked at random 100 (1.2% of total)
from Fedora
Missing spec or failed - 11
to build from source
The remaining 89 packages were then built, adding the '-save-temps'
option to RPM_OPT_FLAGS so that the *.i (preprocessor files) are
preserved for importing into CIL.
Packages that contained 38
C code, and successfully
generated at least one
*.i file
Packages that had a parse - 3
error in CIL
In my test of Expected numbers for
100 packages whole of Fedora
Packages imported 35 2900
into CIL
Total number of *.i files 1408 117000
across imported packages
CIL data size after 313 MB 26 GB
importing into CIL
(AST + flow-graph
analysis)
LoC in *.i files 10.7 MLoC 890 MLoC
(double-counts headers)
LoC in *.c/*.h files 1.3 MLoC 108 MLoC
(doesn't count system
headers)
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
New in Fedora 11: Fedora Windows cross-compiler. Compile Windows
programs, test, and build Windows installers. Over 70 libraries supprt'd
http://fedoraproject.org/wiki/MinGW http://www.annexia.org/fedora_mingw