summaryrefslogtreecommitdiffstats
path: root/Sluift
diff options
context:
space:
mode:
Diffstat (limited to 'Sluift')
-rw-r--r--Sluift/SConscript13
-rw-r--r--Sluift/linit.c39
2 files changed, 51 insertions, 1 deletions
diff --git a/Sluift/SConscript b/Sluift/SConscript
index dbf7459..49d6de3 100644
--- a/Sluift/SConscript
+++ b/Sluift/SConscript
@@ -1,4 +1,4 @@
-Import("env")
+Import(["env", "conf_env"])
if env["SCONS_STAGE"] == "build" :
myenv = env.Clone()
@@ -15,3 +15,14 @@ if env["SCONS_STAGE"] == "build" :
myenv.SharedLibrary("sluift", [
"sluift.cpp",
])
+
+ sluift_bin_env = myenv.Clone()
+ sluift_bin_env.Install(".", "#/3rdParty/Lua/src/lua.c")
+ if sluift_bin_env.get("HAVE_READLINE", False) :
+ sluift_bin_env.Append(CPPDEFINES = ["LUA_USE_READLINE"])
+ sluift_bin_env.MergeFlags(sluift_bin_env["READLINE_FLAGS"])
+ sluift_bin_env.Program("sluift", [
+ "sluift.cpp",
+ "lua.c",
+ "linit.c",
+ ])
diff --git a/Sluift/linit.c b/Sluift/linit.c
new file mode 100644
index 0000000..4a3bd24
--- /dev/null
+++ b/Sluift/linit.c
@@ -0,0 +1,39 @@
+/*
+** $Id: linit.c,v 1.14.1.1 2007/12/27 13:02:25 roberto Exp $
+** Initialization of libraries for lua.c
+** See Copyright Notice in lua.h
+*/
+
+
+#define linit_c
+#define LUA_LIB
+
+#include "lua.h"
+
+#include "lualib.h"
+#include "lauxlib.h"
+#include "sluift.h"
+
+static const luaL_Reg lualibs[] = {
+ {"", luaopen_base},
+ {LUA_LOADLIBNAME, luaopen_package},
+ {LUA_TABLIBNAME, luaopen_table},
+ {LUA_IOLIBNAME, luaopen_io},
+ {LUA_OSLIBNAME, luaopen_os},
+ {LUA_STRLIBNAME, luaopen_string},
+ {LUA_MATHLIBNAME, luaopen_math},
+ {LUA_DBLIBNAME, luaopen_debug},
+ {"sluift", luaopen_sluift},
+ {NULL, NULL}
+};
+
+
+LUALIB_API void luaL_openlibs (lua_State *L) {
+ const luaL_Reg *lib = lualibs;
+ for (; lib->func; lib++) {
+ lua_pushcfunction(L, lib->func);
+ lua_pushstring(L, lib->name);
+ lua_call(L, 1, 0);
+ }
+}
+