Введение

Perforce Jam — это система сборки с открытым исходным кодом, разработанная Кристофером Сейвальдом из Perforce Software. Она использовалась как замена утилиты make. Её основной особенностью была возможность описывать правила сборки на императивном языке, поддерживающем структурированные пространства имен (подобные структурам в Паскале) и простые списки. Jam можно было использовать совместно с autoconf, хотя благодаря возможностям переносимости Jam это часто оказывалось излишним. Perforce Jam работала в операционных системах Unix (включая множество её клонов), OpenVMS, Windows NT (включая Windows 2000 и Windows XP), Mac OS и BeOS. Также была возможность настроить её для работы в Windows 9x с использованием MinGW или Cygwin. Компания объявила, что версия 2.6, выпущенная в августе 2014 года, стала последним релизом Perforce Jam.

FT Jam (Фита-Джам)

FT Jam — популярный вариант, полностью обратно совместимый, хотя его функции интегрируются в Perforce Jam. Пользователи FT Jam часто называют Perforce Jam "Classic Jam".

Поднимите . Затормози .

Библиотеки Boost C++ используют вариант Jam под названием "Boost.Jam" (или "BJam"). Он несовместим с другими вариантами и не является самостоятельным инструментом, а является частью системы сборки Boost.Build.

Хайку джем

Haiku Jam — это модифицированная версия Jam от Perforce, используемая в Haiku.

JamPlus

JamPlus добавляет новые возможности в Jam и включает в себя ряд исправлений из списка рассылки Jamming и публичного репозитория Perforce.

Джамбаза

Jam поставляется с набором правил, называемых "Jambase", которые определяют правила для сборки различных объектов. Jambase "умна" и, например, знает, что если изменен файл заголовка, все файлы, которые его включают, необходимо перекомпилировать. В отличие от makefiles, автору Jamfile не требуется управлять этими зависимостями, достаточно лишь перечислить файлы исходного кода. Jambase обычно компилируется непосредственно в исполняемый файл. Jambase печально известна среди пользователей Jam своими ошибками и низкой частотой включения исправлений в дистрибутив, хотя большинство ошибок не являются критичными. Существуют пакеты, такие как AutoJam, разработанные для решения некоторых проблем Jambase.