Developers' Build Systems Choice

New statistics as for what build systems are popular and which are for the gutter. openSUSE Factory as of June 22 2013 has some 6444 packages in the OBS repository, of which 6197 contained a .spec file and thus packagable software. (The remainder are _link packages, and auxiliary packages for things like ISO generation.) Since this is a multiple-choice test, sums can add past 100%.

Amount In % of 6197 How tested? Some tools needed to run a rule
Packages inspected 6197    
autoconf without automake 323 5.2% presence of, absence of sh, sed, make
autoconf with automake 2320 37.4% presence of sh, sed, make
perl-like 866 14.0% Makefile.PL (ExtUtils::MakeMaker) or Build.PL (Module::Build) perl, make
python-like 669 10.8% python
cmake 514 8.3% CMakeLists.txt cmake, {make or ninja or VS or nmake or wmake or ...}
ant 193 3.1% build.xml java, ant
qmake 190 3.1% *.pro yielding a match qmake, ...?
php 184 3.0% package.xml ?
xmkmf 69 1.1% Imakefile xmkmf, cpp
maven 41 0.7% pom.xml java, maven, ...?
android 39 0.6% [Aa] ?
scons 36 0.6% SConstruct scons
haskell 33 0.5%   ghc?
waf 30 0.5%   python
plain 560 9.0% Makefile* excluding make
none or unknown 706 11.4%   -

Since packages to rich scripting suites often use the “in-house” installation mechanism — Perl modules almost exclusively use ExtUtils::MakeMaker, for example — it might be worth interesting looking at the tally that excludes such modules. Or in fact, perhaps I should only look at C and C++ source code, since that is what most of the enlisted build systems target. (Another time, perhaps.) It would certainly mean that autoconf prevalence would reach 60%, or maybe more.

Personal remark: If I look at Samba's wscript, I can see why WAF is unpopular. It seems more like a plain Makefile written in Python rather than the “clever” use of prior modularized code.

Posted 2013-06-21 22:06 / Tags: Autotools, Development, Software. / link