2002 FREENIX Track Technical Program - Abstract
Overhauling Amd for the '00s: A Case Study of GNU Autotools
Erez Zadok, Stony Brook University
The GNU automatic software configuration tools, Autoconf, Automake, and
Libtool, were designed to help the portability of software to multiple
platforms. Such autotools also help improve the readability of code and
speed up the development cycle of software packages. In this paper we
quantify how helpful such autotools are to the open-source software
development process. We study several large packages that use these
autotools and measure the complexity of their code. We show that total code
size is not an accurate measure of code complexity for portability; two
better metrics are the distribution of CPP conditionals in that code and the
number of new special-purpose Autoconf macros that are written for the
We studied one package in detail--Am-utils, the Berkeley Automounter. As
maintainers and developers of this package, we tracked its evolution over
ten years. This package was ported to dozens of different platforms and in
1997 was converted to use GNU autotools. We show how this conversion
(autotooling) resulted in a dramatic reduction in code size by over 33%.
In addition, the conversion helped speed code development of the Am-utils
package by allowing new features and ports to be integrated easily: for the
first year after the conversion to GNU autotools, the Am-utils package grew
by over 70% in size, adding many new features, and all without increasing
the average code complexity.
- View the full text of this paper in
PDF, and Postscript.
The Proceedings are published as a collective work, © 2002 by the USENIX Association. All Rights Reserved. Rights
to individual papers remain with the author or the author's employer.
Permission is granted for the noncommercial reproduction of the complete
work for educational or research purposes. USENIX acknowledges all
trademarks within this paper.
- If you need the latest Adobe Acrobat Reader, you can download it from Adobe's site.
- To become a USENIX Member, please see our Membership Information.