Подтвердить что ты не робот

Альтернативы для linux/freebsd?

Какие альтернативы make для linux/freebsd?

4b9b3361

Ответ 1

Мне нравится SCons. Он построен таким образом, что каждый файл сборки script (a SConstruct) также является синтаксически действующей программой Python. Таким образом, вы можете создать произвольную логику Python в своей сборке script, если вам нужно.

Он также намного быстрее, чем make и автоматически вычисляет многие виды зависимостей.

Ответ 2

Мой первый вопрос будет, какова аудитория. Это для создания собственного программного обеспечения, которое будет строить только ваша команда? Если да, изучите некоторые из уже представленных вариантов. Если это то, что другие будут строить, либо придерживаться make, либо использовать инструмент, создающий make файл и отправляющий их. Мы используем autoconf и automake для Linux и других платформ unix. На мой взгляд, вам нужна очень хорошая причина сделать что-то другое, кроме configure; делать; сделать установку. У Boost есть свой инструмент (модифицированная версия Jam), и это раздражает меня каждый раз, когда мне нужно попытаться собрать его на необычной машине.

Ответ 3

cmake и imake являются утилитами построения, хотя Imake больше не поддерживается. Cmake также является кросс-платформенным и может также использоваться в Windows.

Если вы находитесь в java, ANT - это инструмент сборки, ориентированный на Java (который на самом деле не очень хорошо играет с Make).

Troll tech создаст инструмент под названием qmake, который они используют для построения QT. Он работает, создавая make файлы - Troll нужен инструмент для поддержки кросс-платформенной сборки, поэтому вам все равно нужна другая утилита make.

Ответ 5

Если вы ищете что-то совершенно другое, Ant. Я не заинтересован в этом сам, но он предлагает некоторые преимущества переносимости (не полагаться на оболочку unix и т.д.).

Ответ 6

Я слышал хорошие вещи о Jam.

Ответ 7

OMake - это инструмент сборки для C/С++, OCaml и LaTeX с автоматическим анализом зависимостей. Он легко может создавать проекты по нескольким каталогам, и он находит изменения, основанные на сумме MD5, а не на временной отметке. Он также имеет режим, в котором его можно запускать в фоновом режиме, создавая проект каждый раз, когда файл изменяется. Как правило, для создания общих видов проектов (C/С++ или OCaml-программ и библиотек) требуется меньше кода, чем make. Я не пробовал это для больших проектов.

Обратите внимание, что если вы хотите запрограммировать в OCaml, этот инструмент действительно полезен, поскольку компоновщик OCaml требует, чтобы скомпилированные модули отображались в командной строке в порядке зависимостей, и каждый раз, когда что-то изменилось, нетривиально./p >

Ответ 8

Я использовал CMake для моих проектов, включая портирование некоторых на основе autotools, и могу сказать, что он очень хорошо работает. Он в основном подходит для кросс-платформенных проектов C/С++.

Ответ 9

Проект, над которым я работаю, унаследовал некоторый код, который использует Cons вместо Make (не путать с SCons в ответе Грега Хьюглилла).

Cons написан на Perl, так как SCons написан на Python. Он автоматически управляет зависимостями, и вы можете использовать любой код Perl внутри сборки script для обработки сложных последовательностей сборки.

Основной недостаток (и главная причина, по которой мне жаль, что мой проект использует его) заключается в том, что Cons не выполняет параллельные сборки в стиле make -j. Если вы компилируете несколько файлов, которые не зависят друг от друга, Cons будет компилировать их по одному, а make -j будет скомпилировать их параллельно, что отлично, если у вас несколько ядер и потоков на вашем машина.

Ответ 10

Другой вариант для кросс-платформенных построений - kmake (часть kbuild, своими словами: kBuild - это каркас makefile для написания простых make файлов для сложных задач.). Это расширенная версия GNU make. Он разработан пользователями VirtualBox. Они используют его для создания своего продукта VirtualBox для Windows, Linux, MacOS и Solaris. Довольно портативный!

Подробнее см. http://svn.netlabs.org/kbuild.

Ответ 11

WAF - интересная альтернатива. Написанный на python, он позволяет вам писать логику сборки на простом Python. Параллельные сборки + полуавтоматическая магия на основе зависимостей отслеживания зависимостей работают достаточно хорошо. Он предположительно кросс-платформенный (то есть знает, как делать сборки на Windows), но я этого не пробовал.

У него довольно крутая кривая обучения, но она также поставляется с "Книга WAF" , чтобы помочь в этом процессе.