An Empirical Analysis of GNU Make in Open Source Projects

Loading...
Thumbnail Image

Authors

Martin, Douglas

Date

Type

thesis

Language

eng

Keyword

Build Systems , Makefiles , Open Source , Software Engineering , Software Metrics , Maintenance Complexity , GNU Make

Research Projects

Organizational Units

Journal Issue

Alternative Title

Abstract

Build systems, the tools responsible for compiling, testing, and packaging software systems, play a vital role in the software development process. Make is one of the oldest build technologies and is still widely used today, whether by manually writing Makefiles, or by generating them using tools like Autotools and CMake. Despite its conceptual simplicity, modern Make implementations such as GNU Make have become very complex languages, featuring functions, macros, lazy variable assignments and more. This thesis is an exploration of Make-based open source build systems in two parts. First, our feature analysis looks at the popularity of features and the difference between hand-written Makefiles and those generated using various tools. We find that generated Makefiles use only a core set of features and that more advanced features (such as function calls) are used very little, and almost exclusively in hand-written Makefiles. Second, our complexity analysis introduces indirection complexity -- a simple metric for measuring maintenance complexity in Makefiles using the same feature data compiled in the first analysis. We show how this new metric can provide a better way to measure which Makefiles will require more cognitive overhead to understand than traditional metrics. Both analyses utilize our framework, built with the TXL source transformation language, to obtain a detailed parse of Makefiles in our corpus. This corpus consists of almost 20,000 Makefiles, comprised of over 8.4 million lines, from 271 different open source projects. Through these analyses, we aim to gain a better understanding of how the Make language is used in the open source community (some of the most advanced users of Make).

Description

Citation

Publisher

License

CC0 1.0 Universal
Queen's University's Thesis/Dissertation Non-Exclusive License for Deposit to QSpace and Library and Archives Canada
ProQuest PhD and Master's Theses International Dissemination Agreement
Intellectual Property Guidelines at Queen's University
Copying and Preserving Your Thesis
This publication is made available by the authority of the copyright owner solely for the purpose of private study and research and may not be copied or reproduced except as permitted by the copyright laws without written authority from the copyright owner.

Journal

Volume

Issue

PubMed ID

External DOI

ISSN

EISSN