Я ищу инструмент, который может генерировать make-файл для проекта C / C ++ для разных компиляторов (gcc, microsoft vc ++, borland и т. Д.) И разных платформ (Win, Linux, Mac).
Другие предложения, которые вы можете рассмотреть:
Scons - это кросс-платформенная библиотека для кросс-компиляции, использующая Python scruipting для систем сборки. Используется в самых разных крупных проектах и очень хорошо работает.
Если вы используете 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 ++, динамическая библиотека 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 или заменить систему сборки? Проблема с системами замены сборки заключается в том, что вы обычно не получаете хорошую интеграцию 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.
- широко документировано.
- поддерживает параллельные сборки.
- быстрый.
Я не знаю, есть ли у вас интерес к этому вопросу. Я работаю над аналогичной проекцией автогенератора Makefile под названием CodeMate , разработанной с использованием Ruby. Может быть, он не настолько зрелый для больших приложений сейчас, но я буду продолжать работать над этим, чтобы сделать его лучше. Пользователям не нужно редактировать какой-либо файл конфигурации для сборки программного обеспечения, или, по крайней мере, так должно быть. Кривая обучения должна быть сведена к минимуму.