aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xlualdap/Makefile16
-rwxr-xr-xlualdap/src/lualdap.c25
2 files changed, 32 insertions, 9 deletions
diff --git a/lualdap/Makefile b/lualdap/Makefile
index 0c6c4cb..c0abdf6 100755
--- a/lualdap/Makefile
+++ b/lualdap/Makefile
@@ -1,10 +1,11 @@
WARN= -Wall -Wmissing-prototypes -Wmissing-declarations -ansi
INCS= -I/usr/local/include/lua5
LIBS_DIR=
-LIBS= -llua.5.0 -llualib.5.0 -lm -lldap -ldl
+LIBS= -llua -llualib -lm -lldap -ldl
CFLAGS= -g $(MYCFLAGS) $(WARN) $(INCS) $(DEFS)
-VERSION= 1.0a
+V= 1.0
+VERSION= $Va
PKG= lualdap-$(VERSION)
TAR_FILE= $(PKG).tar.gz
ZIP_FILE= $(PKG).zip
@@ -17,10 +18,10 @@ AR= ar rcu
RANLIB= ranlib
OBJ= lualdap.o
-LIB= liblualdap.$(VERSION).a
-SO= liblualdap.$(VERSION).so
-DYLIB= liblualdap.$(VERSION).dylib
-DLL= lualdap.$(VERSION).dll
+LIB= liblualdap$(VERSION).a
+SO= liblualdap$(VERSION).so
+DYLIB= liblualdap$(VERSION).dylib
+DLL= lualdap$(VERSION).dll
dist:
mkdir $(PKG);
@@ -42,7 +43,8 @@ $(SO): $(OBJ)
dylib: $(DYLIB)
$(DYLIB): $(OBJ)
sed -e "s/LIB_NAME/$(DYLIB)/" loader.tmpl > lualdap.lua
- gcc -o $@ -dynamiclib $(OBJ) $(LIBS_DIR) $(LIBS)
+ #gcc -o $@ -dynamiclib $(OBJ) $(LIBS_DIR) $(LIBS)
+ libtool -dynamic -compatibility_version $V -current_version $V -o $@ $(OBJ) $(LIBS_DIR) $(LIBS) -lcc_dynamic -lc
clean:
rm -f $(OBJ) $(LIB) $(SO) $(DYLIB) $(DLL) $(TAR_FILE) $(ZIP_FILE)
diff --git a/lualdap/src/lualdap.c b/lualdap/src/lualdap.c
index b424392..eb87bf3 100755
--- a/lualdap/src/lualdap.c
+++ b/lualdap/src/lualdap.c
@@ -1,7 +1,7 @@
/*
** LuaLDAP
** See Copyright Notice in license.html
-** $Id: lualdap.c,v 1.28 2004-07-09 16:16:32 tomas Exp $
+** $Id: lualdap.c,v 1.29 2004-09-17 15:40:18 tomas Exp $
*/
#include <stdlib.h>
@@ -944,14 +944,35 @@ static int lualdap_open_simple (lua_State *L) {
/*
** Create ldap table and register the open method.
*/
-int lualdap_libopen (lua_State *L) {
+int luaopen_lualdap (lua_State *L) {
+ const char *name;
+ int lualdap;
+
lualdap_createmeta (L);
lua_newtable (L);
+ lualdap = lua_gettop (L);
lua_pushliteral (L, "open_simple");
lua_pushcfunction (L, lualdap_open_simple);
lua_rawset (L, -3);
lua_setglobal (L, LUALDAP_TABLENAME);
+ /* if Lua 5.0 then Set package.loaded[name] = lualdap */
+ if (lua_isstring(L, 1))
+ name = lua_tostring (L, 1);
+ else {
+ lua_getglobal (L, "arg");
+ lua_rawgeti (L, -1, 1);
+ name = lua_tostring (L, -1);
+ lua_pop (L, 2);
+ }
+ lua_getglobal (L, "package");
+ lua_pushliteral (L, "loaded");
+ lua_gettable (L, -2);
+ lua_pushstring (L, name);
+ lua_pushvalue (L, lualdap);
+ lua_settable (L, -3); /* package.loaded[name] = lualdap */
+ lua_pop (L, 2);
+
return 1;
}