[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: [ANN] luamake
- From: Wesley Smith <wesley.hoke@...>
- Date: Mon, 14 Sep 2009 00:17:20 +0200
hi list,
I'm releasing luamake, a purely Lua build tool (except for the
LuaFileSystem dependency, which is included). This is an OSX and
Linux only system as of now. If you're on Windows, all I can say is
sorry, but I have no plans of adding windows. Submissions welcome
however. I've been using luamake for Linux development of a fairly
involved Lua application (LuaAV) for a few months now and it has been
extremely useful. From the README:
Luamake is a platform independent configuration and build system that
using the standard Lua command-line interpreter. Only one binary has
to be built before it can be used: LuaFileSystem (lfs). Otherwise,
Luamake is entirely made of Lua scripts. The goal is to develop a
straightforward data description format for cross-platform
configuration and compilation of Lua modules, shared and static
libraries, as well as applications. Luamake consists of the following
modules:
- for configuration:
autoconf.lua
- high-level interface:
luamake.lua
- for data description:
project.lua
path.lua
config.lua
dependency.lua
src.lua
- for platform independence (the only platform-specific module):
platform.lua
- general utilities:
buildutils.lua
I've provided a vanilla build script to start from and a few example
project files for LuaTask (simple) and LuaSocket (more complicated)
You can get a flavor of the data description format here:
http://www.mat.ucsb.edu/projects/luaAV/browser/luamake/examples/projects/luatask.lua
http://www.mat.ucsb.edu/projects/luaAV/browser/luamake/examples/projects/luasocket.lua
A common idiom used in project files for the luamake system when
choices between specific platforms are required is as follows:
({OSX = "osx data", LINUX = "linux data"})[OS]
where OS is a variable derived from the autoconf module. The autoconf
module compiles small snippets of C/C++ code and runs the resulting
binary to get configuration variables such as platform and 32/64
bit-ness. Instructions are in the README for how to start. It's
basically:
cd luamake/src
make
cd ..
lua build.lua examples/build.settings.lua
--------------------------------------------------------------------------------------------
Download:
http://lua-av.mat.ucsb.edu/downloads/luamake.zip
Source:
svn co https://svn.mat.ucsb.edu/svn/luaAV/luamake
wes