Использую CMake. Потому что это первое, что осилил.
CMake не устраивает тем, что не приучает ни к какому из стандартов. Те же autotools соответствуют GNU-стандарту для системы сборки (предоставление целей dist, distclean, check, ...), хотя многим (и мне) autotools кажется сложнее CMake.
С кроссплатформенностью в CMake проще на первый взгляд, хотя у autotools (сейчас в Википедии глянул) есть вроде бы удобные способы кросскомпиляции.
В общем, сам я постоянно думаю о других системах сборки, но с CMake как-то пока живу.
для опенсорс проектов использую autotools, потому что на все случаи жизни есть готовые макросы, и куча проектов где подсмотреть как что делать. ну и потому что юзеру кроме make для сборки не надо никакие cmake/qmake/scons/python и пр. устанавливать, и разбираться как их запускать. но порог вхождения для девелопера высок, и граблей немало, которые придется учиться обходить.
для очень мелких проектов просто make. потому что просто и быстро.
кроссплатформенного не бывает — везде что-то надо допиливать, или вообще использовать специальные системы сборки (например, на ведроиде).
Господа, современные autotools очень просты, особенно с non-recursive make
autoscan всё сделает за вас, синтаксис Makefile.am поймёт даже дебил, а libtool позволит забыть про туеву хучу компиляторов и линкеров. И у вас всегда есть возможность воспользоваться грубой силой под названием shell code.
Колотить. gmake не нужен для automake, он генерирует совершенно тупые make-файлы, и грязно ругается, если в Makefile.am есть что-то непортируемое.
Не знаю как CL (common lisp?), но libtool - первую очередь для сборки библиотек из C, C++ и Fortran - в общем, всё, что компилируется. А для остальных языков (perl, python, node.js, etc) есть специализированные средства - и это правильно.
А я что написал? Нет, я понимаю, что читать на лоре не модно изначально, но не до такой же степени.
он генерирует совершенно тупые make-файлы
Которые nmake всё равно не поймёт, ага? Насколько я помню, добавление его поддержки загнулось на этапе обсуждения со словами «nmake на винде — не самая большая проблема с автотулами. Если уж надо ставить sh, sed, awk и тонну всякого — то поставить gmake тем паче не проблема». Напоминаю, что году так в 2001, например, в automake не было поддержки BSD make.
Не знаю как CL (common lisp?), но libtool - первую очередь для сборки библиотек из C, C++ и Fortran - в общем, всё, что компилируется
С чего вдруг cl.exe (не CL, а cl.exe) ВНЕЗАПНО стал лиспом-то?
Нормально, это как? И кто говорит? В MSVC можно будет открыть все это добро сгенерированное из autotools и пользоваться удобствами вроде Visual Assist и запуска под отладчиком?
Зачем кодогенератор? Плюсового кода уже и так «нагенерировали» очень много, нужно теперь его поддерживать и развивать дальше. «Все эти Ассисты» и удобный отладчик нужны для того, чтобы быстрее разбираться в уже имеющейся куче кода. Без хорошей навигации по коду разбираться придется очень долго. Иметь хорошую документацию по коду тоже неплохо, но она не далеко не всегда имеется в наличии.
Другой язык - не вариант, переписать уже имеющееся будет очень дорого стоить. Да и другие языки не особо подходят на замену C++ в этой области.