Kim Herzig

LUA Make (Bachelor Thesis)

Make as a tool to control the software build process was introduced in 1979 and since then is the predominant tool for this task. Unlike then, software projects today are usually spread over multiple directories — a situation for which Make was not designed. As a consequence, the current practice of using Make recursively leads to problems: incomplete dependency speciﬁcations cause builds to fail or to contain subtle errors. This thesis analyzes the problem and derives from it a prototype for a new build tool called LUA Make. The result is an extensible build tool that uses a single, complete dependency graph and oﬀers new abstractions: functions, close interaction between makeﬁle and shell scripts, and scopes. Building open-source projects with LUA Make showed that the concepts and ideas behind LUA Make are capable to handle large software build processes, independent from the structure of the pro ject. We are thus conﬁdent that ideas explored in this thesis point into the right direction.