HOME

TheInfoList



OR:

Perforce Jam was an
open-source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
build system developed by Christopher Seiwald of
Perforce Software Perforce, legally Perforce Software, Inc., is an American developer of software used for developing and running applications, including version control software, web-based repository management, developer collaboration, application lifecycle mana ...
. It was used as a replacement for
make Make or MAKE may refer to: * Make (magazine), a tech DIY periodical *Make (software), a software build tool *Make, Botswana, in the Kalahari Desert *Make Architects Make Architects is an international architecture practice headquartered in Londo ...
. Its primary feature was its ability to express build patterns in an imperative language which supported structured namespaces (similar to
Pascal Pascal, Pascal's or PASCAL may refer to: People and fictional characters * Pascal (given name), including a list of people with the name * Pascal (surname), including a list of people and fictional characters with the name ** Blaise Pascal, Fren ...
records A record, recording or records may refer to: An item or collection of data Computing * Record (computer science), a data structure ** Record, or row (database), a set of fields in a database related to one entity ** Boot sector or boot record, ...
) and simple
lists A ''list'' is any set of items in a row. List or lists may also refer to: People * List (surname) Organizations * List College, an undergraduate division of the Jewish Theological Seminary of America * SC Germania List, German rugby unio ...
. Jam could be used with
autoconf GNU Autoconf is a tool for producing configure scripts for building, installing, and packaging software on computer systems where a Bourne shell is available. Autoconf is agnostic about the programming languages used, but it is often used for ...
, although it was often not necessary because of Jam's portability features. Perforce Jam ran on
Unix Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and ot ...
(including many clones),
OpenVMS OpenVMS, often referred to as just VMS, is a multi-user, multiprocessing and virtual memory-based operating system. It is designed to support time-sharing, batch processing, transaction processing and workstation applications. Customers using Ope ...
,
Windows NT Windows NT is a proprietary graphical operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems sc ...
(including
Windows 2000 Windows 2000 is a major release of the Windows NT operating system developed by Microsoft and oriented towards businesses. It was the direct successor to Windows NT 4.0, and was Software release life cycle#Release to manufacturing (RTM), releas ...
and
Windows XP Windows XP is a major release of Microsoft's Windows NT operating system. It was released to manufacturing on August 24, 2001, and later to retail on October 25, 2001. It is a direct upgrade to its predecessors, Windows 2000 for high-end and ...
),
Mac OS Two major famlies of Mac operating systems were developed by Apple Inc. In 1984, Apple debuted the operating system that is now known as the "Classic" Mac OS with its release of the original Macintosh System Software. The system, rebranded "M ...
, and
BeOS BeOS is an operating system for personal computers first developed by Be Inc. in 1990. It was first written to run on BeBox hardware. BeOS was positioned as a multimedia platform that could be used by a substantial population of desktop users a ...
. It was also possible to configure it to work on
Windows 9x Windows 9x is a generic term referring to a series of Microsoft Windows computer operating systems produced from 1995 to 2000, which were based on the Windows 95 kernel and its underlying foundation of MS-DOS, both of which were updated in subs ...
using
MinGW MinGW ("Minimalist GNU for Windows"), formerly mingw32, is a free and open source software development environment to create Microsoft Windows applications. MinGW includes a port of the GNU Compiler Collection (GCC), GNU Binutils for Windows ...
or
Cygwin Cygwin ( ) is a POSIX-compatible programming and runtime environment that runs natively on Microsoft Windows. Under Cygwin, source code designed for Unix-like operating systems may be compiled with minimal modification and executed. The Cygwin in ...
. The company announced that version 2.6 released in August 2014 was the last Perforce Jam release.


Popular variants of Jam


FT Jam

FT Jam is a popular variant and fully
backward compatible Backward compatibility (sometimes known as backwards compatibility) is a property of an operating system, product, or technology that allows for interoperability with an older legacy system, or with input designed for such a system, especially i ...
, although its features are being integrated into Perforce Jam. Users of FT Jam often refer to Perforce Jam as "Classic Jam".


Boost.Jam

The
Boost C++ Libraries Boost is a set of libraries for the C++ programming language that provides support for tasks and structures such as linear algebra, pseudorandom number generation, multithreading, image processing, regular expressions, and unit testing. It conta ...
is using a Jam variant called "Boost.Jam" (or "BJam"). It is incompatible with other variants, and is not a standalone tool, but part o
Boost.Build


Haiku Jam

Haiku Jam is a custom fork of Perforce's Jam used by
Haiku is a type of short form poetry originally from Japan. Traditional Japanese haiku consist of three phrases that contain a ''kireji'', or "cutting word", 17 '' on'' (phonetic units similar to syllables) in a 5, 7, 5 pattern, and a ''kigo'', or se ...
.


JamPlus

JamPlus adds new features to Jam and integrates a number of patches from the Jamming mailing list and the Perforce Public Depot.


Jambase

Jam comes with a set of rules called "Jambase", which define rules for building various things. Jambase is "smart" and knows, for instance, that if a
header file Many programming languages and other computer files have a directive, often called include (sometimes copy or import), that causes the contents of the specified file to be inserted into the original file. These included files are called copybooks ...
is modified, all files that include it must be rebuilt. Unlike with makefiles, the writer of the Jamfile need not manage these dependencies, only list the source code files themselves. Jambase is usually compiled into the executable file itself. Jambase is notorious{{Citation needed, date=April 2010 among Jam users for its bugs and the infrequency with which fixes are integrated into the distribution, though few bugs are critical. There are some packages such as AutoJam designed to solve some of the problems of Jambase.


License

Jam was
open-source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
.


See also

* Boost — includes a package called Boost.Build, which uses a special version of Jam called Boost.Jam *
Perforce Perforce, legally Perforce Software, Inc., is an American developer of software used for developing and running applications, including version control software, web-based repository management, developer collaboration, application lifecycle man ...
— the main product of
Perforce Software Perforce, legally Perforce Software, Inc., is an American developer of software used for developing and running applications, including version control software, web-based repository management, developer collaboration, application lifecycle mana ...
, a commercial, proprietary revision control system


References


External links


Perforce Software



FT Jam



Haiku Jam Guide

AutoJam, a set of rules for the Jam build tool

Boost.Build, a build system originally based on Jam

JamPlus
Compiling tools
Jam Jam is a type of fruit preserve. Jam or Jammed may also refer to: Other common meanings * A firearm malfunction * Block signals ** Radio jamming ** Radar jamming and deception ** Mobile phone jammer ** Echolocation jamming Arts and entertai ...