Erstellungsprozess
# Erstellungsprozess

Erstellungsprozess oder Build-Prozess (von englisch to build „bauen“) bezeichnet in der Softwareentwicklung einen Vorgang, durch den ein fertiges Anwendungsprogramm automatisiert erzeugt wird.

## Ablauf

Der Erstellungsprozess besteht typischerweise aus der Code-Kompilierung und dem Linken des kompilierten Codes an Bibliotheken.

Da ein Erstellungsprozess automatisiert ausgeführt wird, benötigt das ausführende Erstellungsprogramm eine formale Beschreibung der durchzuführenden Programm- oder Funktionsaufrufe (Compiler, Linker etc.) sowie der Abhängigkeiten dieser Aufrufe untereinander. Die Abhängigkeitsbeschreibung orientiert sich an der Struktur eines Erstellungsprozesses. So lassen sich zum Beispiel Abhängigkeiten auf Basis der verwendeten Dateiendungen definieren. Beispielsweise kann man definieren, dass jede C-Datei (erkennbar an der Endung „.c“) in eine Objektdatei (erkennbar an der Endung „.o“) gleichen Namens, aber mit anderer Endung, umgewandelt werden soll.

Um den Vorgang zu beschleunigen, ist es sinnvoll, nur solche Operationen durchzuführen, deren Eingabedaten sich seit der letzten Durchführung verändert haben. Das heißt, eine Objektdatei braucht nur dann neu erzeugt zu werden, wenn sich eine der korrespondierenden Quelldateien verändert hat.

Abhängigkeiten können auch zwischen Dateien gleichen Typs bestehen, wenn zum Beispiel eine Quelldatei andere Quelldateien „importiert“, sie also automatisch eingefügt werden. Ebenso ist es möglich, Quelldateien mit Hilfe von Code-Generatoren generieren zu lassen.

## Erweiterter Prozess

Neben dem ausführbaren Anwendungsprogramm können auch andere Produkte, wie zum Beispiel ein Installationsprogramm oder technische Dokumentation erzeugt werden.

In komplexen Softwareentwicklungsumgebungen ist die Einrichtung, Beschreibung und Pflege von Erstellungsprozessen Teil des Build-Managements.

## Liste von Programmen

Programme zur Durchführung von Erstellungsprozessen sind

* die unter Unix verbreiteten Programme make, CMake und Automake
* das Java-Programm Apache Ant.
* das Java-Programm Apache Maven.
* das Java|Groovy-Programm Gradle.
* das Ruby-Programm Rake
* das Open-Source Buildsystem Buildroot.
* MSBuild für .NET-Anwendungen
