From 20d043ccd51ae389cb189ac0c569cf9d714fbd31 Mon Sep 17 00:00:00 2001 From: Shmuel Zeigerman Date: Wed, 4 Apr 2012 13:04:03 +0300 Subject: Add macro REX_CREATEGLOBALVAR. --- src/algo.h | 12 ++++++++---- windows/mingw/Makefile | 6 +++--- windows/mingw/_mingw.mak | 34 ++++++++++++++++++++-------------- windows/mingw/rex_gnu.mak | 5 +---- windows/mingw/rex_onig.mak | 5 +---- windows/mingw/rex_pcre.mak | 5 +---- windows/mingw/rex_spencer.mak | 5 +---- windows/mingw/rex_tre.mak | 5 +---- 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,13 +682,17 @@ 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 -- cgit v1.2.1