Вопрос

Какие есть альтернативы делать для Linux/FreeBSD?

Это было полезно?

Решение

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

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

Другие советы

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

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

Если вы увлекаетесь Java, МУРАВЕЙ — это инструмент сборки, ориентированный на Java (который не очень хорошо работает с Make).

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

Automake :p, который обычно используется в большинстве дистрибутивов приложений Linux, но дает немного больше работы, чем Makefile, но дает лучшие результаты. http://www.gnu.org/software/automake/

http://www.openismus.com/documents/linux/automake/automake.shtml <-- хорошее объяснение того, как использовать automake и autoconf

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

Я слышал хорошие отзывы о Варенье.

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

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

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

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

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

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

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

Видеть http://svn.netlabs.org/kbuild для получения подробной информации.

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top