Perforce Jam

from Wikipedia, the free encyclopedia

Perforce Jam is an open source build system written by Christopher Seiwald at Perforce Software. It can be used as a substitute for make . Jam runs on Unix (including many derivatives), OpenVMS , Linux , Windows NT , and Mac OS . Jam also runs on Windows 9.x using MinGW or Cygwin . Like make, it can also be used with Autoconf . However, thanks to Jam's portability, this is not always necessary.

A build system is responsible for the automatic translation of computer programs. It calls the respective compilers and linkers under different systems . In addition, necessary files are copied or generated. Automatic installation / deinstallation or the generation of a download package for end users are also often offered.

Advantages over make

  • Jam files , i.e. the rules for compiling the program, are usually portable, which means that they can be run on all supported systems without modifications.
  • Dependencies do not need to be explicitly specified, Jam will automatically find them in the C ++ or other supported source files.
  • The language is very simple and clear. Jam files are considerably shorter than makefiles.
  • The so-called jambase , which contains the supplied rules, has a lot of convenient rules, which have to be written in make or generated with Automake .
  • The language can be expanded as required, and rules from the jambase can also be overwritten.

language

The language of Jam has some peculiarities. All language components must be separated with a space, otherwise they would be interpreted as part of a character string, the only data type in Jam. So-called actions can be used to execute bash or batch code within the jam file .

A simple jamfile:

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

use

The jam command is called in the root directory of the software project . In doing so, the Jamfile file including all the files integrated in it is first read out and then the necessary steps to compile the program are carried out. A specific Jamfile with -f filename or a desired target can be specified as command line parameters . With these targets z. B. only a certain part of the program can be translated. Jam install is usually called to install the program .

variants

FT Jam is fully backwards compatible with Perforce Jam. It has additional built-in rules and support for more compilers. Windows 9.x is also supported and many blemishes have been fixed.

KJam is a complete rewrite of Jam. It should be more stable, easier and more powerful. KJam supports cross-network compiling, among other improvements.

Boost Jam , also BJam or Boost.Jam, is based on FT Jam and is also backwards compatible with Perforce Jam. It was developed as part of the Boost C ++ Libraries .

Autojam has an expanded jambase with more rules.

Haiku Jam is used by Haiku (operating system) by default .

Platinum C ++ Jam also Pt-Jam. It was developed as part of the Platinum C ++ Framework .

JamPlus adds new features to the original Perforce version of Jam and has been expanded to include patches from the Jamming mailing list and the Perforce Public Depot.

Web links