2013-11-16 14:18 GMT+01:00 François Perrad <francois.per...@gadz.org>: > BuildRoot (http://buildroot.net/) makes easy to generate a complete > embedded Linux system. > So it's about package management and cross compilation. > BuildRoot is a set of Makefiles, patches and Kconfig (configuration > language from the Linux kernel). > Currently, BuildRoot (2013.11-rc1) supports Lua 5.1.5, LuaJIT 2.0.2 > and 20 Lua modules. > > BuildRoot supports various infrastructures for adding new packages. > See lua-ev with the CMake infrastructure, > http://git.buildroot.net/buildroot/tree/package/lua-ev/lua-ev.mk > See luaposix with the autotools infrastructure, > http://git.buildroot.net/buildroot/tree/package/luaposix/luaposix.mk > But most of Lua modules use the generic infrastructure which handles > all other cases. > See lbase64 where the supplied Makefile is used, > http://git.buildroot.net/buildroot/tree/package/lbase64/lbase64.mk > See wsapi where the Lua files are just copied, > http://git.buildroot.net/buildroot/tree/package/wsapi/wsapi.mk > See lua-msgpack-native where the compiler is directly called, > http://git.buildroot.net/buildroot/tree/package/lua-msgpack-native/lua-msgpack-native.mk > > I decided to add a LuaRocks infrastructure (only for the build.type `builtin`) > The cross-compilation is not a requirement of LuaRocks. > In BuildRoot, the cross-compilation implies to manage 3 different > installation trees : > - HOST_DIR which contains tools like the cross-compiler, the source > of LuaRocks and a host Lua executable > - TARGET_DIR which contains the Lua executable, the shared libraries > and Lua files > - STAGING_DIR which contains the include files of Lua and others C > libraries (like expat for LuaExpat) > > The framework of BuildRoot implies some well-defined and isolated steps : > - Download uses BuildRoot common infrastructure for retrieving the > rock source on the LuaRocks repository > - Extract uses `luarocks unpack` > - Patch use BuildRoot infrastructure if needed > - Configure not used > - Build not used > - Install use `luarocks build --minimal` (build & install are linked > by LuaRocks) > So, I need 2 small patches for this (see, > https://raw.github.com/fperrad/br/luarocks/package/luarocks/luarocks-unpack.patch > & > https://raw.github.com/fperrad/br/luarocks/package/luarocks/luarocks-build-minimal.patch) > > Dependencies are not handled by LuaRock. BuildRoot handles two kinds > of dependency : build (in Makefile) and runtime (in Kconfig). > For example, LuaSec depends on LuaSocket at runtime, and depends on > openssl at build time. > > The support of the cross-compilation is done by adding some variables > at the end of config.lua > (see https://raw.github.com/fperrad/br/luarocks/package/luarocks/luarocks.mk) > > Now, I've converted 13 modules with this new infrastructure, and the > Makefile of a typical package looks like : > > > ################################################################################ > # > # luafoo > # > > ################################################################################ > > LUAFOO_VERSION = 1.0.2-1 > LUAFOO_DEPENDENCIES = foo > > $(eval $(luarocks-package)) > > where `luarocks-package` is a macro defined in > https://raw.github.com/fperrad/br/luarocks/package/pkg-luarocks.mk > > My work is currently in BuildRoot patch queue.
BuildRoot 14.02-rc1 was just released with LuaRocks 2.1.2 See http://git.buildroot.net/buildroot/tree/package/luarocks/luarocks.mk Note that this release supports 3 Lua interpreters : Lu > > In conclusion, the good design of LuaRocks allows me to do this > unexpected use of it. > > François ------------------------------------------------------------------------------ Android apps run on BlackBerry 10 Introducing the new BlackBerry 10.2.1 Runtime for Android apps. Now with support for Jelly Bean, Bluetooth, Mapview and more. Get your Android app in front of a whole new audience. Start now. http://pubads.g.doubleclick.net/gampad/clk?id=124407151&iu=/4140/ostg.clktrk _______________________________________________ Luarocks-developers mailing list Luarocks-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/luarocks-developers