summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShmuel Zeigerman <solomuz0@gmail.com>2012-04-04 13:04:03 +0300
committerShmuel Zeigerman <solomuz0@gmail.com>2012-04-04 13:04:03 +0300
commit20d043ccd51ae389cb189ac0c569cf9d714fbd31 (patch)
treea7558574fca53eaa3844b223a35ce46ffff4126a
parent6539761e2883147256aa366f87d7f1fb20e402b0 (diff)
downloadlrexlib-20d043ccd51ae389cb189ac0c569cf9d714fbd31.tar.gz
Add macro REX_CREATEGLOBALVAR.
-rw-r--r--src/algo.h12
-rw-r--r--windows/mingw/Makefile6
-rw-r--r--windows/mingw/_mingw.mak34
-rw-r--r--windows/mingw/rex_gnu.mak5
-rw-r--r--windows/mingw/rex_onig.mak5
-rw-r--r--windows/mingw/rex_pcre.mak5
-rw-r--r--windows/mingw/rex_spencer.mak5
-rw-r--r--windows/mingw/rex_tre.mak5
8 files changed, 36 insertions, 41 deletions
diff --git a/src/algo.h b/src/algo.h
index 39c7de9..2db4c81 100644
--- a/src/algo.h
+++ b/src/algo.h
@@ -668,7 +668,7 @@ static int algm_exec (lua_State *L) {
static void alg_register (lua_State *L, const luaL_Reg *r_methods,
const luaL_Reg *r_functions, const char *name) {
- /* create a new function environment to serve as a metatable for methods */
+ /* Create a new function environment to serve as a metatable for methods. */
#if LUA_VERSION_NUM == 501
lua_newtable (L);
lua_pushvalue (L, -1);
@@ -682,14 +682,18 @@ static void alg_register (lua_State *L, const luaL_Reg *r_methods,
lua_pushvalue(L, -1); /* mt.__index = mt */
lua_setfield(L, -2, "__index");
- /* register functions */
+ /* Register functions. */
+ lua_createtable(L, 0, 8);
#if LUA_VERSION_NUM == 501
- luaL_register (L, REX_LIBNAME, r_functions);
+ luaL_register (L, NULL, r_functions);
#else
- lua_newtable(L);
lua_pushvalue(L, -2);
luaL_setfuncs (L, r_functions, 1);
#endif
+#ifdef REX_CREATEGLOBALVAR
+ lua_pushvalue(L, -1);
+ lua_setglobal(L, REX_LIBNAME);
+#endif
lua_pushfstring (L, REX_VERSION" (for %s)", name);
lua_setfield (L, -2, "_VERSION");
}
diff --git a/windows/mingw/Makefile b/windows/mingw/Makefile
index 2689502..e3efb9d 100644
--- a/windows/mingw/Makefile
+++ b/windows/mingw/Makefile
@@ -1,10 +1,10 @@
# Makefile for lrexlib
MKFILES = \
+ rex_gnu.mak \
+ rex_onig.mak \
rex_pcre.mak \
rex_spencer.mak \
- rex_onig.mak \
- rex_gnu.mak \
rex_tre.mak
LOOP = @for %%d in ($(MKFILES)) do $(MAKE) -f %%d
@@ -21,6 +21,6 @@ install:
$(LOOP) install
clean:
- $(LOOP) clean
+ del *.o *.def *.dll
.PHONY: all build test install clean
diff --git a/windows/mingw/_mingw.mak b/windows/mingw/_mingw.mak
index 668a8df..b1524d1 100644
--- a/windows/mingw/_mingw.mak
+++ b/windows/mingw/_mingw.mak
@@ -2,38 +2,44 @@
# User Settings ------------------------------------------------------------
-# Path of Lua include files.
+# Target Lua version (51 for Lua 5.1; 52 for Lua 5.2).
+LUAVERSION = 51
+
+# Path to install the built DLL.
# Name of Lua DLL to link to (.dll should be omitted).
# Name of Lua interpreter.
-# Path to install the built DLL.
+# Path of Lua include files.
ifeq ($(LUAVERSION),51)
- LUAINC = s:\progr\work\system\include\lua51
+ INSTALLPATH = s:\exe\lib32\lua51
LUADLL = lua5.1
LUAEXE = lua.exe
- INSTALLPATH = s:\exe\lib\lua\5.1
+ LUAINC = s:\progr\work\system\include\lua51
else
- LUAINC = s:\progr\work\system\include\lua52
+ INSTALLPATH = s:\exe\lib32\lua52
LUADLL = lua52
LUAEXE = lua52.exe
- INSTALLPATH = s:\exe\lib\lua\5.2
+ LUAINC = s:\progr\work\system\include\lua52
endif
# --------------------------------------------------------------------------
-LIBS = -l$(LUADLL) $(MYLIBS) -s
-INCS = -I$(LUAINC) $(MYINCS)
BIN = $(PROJECT).dll
-DEFFILE = $(PROJECT).def
BININSTALL = $(INSTALLPATH)\$(BIN)
-CC = gcc.exe
-CFLAGS = $(INCS) -DREX_OPENLIB=luaopen_$(PROJECT) \
- -DREX_LIBNAME=\"$(PROJECT)\" $(MYCFLAGS)
+CC = gcc
+CFLAGS = -W -Wall -O2 $(INCS) -DREX_OPENLIB=luaopen_$(PROJECT) \
+ -DREX_LIBNAME=\"$(PROJECT)\" -DREX_CREATEGLOBALVAR $(MYCFLAGS)
+DEFFILE = $(PROJECT).def
+EXPORTED = luaopen_$(PROJECT)
+INCS = -I$(LUAINC) $(MYINCS)
+LIBS = -l$(LUADLL) $(MYLIBS) -s
+SRCPATH = ..\..\src
+TESTPATH = ..\..\test
.PHONY: all install test clean
-vpath %.c $(SRCPATH)
-vpath %.h $(SRCPATH)
+vpath %.c $(SRCPATH);$(SRCPATH)\$(PROJDIR)
+vpath %.h $(SRCPATH);$(SRCPATH)\$(PROJDIR)
all: $(BIN)
diff --git a/windows/mingw/rex_gnu.mak b/windows/mingw/rex_gnu.mak
index 9c4c81b..fb17a5c 100644
--- a/windows/mingw/rex_gnu.mak
+++ b/windows/mingw/rex_gnu.mak
@@ -9,10 +9,7 @@ PROJECT = rex_gnu
MYINCS = -I$(REGEXINC)
MYLIBS = -lregex2
OBJ = lgnu.o common.o
-MYCFLAGS = -W -Wall -O2
-EXPORTED = luaopen_$(PROJECT)
-SRCPATH = ..\..\src;..\..\src\gnu
-TESTPATH = ..\..\test
+PROJDIR = gnu
TESTNAME = gnu
include _mingw.mak
diff --git a/windows/mingw/rex_onig.mak b/windows/mingw/rex_onig.mak
index eae3255..4e9f5f7 100644
--- a/windows/mingw/rex_onig.mak
+++ b/windows/mingw/rex_onig.mak
@@ -9,10 +9,7 @@ PROJECT = rex_onig
MYINCS = -I$(REGEXINC)
MYLIBS = -lonig -Wl,--enable-auto-import
OBJ = lonig.o lonig_f.o common.o
-MYCFLAGS = -W -Wall -O2
-EXPORTED = luaopen_$(PROJECT)
-SRCPATH = ..\..\src;..\..\src\oniguruma
-TESTPATH = ..\..\test
+PROJDIR = oniguruma
TESTNAME = onig
include _mingw.mak
diff --git a/windows/mingw/rex_pcre.mak b/windows/mingw/rex_pcre.mak
index c8b7a5c..b6d34ce 100644
--- a/windows/mingw/rex_pcre.mak
+++ b/windows/mingw/rex_pcre.mak
@@ -9,10 +9,7 @@ PROJECT = rex_pcre
MYINCS = -I$(REGEXINC)
MYLIBS = -lpcre
OBJ = lpcre.o lpcre_f.o common.o
-MYCFLAGS = -W -Wall -O2
-EXPORTED = luaopen_$(PROJECT)
-SRCPATH = ..\..\src;..\..\src\pcre
-TESTPATH = ..\..\test
+PROJDIR = pcre
TESTNAME = pcre
include _mingw.mak
diff --git a/windows/mingw/rex_spencer.mak b/windows/mingw/rex_spencer.mak
index 97e82be..fb82f0c 100644
--- a/windows/mingw/rex_spencer.mak
+++ b/windows/mingw/rex_spencer.mak
@@ -9,10 +9,7 @@ PROJECT = rex_spencer
MYINCS = -I$(REGEXINC)
MYLIBS = -lrxspencer
OBJ = lposix.o common.o
-MYCFLAGS = -W -Wall -O2
-EXPORTED = luaopen_$(PROJECT)
-SRCPATH = ..\..\src;..\..\src\posix
-TESTPATH = ..\..\test
+PROJDIR = posix
TESTNAME = spencer
include _mingw.mak
diff --git a/windows/mingw/rex_tre.mak b/windows/mingw/rex_tre.mak
index 9515f50..28d73ba 100644
--- a/windows/mingw/rex_tre.mak
+++ b/windows/mingw/rex_tre.mak
@@ -10,10 +10,7 @@ MYINCS = -I$(REGEXINC)
MYLIBS = -ltre
# OBJ = ltre.o ltre_w.o common.o
OBJ = ltre.o common.o
-MYCFLAGS = -W -Wall -O2
-EXPORTED = luaopen_$(PROJECT)
-SRCPATH = ..\..\src;..\..\src\tre
-TESTPATH = ..\..\test
+PROJDIR = tre
TESTNAME = tre
include _mingw.mak