Я — разработчик и в качестве основного языка последние пару лет использую Python. Однако время от времени появляются задачи, когда нужно писать на C/C++. Существуют разные системы, с помощью которых можно собирать такие проекты. Классикой являются make и autotools. Я же хочу заострить внимание на таких альтернативах, как
SCons и
Waf. Целью поста не является доказательство того, что они лучше или хуже make. Хочется просто провести короткий экскурс, чтобы стало приблизительно понятно что это, зачем это и как с этим начать работать.
Чтобы разговор был предметным, предлагаю рассмотреть системы на практике. Я решил использовать простенький проект, в котором необходимы типовые, но не всегда тривиальные задачи сборки. Будем делать простенький web-сервер, цель которого: выдавать статичную страницу, которая готовится в отдельном html файле, но которая в итоге должна быть встроена в исполняемый файл. То есть на стадии сборки по html-коду должен быть собран исходник с си-кодом. В качестве серверной библиотеки используем
mongoose, исходники которого положим внутрь проекта и будем собирать их в статическую библиотеку, которую в последствии будем прилинковывать к исполняемому файлу. Думаю, задача понятна.