Merge pull request #1111 from TerryE/dev-fix-luac-compile
Fix break in luac.cross build and add some documentation
This commit is contained in:
commit
5684392911
|
@ -67,7 +67,7 @@
|
||||||
const LOCK_IN_SECTION(".lua_rotable") \
|
const LOCK_IN_SECTION(".lua_rotable") \
|
||||||
luaR_table MODULE_PASTE_(lua_rotable_,name) = { luaname, map }
|
luaR_table MODULE_PASTE_(lua_rotable_,name) = { luaname, map }
|
||||||
|
|
||||||
#if !(MIN_OPT_LEVEL==2 && LUA_OPTIMIZE_MEMORY==2)
|
#if !defined(LUA_CROSS_COMPILER) && !(MIN_OPT_LEVEL==2 && LUA_OPTIMIZE_MEMORY==2)
|
||||||
# error "NodeMCU modules must be built with LTR enabled (MIN_OPT_LEVEL=2 and LUA_OPTIMIZE_MEMORY=2)"
|
# error "NodeMCU modules must be built with LTR enabled (MIN_OPT_LEVEL=2 and LUA_OPTIMIZE_MEMORY=2)"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -57,7 +57,12 @@ extern const luaR_entry math_map[];
|
||||||
BUILTIN_LIB( MATH, LUA_MATHLIBNAME, math_map);
|
BUILTIN_LIB( MATH, LUA_MATHLIBNAME, math_map);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef LUA_CROSS_COMPILER
|
||||||
|
const luaL_Reg lua_libs[] = {{NULL, NULL}};
|
||||||
|
const luaR_table lua_rotable[] = {{NULL, NULL}};
|
||||||
|
#else
|
||||||
extern const luaL_Reg lua_libs[];
|
extern const luaL_Reg lua_libs[];
|
||||||
|
#endif
|
||||||
|
|
||||||
void luaL_openlibs (lua_State *L) {
|
void luaL_openlibs (lua_State *L) {
|
||||||
const luaL_Reg *lib = lua_libs;
|
const luaL_Reg *lib = lua_libs;
|
||||||
|
|
|
@ -35,4 +35,23 @@ Supported platforms: Windows
|
||||||
|
|
||||||
Source: [https://github.com/4refr0nt/luatool](https://github.com/4refr0nt/luatool)
|
Source: [https://github.com/4refr0nt/luatool](https://github.com/4refr0nt/luatool)
|
||||||
|
|
||||||
Supported platforms: OS X, Linux, Windows, anything that runs Python
|
Supported platforms: OS X, Linux, Windows, anything that runs Python
|
||||||
|
|
||||||
|
# Compiling Lua on your PC for Uploading
|
||||||
|
|
||||||
|
If you install lua on your development PC or Laptop then you can use the standard Lua
|
||||||
|
compiler to syntax check any Lua source before downloading it to the ESP8266 module. However,
|
||||||
|
the nodemcu compiler output uses different data types (e.g. it supports ROMtables) so the
|
||||||
|
compiled output cannot run on the ESP8266.
|
||||||
|
|
||||||
|
Compiling source on one platform for use on another (e.g. Intel x38 Window to ESP8266) is
|
||||||
|
known as _cross-compilation_ and the nodemcu firmware supports the compilation of `luac.cross`
|
||||||
|
on \*nix patforms which have Lua 5.1, the Lua filesystem module (lfs), and the essential
|
||||||
|
GCC tools. Simply change directory to the firmware root directoy and run the command:
|
||||||
|
|
||||||
|
lua tools/cross-lua.lua
|
||||||
|
|
||||||
|
This will generate a `luac.cross` executable in your root directory which can be used to
|
||||||
|
compile and to syntax-check Lua source on the Development machine for execution under
|
||||||
|
nodemcu lua on the ESP8266.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue