lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


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