Heim

Perforce Jam

Perforce Jam ist ein quelloffenes Build-System, geschrieben von Cristopher Seiwald bei Perforce Software. Es kann als Ersatz für make verwendet werden. Jam läuft auf Unix (inklusive vielen Derivaten), OpenVMS, Linux , Windows NT, und Mac OS. Mithilfe von MinGW oder Cygwin läuft Jam auch auf Windows 9.x. Man kann es, genau wie make, auch zusammen mit Autoconf verwenden. Jedoch ist das dank der Portabilität von Jam nicht immer nötig.

Ein Build-System ist für die automatische Übersetzung von Computerprogrammen zuständig. Es ruft unter verschiedenen Systemen die jeweiligen Compiler und Linker auf. Außerdem werden notwendige Dateien kopiert oder generiert. Oft wird auch eine automatische Installation/Deinstallation oder die Generierung eines Downloadpakets für Endnutzer angeboten.

Inhaltsverzeichnis

Vorteile gegenüber make

Sprache

Die Sprache von Jam hat einige Besonderheiten. Alle Sprachbestandteile müssen mit einem Leerzeichen abgetrennt werden, ansonsten würden sie als Teil einer Zeichenkette, dem einzigen Datentyp in Jam, interpretiert werden. Über sogenannte Actions kann innerhalb des Jamfiles bash- bzw. Batch-Code ausgeführt werden.

Ein einfaches Jamfile:

Main hello : hello.cc ;
Library mytools : mytools.cc ;
LinkLibraries hello : mytools ;

Gebrauch

Im Wurzelverzeichnis des Softwareprojekts wird das Kommando jam aufgerufen. Dabei wird dann zunächst die Datei Jamfile inklusive allen darin eingebunden Dateien ausgelesen und danach die notwendigen Schritte zum Übersetzten des Programms ausgeführt. Als Kommandozeilenparameter kann ein bestimmtes Jamfile mit -fDateiname oder ein gewünschtes Target angegeben werden. Mit diesen Targets kann z.B. nur ein Bestimmter Teil des Programms übersetzt werden. Zur Installation des Programms wird gewöhnlich jam install aufgerufen

Varianten

FT Jam ist vollkommen rückwärtskompatibel zu Perforce Jam. Es hat zusätzliche eingebaute Regeln und Unterstützung für mehr Compiler. Außerdem wird Windows 9.x unterstützt und es wurden viele Schönheitsfehler korrigiert.

KJam ist eine komplette Neuschreibung von Jam. Es soll stabiler, einfacher und leistungsfähger sein. KJam unterstützt neben anderen Verbesserungen netzwerkübergreifendes Kompilieren.

Boost Jam, auch BJam oder Boost.Jam, basiert auf FT Jam und ist auch rückwärtskompatibel zu Perforce Jam. Es wurde im Rahmen der Boost C++ Libraries entwickelt.

Autojam bietet eine erweiterte Jambase mit mehr Regeln.