diff options
-rw-r--r-- | Makefile | 188 | ||||
-rw-r--r-- | Makefile.mingw32 | 193 | ||||
-rw-r--r-- | src/lua-plugin.cc | 43 | ||||
-rw-r--r-- | src/lua-plugin.h | 9 | ||||
-rw-r--r-- | src/plugin-luaconfigfiles.cc | 9 | ||||
-rw-r--r-- | src/plugin-luaftgl.cc | 9 | ||||
-rw-r--r-- | src/plugin-luagl.cc | 10 | ||||
-rw-r--r-- | src/plugin-luahandle.cc | 12 | ||||
-rw-r--r-- | src/plugin-luahttp.cc | 9 | ||||
-rw-r--r-- | src/plugin-lualibs.cc | 9 | ||||
-rw-r--r-- | src/plugin-luaocci.cc | 9 | ||||
-rw-r--r-- | src/plugin-luaregex.cc | 9 | ||||
-rw-r--r-- | src/plugin-luasql.cc | 9 | ||||
-rw-r--r-- | src/plugin-luatask.cc | 9 | ||||
-rw-r--r-- | src/plugin-luaxml.cc | 10 |
15 files changed, 537 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..75fecbd --- /dev/null +++ b/Makefile @@ -0,0 +1,188 @@ +CC = gcc +CXX = g++ +LD = g++ +STRIP = strip + +INCLUDES = \ +-I ../Mesa-7.0.2/include \ +-I../mogltk/include \ +-I../Baltisot/include \ +-I../Baltisot/lib/zlib/include \ +-I../Baltisot/lib/lua/include -I../Baltisot/lib/lua/includes \ +-I ../tinyxml \ +-I /usr/include/mysql \ +-I /usr/include/FTGL -I /usr/include/freetype2 \ +-I /usr/include/oracle/11.1.0.1/client/ + +HAVES = -DHAVE_VSSCANF -DHAVE_LIBJPEG -DHAVE_FCNTL -DHAVE_MYSQL -DHAVE_UNISTD_H -DHAVE_FORK -DHAVE_PIPE -DHAVE_FSYNC -DHAVE_MALLOC_H -DHAVE_ASPRINTF -DHAVE_BYTESWAP_H + +CPPFLAGS += $(INCLUDES) -O4 -fexceptions -DSTDC_HEADERS -DREADLINE_STATIC -DHOOK_STDS -DWORDS_LITTLEENDIAN -march=i686 $(HAVES) + +LDFLAGS += -O4 -fexceptions -shared -fPIC -L/usr/lib/oracle/11.1.0.1/client/lib + +vpath %.c ../Baltisot/lib:../Baltisot/src:../Baltisot/lib/zlib/src:../Baltisot/lib/lua/src:../Baltisot/lib/lua/src/LuaLib:src:../paperIdol/src:../mogltk/lib:../tinyxml +vpath %.cc ../Baltisot/lib:../Baltisot/src:../Baltisot/lib/zlib/src:../Baltisot/lib/lua/src:../Baltisot/lib/lua/src/LuaLib:src:../paperIdol/src:../mogltk/lib:../tinyxml +vpath %.cpp ../Baltisot/lib:../Baltisot/src:../Baltisot/lib/zlib/src:../Baltisot/lib/lua/src:../Baltisot/lib/lua/src/LuaLib:src:../paperIdol/src:../mogltk/lib:../tinyxml +vpath %.lua ../Baltisot/lib:../Baltisot/src + +CONFIGFILES_SOURCES = \ +plugin-luaconfigfiles.cc \ +LuaConfigFile.cc \ + +CONFIGFILES_LIBS = + +XML_SOURCES = \ +plugin-luaxml.cc \ +tinystr.cpp \ +tinyxml.cpp \ +tinyxmlerror.cpp \ +tinyxmlparser.cpp \ +LuaXML.cc \ + +XML_LIBS = + +OCCI_SOURCES = \ +plugin-luaocci.cc \ +LuaOCCI.cc \ + +OCCI_LIBS = -locci -lclntsh + +HANDLE_SOURCES = \ +plugin-luahandle.cc \ + +HANDLE_LIBS = + +HTTP_SOURCES = \ +plugin-luahttp.cc \ +LuaHttp.cc \ + +HTTP_LIBS = + +REGEX_SOURCES = \ +plugin-luaregex.cc \ +LuaRegex.cc \ + +REGEX_LIBS = + +TASK_SOURCES = \ +plugin-luatask.cc \ + +TASK_LIBS = + +SQL_SOURCES = \ +plugin-luasql.cc \ +SQL.cc \ +LuaSQL.cc \ + +SQL_LIBS = /usr/lib/libmysqlclient.a + +LUALIBS_SOURCES = \ +plugin-lualibs.cc \ +loadlualibs.cc \ + +LUA_LIB = \ +supportlib.lua \ +tasklib.lua \ +ajaxlib.lua \ +htmllib.lua \ +xmllib.lua \ + +GL_SOURCES = \ +plugin-luagl.cc \ +LuaGL.cc \ + +GL_LIBS = ../Mesa-7.0.2/lib/libGLU.a ../Mesa-7.0.2/lib/libOSMesa.a + +FTGL_SOURCES = \ +plugin-luaftgl.cc \ +LuaFTGL.cc \ + +FTGL_LIBS = -lfreetype -lftgl + +WHOLE_SOURCES = \ +$(CONFIGFILES_SOURCES) \ +$(XML_SOURCES) \ +$(OCCI_SOURCES) \ +$(HANDLE_SOURCES) \ +$(HTTP_SOURCES) \ +$(REGEX_SOURCES) \ +$(TASK_SOURCES) \ +$(SQL_SOURCES) \ +$(LUALIBS_SOURCES) \ +$(GL_SOURCES) \ +$(FTGL_SOURCES) \ + +MODULES_LIST = \ +luaconfigfiles.so \ +luaxml.so \ +luaocci.so \ +luahandle.so \ +luahttp.so \ +luaregex.so \ +luatask.so \ +luasql.so \ +luagl.so \ +luaftgl.so \ +lualibs.so \ + +ALL_OBJECTS = $(addsuffix .o, $(notdir $(basename $(WHOLE_SOURCES) $(LUA_LIB)))) +ALL_DEPS = $(addsuffix .dep, $(notdir $(basename $(WHOLE_SOURCES)))) + +all: dep modules + +modules: $(MODULES_LIST) + +dep: $(ALL_DEPS) + +luaconfigfiles.so: $(addsuffix .o, $(notdir $(basename $(CONFIGFILES_SOURCES)))) + $(LD) $(LDFLAGS) -o $@ $+ $(CONFIGFILES_LIBS) + +luaxml.so: $(addsuffix .o, $(notdir $(basename $(XML_SOURCES)))) + $(LD) $(LDFLAGS) -o $@ $+ $(XML_LIBS) + +luaocci.so: $(addsuffix .o, $(notdir $(basename $(OCCI_SOURCES)))) + $(LD) $(LDFLAGS) -o $@ $+ $(OCCI_LIBS) + +luahandle.so: $(addsuffix .o, $(notdir $(basename $(HANDLE_SOURCES)))) + $(LD) $(LDFLAGS) -o $@ $+ $(HANDLE_LIBS) + +luahttp.so: $(addsuffix .o, $(notdir $(basename $(HTTP_SOURCES)))) + $(LD) $(LDFLAGS) -o $@ $+ $(HTTP_LIBS) + +luaregex.so: $(addsuffix .o, $(notdir $(basename $(REGEX_SOURCES)))) + $(LD) $(LDFLAGS) -o $@ $+ $(REGEX_LIBS) + +luatask.so: $(addsuffix .o, $(notdir $(basename $(TASK_SOURCES)))) + $(LD) $(LDFLAGS) -o $@ $+ $(TASK_LIBS) + +luasql.so: $(addsuffix .o, $(notdir $(basename $(SQL_SOURCES)))) + $(LD) $(LDFLAGS) -o $@ $+ $(SQL_LIBS) + +luagl.so: $(addsuffix .o, $(notdir $(basename $(GL_SOURCES)))) + $(LD) $(LDFLAGS) -o $@ $+ $(GL_LIBS) + +luaftgl.so: $(addsuffix .o, $(notdir $(basename $(FTGL_SOURCES)))) + $(LD) $(LDFLAGS) -o $@ $+ $(FTGL_LIBS) + +lualibs.so: $(addsuffix .o, $(notdir $(basename $(LUALIBS_SOURCES) $(LUA_LIB)))) + $(LD) $(LDFLAGS) -o $@ $+ $(LUALIBS_LIBS) + +clean: + rm -f *.o *.dep *.so + +%.dep : %.c + $(CC) $(CPPFLAGS) -M -MF $@ $< + +%.dep : %.cpp + $(CXX) $(CPPFLAGS) -M -MF $@ $< + +%.dep : %.cc + $(CXX) $(CPPFLAGS) -M -MF $@ $< + +%.c : %.clua + bin2c $< $@ $(basename $@) + +%.clua : %.lua + ./luac -o $@ $< + +-include $(ALL_DEPS) diff --git a/Makefile.mingw32 b/Makefile.mingw32 new file mode 100644 index 0000000..26d4018 --- /dev/null +++ b/Makefile.mingw32 @@ -0,0 +1,193 @@ +CC = i586-mingw32msvc-gcc +CXX = i586-mingw32msvc-g++ +LD = i586-mingw32msvc-g++ +STRIP = i586-mingw32msvc-strip + +INCLUDES = \ +-I ../Mesa-7.0.2/include \ +-I../mogltk/include \ +-I../Baltisot/include \ +-I../Baltisot/lib/zlib/include \ +-I../Baltisot/lib/lua/include -I../Baltisot/lib/lua/includes \ +-I ../tinyxml \ +-I /usr/include/mysql \ +-I /usr/include/FTGL -I /usr/include/freetype2 \ +-I /usr/include/oracle/11.1.0.1/client/ \ +-I ../Baltisot/MSVC/regex \ + +HAVES = -DHAVE_VSSCANF -DHAVE_LIBJPEG -DHAVE_MALLOC_H -DHAVE_BYTESWAP_H + +CPPFLAGS += $(INCLUDES) -g -DSTDC_HEADERS -DREADLINE_STATIC -DHOOK_STDS -DWORDS_LITTLEENDIAN -fexceptions -march=i686 $(HAVES) + +LDFLAGS += -g -fexceptions -shared -L/usr/lib/oracle/11.1.0.1/client/lib ../lua-interface/lua-interface.a -Wl,--export-dynamic -Wl,--enable-auto-image-base --export-all-symbols -Wl,--enable-auto-import + +vpath %.c ../Baltisot/lib:../Baltisot/src:../Baltisot/lib/zlib/src:../Baltisot/lib/lua/src:../Baltisot/lib/lua/src/LuaLib:src:../paperIdol/src:../mogltk/lib:../tinyxml +vpath %.cc ../Baltisot/lib:../Baltisot/src:../Baltisot/lib/zlib/src:../Baltisot/lib/lua/src:../Baltisot/lib/lua/src/LuaLib:src:../paperIdol/src:../mogltk/lib:../tinyxml +vpath %.cpp ../Baltisot/lib:../Baltisot/src:../Baltisot/lib/zlib/src:../Baltisot/lib/lua/src:../Baltisot/lib/lua/src/LuaLib:src:../paperIdol/src:../mogltk/lib:../tinyxml +vpath %.lua ../Baltisot/lib:../Baltisot/src + +CONFIGFILES_SOURCES = \ +plugin-luaconfigfiles.cc \ +LuaConfigFile.cc \ + +CONFIGFILES_LIBS = + +XML_SOURCES = \ +plugin-luaxml.cc \ +tinystr.cpp \ +tinyxml.cpp \ +tinyxmlerror.cpp \ +tinyxmlparser.cpp \ +LuaXML.cc \ + +XML_LIBS = + +OCCI_SOURCES = \ +plugin-luaocci.cc \ +LuaOCCI.cc \ + +OCCI_LIBS = -locci -lclntsh + +HANDLE_SOURCES = \ +plugin-luahandle.cc \ + +HANDLE_LIBS = + +HTTP_SOURCES = \ +plugin-luahttp.cc \ +LuaHttp.cc \ + +HTTP_LIBS = + +REGEX_SOURCES = \ +plugin-luaregex.cc \ +LuaRegex.cc \ + +REGEX_LIBS = + +TASK_SOURCES = \ +plugin-luatask.cc \ + +TASK_LIBS = + +SQL_SOURCES = \ +plugin-luasql.cc \ +SQL.cc \ +LuaSQL.cc \ + +SQL_LIBS = /usr/lib/libmysqlclient.a + +LUALIBS_SOURCES = \ +plugin-lualibs.cc \ +loadlualibs.cc \ + +LUA_LIB = \ +supportlib.lua \ +tasklib.lua \ +ajaxlib.lua \ +htmllib.lua \ +xmllib.lua \ + +GL_SOURCES = \ +plugin-luagl.cc \ +LuaGL.cc \ + +GL_LIBS = ../Mesa-7.0.2/lib/libGLU.a ../Mesa-7.0.2/lib/libOSMesa.a + +FTGL_SOURCES = \ +plugin-luaftgl.cc \ +LuaFTGL.cc \ + +FTGL_LIBS = -lfreetype -lftgl + +WHOLE_SOURCES = \ +$(CONFIGFILES_SOURCES) \ +$(LUALIBS_SOURCES) \ +$(XML_SOURCES) \ +$(TASK_SOURCES) \ +$(HANDLE_SOURCES) \ +$(HTTP_SOURCES) \ +$(REGEX_SOURCES) \ + + +#$(OCCI_SOURCES) \ +#$(SQL_SOURCES) \ +#$(GL_SOURCES) \ +#$(FTGL_SOURCES) \ + +MODULES_LIST = \ +luaconfigfiles.dll \ +lualibs.dll \ +luaxml.dll \ +luatask.dll \ +luahandle.dll \ +luahttp.dll \ +luaregex.dll \ + + +#luaocci.dll \ +#luasql.dll \ +#luagl.dll \ +#luaftgl.dll \ + +ALL_OBJECTS = $(addsuffix .o, $(notdir $(basename $(WHOLE_SOURCES) $(LUA_LIB)))) +ALL_DEPS = $(addsuffix .dep, $(notdir $(basename $(WHOLE_SOURCES)))) + +all: dep modules + +modules: $(MODULES_LIST) + +dep: $(ALL_DEPS) + +luaconfigfiles.dll: $(addsuffix .o, $(notdir $(basename $(CONFIGFILES_SOURCES)))) + $(LD) -o $@ $+ $(CONFIGFILES_LIBS) $(LDFLAGS) + +luaxml.dll: $(addsuffix .o, $(notdir $(basename $(XML_SOURCES)))) + $(LD) -o $@ $+ $(XML_LIBS) $(LDFLAGS) + +luaocci.dll: $(addsuffix .o, $(notdir $(basename $(OCCI_SOURCES)))) + $(LD) -o $@ $+ $(OCCI_LIBS) $(LDFLAGS) + +luahandle.dll: $(addsuffix .o, $(notdir $(basename $(HANDLE_SOURCES)))) + $(LD) -o $@ $+ $(HANDLE_LIBS) $(LDFLAGS) + +luahttp.dll: $(addsuffix .o, $(notdir $(basename $(HTTP_SOURCES)))) + $(LD) -o $@ $+ $(HTTP_LIBS) $(LDFLAGS) + +luaregex.dll: $(addsuffix .o, $(notdir $(basename $(REGEX_SOURCES)))) + $(LD) -o $@ $+ $(REGEX_LIBS) $(LDFLAGS) + +luatask.dll: $(addsuffix .o, $(notdir $(basename $(TASK_SOURCES)))) + $(LD) -o $@ $+ $(TASK_LIBS) $(LDFLAGS) + +luasql.dll: $(addsuffix .o, $(notdir $(basename $(SQL_SOURCES)))) + $(LD) -o $@ $+ $(SQL_LIBS) $(LDFLAGS) + +luagl.dll: $(addsuffix .o, $(notdir $(basename $(GL_SOURCES)))) + $(LD) -o $@ $+ $(GL_LIBS) $(LDFLAGS) + +luaftgl.dll: $(addsuffix .o, $(notdir $(basename $(FTGL_SOURCES)))) + $(LD) -o $@ $+ $(FTGL_LIBS) $(LDFLAGS) + +lualibs.dll: $(addsuffix .o, $(notdir $(basename $(LUALIBS_SOURCES) $(LUA_LIB)))) + $(LD) -o $@ $+ $(LUALIBS_LIBS) $(LDFLAGS) + +clean: + rm -f *.o *.dep *.dll + +%.dep : %.c + $(CC) $(CPPFLAGS) -M -MF $@ $< + +%.dep : %.cpp + $(CXX) $(CPPFLAGS) -M -MF $@ $< + +%.dep : %.cc + $(CXX) $(CPPFLAGS) -M -MF $@ $< + +%.c : %.clua + bin2c $< $@ $(basename $@) + +%.clua : %.lua + ./luac -o $@ $< + +-include $(ALL_DEPS) diff --git a/src/lua-plugin.cc b/src/lua-plugin.cc new file mode 100644 index 0000000..79968a6 --- /dev/null +++ b/src/lua-plugin.cc @@ -0,0 +1,43 @@ +#include <lua-plugin.h> + +typedef void(*init_ptr_t)(Lua *); + +#ifdef _WIN32 +#include <windows.h> + +void LuaLoadPlugin(const String & _fname, Lua * L) throw (GeneralException) { + HMODULE handle; + String fname = _fname + ".dll"; + + if (!(handle = LoadLibraryEx(fname.to_charp(), NULL, LOAD_WITH_ALTERED_SEARCH_PATH)) && + !(handle = LoadLibraryEx(fname.to_charp(), NULL, NULL))) { + throw GeneralException("File not found or error loading shared object file: " + fname + "; Error #" + String((int) GetLastError())); + } + + init_ptr_t init_ptr = (init_ptr_t) GetProcAddress(handle, "init_plugin"); + + if (!init_ptr) { + throw GeneralException("No init pointer on plugin " + fname); + } + + init_ptr(L); +} +#else +#include <dlfcn.h> + +void LuaLoadPlugin(const String & fname, Lua * L) throw (GeneralException) { + void * handle = dlopen(("./" + fname + ".so").to_charp(), RTLD_NOW | RTLD_GLOBAL); + + if (!handle) { + throw GeneralException("File not found or error loading shared object file: " + fname + "; " + dlerror()); + } + + init_ptr_t init_ptr = (init_ptr_t) dlsym(handle, "init_plugin"); + + if (!init_ptr) { + throw GeneralException("No init pointer on plugin " + fname); + } + + init_ptr(L); +} +#endif diff --git a/src/lua-plugin.h b/src/lua-plugin.h new file mode 100644 index 0000000..dba8518 --- /dev/null +++ b/src/lua-plugin.h @@ -0,0 +1,9 @@ +#ifndef __LUA_PLUGIN_H__ +#define __LUA_PLUGIN_H__ + +#include <BLua.h> +#include <Exceptions.h> + +void LuaLoadPlugin(const String & fname, Lua * L) throw (GeneralException); + +#endif diff --git a/src/plugin-luaconfigfiles.cc b/src/plugin-luaconfigfiles.cc new file mode 100644 index 0000000..a174f6a --- /dev/null +++ b/src/plugin-luaconfigfiles.cc @@ -0,0 +1,9 @@ +#include <LuaConfigFile.h> + +extern "C" { + +void init_plugin(Lua * L) { + LuaConfigFile::pushstatics(L); +} + +} diff --git a/src/plugin-luaftgl.cc b/src/plugin-luaftgl.cc new file mode 100644 index 0000000..cd577b6 --- /dev/null +++ b/src/plugin-luaftgl.cc @@ -0,0 +1,9 @@ +#include <LuaFTGL.h> + +extern "C" { + +void init_plugin(Lua * L) { + LuaFTFont::pushstatics(L); +} + +} diff --git a/src/plugin-luagl.cc b/src/plugin-luagl.cc new file mode 100644 index 0000000..2f0b55c --- /dev/null +++ b/src/plugin-luagl.cc @@ -0,0 +1,10 @@ +#include <LuaGL.h> + +extern "C" { + +void init_plugin(Lua * L) { + luaopen_opengl(L); + L->pop(); +} + +} diff --git a/src/plugin-luahandle.cc b/src/plugin-luahandle.cc new file mode 100644 index 0000000..d2002af --- /dev/null +++ b/src/plugin-luahandle.cc @@ -0,0 +1,12 @@ +#include <LuaHandle.h> + +extern "C" { + +void init_plugin(Lua * L) { + LuaInput::pushconstruct(L); + LuaOutput::pushconstruct(L); + LuaBuffer::pushconstruct(L); + LuaHandle::pushconstruct(L); +} + +} diff --git a/src/plugin-luahttp.cc b/src/plugin-luahttp.cc new file mode 100644 index 0000000..819a2f3 --- /dev/null +++ b/src/plugin-luahttp.cc @@ -0,0 +1,9 @@ +#include <LuaHttp.h> + +extern "C" { + +void init_plugin(Lua * L) { + LuaHttpResponse::pushstatics(L); +} + +} diff --git a/src/plugin-lualibs.cc b/src/plugin-lualibs.cc new file mode 100644 index 0000000..e364d9b --- /dev/null +++ b/src/plugin-lualibs.cc @@ -0,0 +1,9 @@ +#include <loadlualibs.h> + +extern "C" { + +void init_plugin(Lua * L) { + LoadLuaLibs(L); +} + +} diff --git a/src/plugin-luaocci.cc b/src/plugin-luaocci.cc new file mode 100644 index 0000000..8d9377e --- /dev/null +++ b/src/plugin-luaocci.cc @@ -0,0 +1,9 @@ +#include <LuaOCCI.h> + +extern "C" { + +void init_plugin(Lua * L) { + LuaOCCI_pushstatics(L); +} + +} diff --git a/src/plugin-luaregex.cc b/src/plugin-luaregex.cc new file mode 100644 index 0000000..694738c --- /dev/null +++ b/src/plugin-luaregex.cc @@ -0,0 +1,9 @@ +#include <LuaRegex.h> + +extern "C" { + +void init_plugin(Lua * L) { + LuaRegex::pushstatics(L); +} + +} diff --git a/src/plugin-luasql.cc b/src/plugin-luasql.cc new file mode 100644 index 0000000..c891942 --- /dev/null +++ b/src/plugin-luasql.cc @@ -0,0 +1,9 @@ +#include <LuaSQL.h> + +extern "C" { + +void init_plugin(Lua * L) { + LuaSQLConnection::pushstatics(L); +} + +} diff --git a/src/plugin-luatask.cc b/src/plugin-luatask.cc new file mode 100644 index 0000000..b97e273 --- /dev/null +++ b/src/plugin-luatask.cc @@ -0,0 +1,9 @@ +#include <LuaTask.h> + +extern "C" { + +void init_plugin(Lua * L) { + LuaTaskMan::pushstatics(L); +} + +} diff --git a/src/plugin-luaxml.cc b/src/plugin-luaxml.cc new file mode 100644 index 0000000..2cec871 --- /dev/null +++ b/src/plugin-luaxml.cc @@ -0,0 +1,10 @@ +#include <LuaXML.h> + +extern "C" { + +void init_plugin(Lua * L) { + luaopen_xml(L); + L->pop(); +} + +} |