[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