Существует ряд систем сборки, которые могут использовать Lua, основанные на Lua или даже реализованные на Lua. Некоторые из них перечислены в Lua User's Wiki .
Из перечисленных в вики, Bou был явно вдохновлен Рейком. Его автор заметил, что название "озеро" уже использовалось для другой системы сборки во время запуска проекта, но не предоставил ссылку, поэтому я понятия не имею, с чем это могло быть связано. С тех пор Бо был переименован в Озеро и переехал в новый дом.
Lake - постоянный автор сообщества Lua, Стив Донован. Как и Bou, он реализован почти на чистом Lua (для доступа к файловой системе он зависит от LuaFileSystem ). Вместо того, чтобы действовать как фильтр для создания файлов проекта Makefile или IDE, он управляет компиляторами напрямую на основе описаний проектов, написанных на Lua. Проекты сборки описаны на DSL (предметно-ориентированный язык), который включает в себя доступ ко всему Lua для обработки особых случаев.
"Официальные" бинарные выпуски Lua все происходят из системы под названием tecmake , созданной в Tecgraf, как и сама Lua. Tecmake реализован поверх make через скрипт оболочки и общий набор правил Makefile, реализующих его соглашения. Это хорошо работает для них, но лично мне никогда не удавалось заставить его работать в моей системе. В настоящее время ведется работа по смещению сборок LuaBinaries от причуда techmake.
LuaRocks использует Lua для описания требований к сборке, написан почти полностью на Lua и предназначен для интеграции с распределенным приложением, чтобы приложения могли самообновляться. Насколько я понимаю, одна из целей LuaRocks состоит в том, чтобы позволить сборке проектов использовать свои независимые от платформы "рок" файлы, а использование LuaRocks для создания персонального проекта, безусловно, упростит его публикацию для более широкого распространения позже.
И как запасной вариант, всегда можно использовать Lua как еще один инструмент для расширения сборки на основе make-файла. Я использовал его таким образом для предварительной обработки задач, которые в противном случае я мог бы делегировать awk или perl, например, для сбора сведений из текущей версии fossil в моем построенном проекте.
Обновление:
И с течением времени знание улучшается. Как заметил Victor T в комментарии, Steve's Lake на самом деле является тем же проектом, который получил название Bou. Очевидно, что все возражения против названия «Озеро» исчезли, и я просто не заметил, что это был один и тот же инструмент. Я отредактировал исходный ответ и его обновление, чтобы лучше отразить мое текущее понимание.