Il existe un certain nombre de systèmes de construction qui peuvent utiliser Lua, basés fortement sur Lua ou même implémentés dans Lua. Certains d'entre eux sont répertoriés au Lua User's Wiki.
Parmi ceux listés sur le wiki, Bou a été explicitement inspiré par Rake. Son auteur a observé que le nom «lac» était déjà utilisé pour un autre système de construction au moment où le projet a été lancé, mais il n'a pas fourni de lien, donc je n'ai aucune idée de ce à quoi il a pu être associé. Depuis ce temps, Bou a été renommé Lake et a déménagé dans une nouvelle maison.
Lake est la création d'un collaborateur régulier de la communauté Lua, steve donovan. Comme Bou était, il est implémenté dans Lua presque pur (cela dépend de LuaFileSystem pour l'accès au système de fichiers). Plutôt que d'agir comme un filtre pour créer des fichiers de projet Makefile ou IDE, il pilote les compilateurs directement en fonction des descriptions de projet écrites en Lua. Les projets de construction sont décrits dans un DSL (langage spécifique au domaine) qui inclut l'accès à tous les Lua pour gérer des cas spéciaux.
Les "officiels" binary releases de Lua proviennent tous d'un système appelé tecmake provenant de Tecgraf comme Lua lui-même. Tecmake est implémenté sur make, via un script shell et un ensemble commun de règles Makefile implémentant ses conventions. Cela fonctionne bien pour eux, mais personnellement, je n'ai jamais réussi à le faire fonctionner sur mon système. Il y a du travail en cours pour déplacer les constructions de LuaBinaries loin des bizarreries de techmake.
LuaRocks utilise Lua pour décrire les exigences de construction, est écrit presque entièrement en Lua, et est destiné à être intégré à une application distribuée afin que les applications puissent être mises à jour automatiquement. Si je comprends bien, l'un des objectifs de LuaRocks est de permettre à la création de projets d'utiliser leurs fichiers «rock» indépendants de la plate-forme, et utiliser LuaRocks pour créer un projet personnel le rendrait plus facile à publier plus tard.
Et comme solution de repli, il est toujours possible d'utiliser Lua comme un autre outil pour étendre une construction pilotée par un makefile. Je l'ai utilisé de cette façon pour les tâches de pré-traitement que j'aurais autrement déléguées à awk ou perl, comme la collecte des détails de la révision actuelle fossil dans mon projet construit.
Mise à jour:
Et comme le temps passe, l'amélioration des connaissances. Comme observé par Victor T dans un commentaire, Steve's Lake est en fait le même projet qui a été nommé Bou. Apparemment, toutes les objections au nom de "Lake" s'étaient évanouies, et je n'ai tout simplement pas remarqué qu'il s'agissait d'un seul et même outil.J'ai modifié la réponse originale et sa mise à jour pour mieux refléter ma compréhension actuelle.
Je pense que 'Bou' et 'Lake' se réfèrent au même projet. On dirait que Steve Donovan l'a plus tard rebaptisé plus convenablement 'Lake'. – greatwolf
@Victor, j'ai mis à jour ma réponse. Tu as raison, je ne sais pas comment j'ai raté ça à l'époque. – RBerteig