какой-нибудь хороший инструмент для создания make-файлов?

Я ищу инструмент, который может генерировать make-файл для проекта C / C++ для разных компиляторов (gcc, microsoft vc ++, borland и т. Д.) И разных платформ (Win, Linux, Mac).

Ответов (10)

Решение

Другие предложения, которые вы можете рассмотреть:

  • Scons - это кроссплатформенная библиотека сборки с кросс-компилятором, использующая скрапирование Python для систем сборки. Используется во множестве крупных проектов и очень хорошо работает.

  • Если вы используете Qt, QMake - тоже хорошая система сборки.

  • CMake тоже довольно милый.

  • Наконец, если ничего не помогает ...

Вы пробовали автоматический генератор Makefile?

Он поддерживает следующие компиляторы:

Borland 3.1 
Borland 5.0 
Borland 5.0, 16 бит 
Borland 5.5 
Borland 5.6 
Borland 5.8 
CC 
GNU g ++ 
Gnu g ++, динамическая библиотека 
Intel 5, 6, 7 для Linux 
Intel 5, 6, 7 для Linux, динамическая библиотека 
Intel 5, 6, 7 для windows 
Intel 8,9,10 для Linux 
Intel 8,9,10 для Linux, динамическая библиотека 
Intel 8,9 для windows 
Intel 10 для windows 
Visual C++ 5 
Visual C++ 6, 7, 7.1 
Visual C++ 8 
Откройте Watcom 
Watcom 10A 
Watcom 10A, 16 бит 

Я также второй CMake. Я довольно давно использую его в многоплатформенном проекте и очень им доволен.

Не знаю, интересует ли вас этот вопрос больше. Я работаю над аналогичной проекцией автогенератора Makefile под названием CodeMate , разработанной с использованием Ruby. Возможно, сейчас он не настолько зрел для большого приложения, но я буду продолжать работать над ним, чтобы сделать его лучше. Пользователям не нужно редактировать какой-либо файл конфигурации для сборки программного обеспечения, или, по крайней мере, так должно быть. Кривая обучения должна быть сведена к минимуму.

Один вопрос, который следует рассмотреть: хотите ли вы создателя "make-файла" или замену системы сборки? Проблема с заменяющими системами сборки заключается в том, что вы обычно не получаете хорошей интеграции IDE для платформ, пользователи которых этого ожидают (Visual C++). Если вам нужен создатель make-файла вместо замены системы сборки, взгляните на MPC . Это бесплатно и с открытым исходным кодом.

Раньше я успешно использовал Bakefile . Это довольно просто и, кажется, работает хорошо.

Автоматическая генерация (M | m) akefiles заставляет меня беспокоиться о том, что вы здесь пытаетесь сделать.

Вы понимаете, что происходит под обложкой, когда вы печатаете make? Или gmake? Я спрашиваю только потому, что если вы этого не сделаете, когда что-то сломается, например, если новые изменения кода не будут включены в сборку, вам будет сложно разобраться в том, что произошло.

Чтобы начать понимать make, могу я предложить прочитать « Управление проектами с помощью GNU Make » Роберта Мекленберга. В первых главах рассказывается, как работает программа make. Услышать, что make - это обратная цепочка, - одна из самых важных вещей, которые вы можете сделать.

Если вы этого не сделаете, и ваша система будет работать, тогда вы станете, используя термин прагматичных программистов, « программированием по совпадению ». (-:

Кстати, отличные статьи доступны на их сайте! И я не связан с ними. YMMV. Яда-яда ...

CMake - единственный инструмент, который может фактически генерировать реальные проекты Visual Studio (то есть не «Makefile» -проекты, которые обращаются к внешнему инструменту), и который автоматически воссоздает проекты при изменении входного файла сборки (CMakeLists.txt).

Проблемы производительности SCons хорошо известны и активно обсуждаются в списках рассылки SCons.

Я бы проголосовал за OMake . Он устраняет все мои жалобы на GNU make:

  • это полноценный язык.
  • использует MD5 вместо меток времени.
  • предоставляет минимальную оболочку, которая реализует наиболее полезные команды unix на всех платформах: find, sed, awk и т. д.
  • работает с путями в стиле unix или dos.
  • широко задокументирован.
  • поддерживает параллельные сборки.
  • быстро.

Недавнее добавление к списку замен make - waf . Судя по личному опыту, SCONS очень хорошо справляется со своей задачей.