USENIX Association Proceedings of the FREENIX Track: 2002 USENIX Annual Technical Conference Monterey, California, USA June 10-15, 2002 THE ADVANCED COMPUTING SYSTEMS ASSOCIATION © 2002 by The USENIX Association All Rights Reserved For more information about the USENIX Association: Phone: 1 510 528 8649 FAX: 1 510 548 5738 Email:
[email protected] WWW: http://www.usenix.org Rights to individual papers remain with the author or the author's employer. Permission is granted for noncommercial reproduction of the work for educational or research purposes. This copyright notice must be included in the reproduced paper. USENIX acknowledges all trademarks herein. Overhauling Amd for the '00s: A Case Study of GNU Autotools Erez Zadok Stony Brook University
[email protected] Abstract Asking users to manually configure a package prior to compilation by editing a header file to turn on The GNU automatic software configuration tools, Au- or off package features or to specify services avail- toconf, Automake, and Libtool, were designed to help able from the platform on which the package will the portability of software to multiple platforms. Such be run. This process required intimate knowledge autotools also help improve the readability of code and of the system on which the package (e.g., C-News) speed up the development cycle of software packages. was to be built. In this paper we quantify how helpful such autotools are Trying to achieve portability using CPP macros to the open-source software development process. We and nested #ifdef statements. Such code results study several large packages that use these autotools and in complex, system-specific, deeply-nested CPP measure the complexity of their code.