Альтернативы Autoconf и Autotools? [закрытый]


Я очень частый пользователь GNU Autotools (главным образом Autoconf, иногда Libtool). Я работаю над проектом, где переносимость будет камнем преткновения.. Тем не менее, остальная часть команды просто не комфортно работать с m4. Я получил этой в моем почтовом ящике от не одного, а четырех человек:

в любом случае, возможно, кто-то может порекомендовать что-то на основе Python или PHP? Я работаю на конце C гораздо большего дерева; я могу быть уверен, что либо Python, либо PHP 5 будут присутствовать, поскольку они являются предпосылками.

9 52

9 ответов:

Я слышал хорошие вещи о CMake которая пытается решить те же проблемы. здесь статья Википедии

Я рискую быть пониженным, но, я должен признать, что, к сожалению, нет реальной замены для autotools. CMake, SCons, bjam хороши, но, когда дело доходит до серьезной работы... совершенно ясно, что autotools превосходят, не потому, что CMake не может сделать то же самое, а потому, что это просто намного сложнее сделать с ним.

например, CMake, самая популярная альтернатива autotools, имеет следующие недостатки:

  • нет поддержки gettext. Это может быть реальной проблемой, когда вам нужно управлять большим количеством переводов и переведенного исходного кода.
  • нет поддержки для удаления цель. Довольно неприятно узнать, что вы не можете удалить установленную программу.
  • нет автоматической сборки и общие и статические библиотеки.
  • документация очень общества и плохо.

и так далее.

есть много других точек. К сожалению, нет никакой реальной замены высокого качества для autotools. С другой стороны, если вы разрабатываете на Windows и для Visual Studio, то вы не можете использовать autotools и вам нужно выбрать CMake, который предоставляет такие инструменты.

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

SCons-это инструмент построения программного обеспечения с открытым исходным кодом, то есть инструмент сборки следующего поколения. Подумайте о SCons как о улучшенной кросс-платформенной замене классического Make утилита со встроенной функциональностью, похожей на autoconf/automake и кэш компилятора ccache. Короче говоря, SCons-это более простой, надежный и быстрый способ создания программного обеспечения.

есть много различных альтернативных генераторов Makefile и строить системы там:

также доступны, но не строго ориентированы на C / C++:

  • Premake
  • АНТ (для Java)
  • грабли ("Рубин")
  • (наверняка больше, я просто не знаю их всех...)

но после перечисления все, от Autotools имеют большое преимущество, не требуя каких-либо других зависимостей для конечного пользователя. Сценарий настройки генерируется разработчиком только один раз и не требует ничего особенного на стороне пользователя, так как это сценарий оболочки. Перечисленные выше инструменты должны быть установлены до того, как кто-либо сможет создать ваш источник, и они даже могут иметь зависимости сами по себе.

Как насчет просто с помощью Make и pkg-config?

здесь шаблон Makefile чтобы вы начали.

меньше людей.

еще один авто* замена - МК-настроить. Документы можно найти здесь

Я посмотрел на CMake, который выглядит как хорошая альтернатива, если вы не кросс-компиляция. Если вы делаете собственную компиляцию, вы должны попробовать его

в Mozilla создается версия make на python -pymake - который предположительно поддерживает кросс-платформенное использование.

для создания программного обеспечения C / C++ от ANT или maven вас может заинтересовать Терп. Он включает в себя переносную задачу компилятора C++, которая работает со многими компиляторами C++ на многих платформах.