TL; DR : если ваш проект содержит Jamfiles, которые ссылаются на определения, такие как SubDir
из файла Jambase
, не пытайтесь использовать bjam / b2 .Вместо этого используйте ft-jam !
Длинный ответ с дополнительной информацией:
На работе я пытался создать старый пакет программного обеспечения (IngresСУБД 10.1) из источника более двух недель.В его древовидной структуре он содержал файлы Jamfile
и Jamrules
, поэтому я пришел к выводу, что мне придется использовать bjam / b2 , чтобы все заработало.Как оказалось, документация проекта не была достаточно конкретной по этому вопросу.
У меня была одна серьезная проблема: Jamfiles
будет использовать много определений из файла "Jambase
", например "SubDir
"aso Каждый раз, когда я начинал сборку, я получал ошибку" unknown rule
", как вы также можете видеть в вопросе.
Я наконец решил попробовать более старую версию Jam, и вуаля: с ft-jam
v2.5.2 проект скомпилирован без нареканий.Yay!
Итак, теперь все было в порядке, и я мог использовать ft-jam
для своих целей.Но я все еще задавался вопросом, могу ли я также использовать bjam / b2 для компиляции.Какова цель внутреннего определения Jambase (файл "+") и параметра "-f
" в bjam?Это только для начальной загрузки самого b2, или я могу использовать его во время запуска b2?Если да, как мне его активировать?
В конце я написал в список рассылки boost-build
и получил следующий ответ:
b2 - не выпадающий списокзамена для Perforce Jam.Использование ft-jam является правильным вариантом.
Текущий Jambase используется только для начальной загрузки Boost.Build.В более старых версиях b2 была копия оригинального Jambase, которая была бы активирована, если бы исполняемый файл имел имя, отличное от b2 / bjam.Тем не менее, я не рекомендую использовать его, поскольку он полностью не поддерживается.
Ссылка на почтовую ветку