Альтернативы Autoconf и Autotools?

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

m4 НЕ ЛИСП, черт!

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

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

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

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

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

И так далее.

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

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

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

Существует множество альтернативных генераторов Makefile и систем сборки:

  • CMake
  • Scons
  • Waf
  • Boost Build (aka BJam, C ++)

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

  • Premake
  • Ant (для Java)
  • Рейк (для Руби)
  • (Определенно больше, я просто не знаю их всех …)

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

Как насчет простого использования Make и pkg-config ?

Вот шаблон Makefile, чтобы вы начали.

Меньше – больше людей.

Еще одна автозамена – mk-configure . Документы можно найти здесь

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

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

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