1*4882a593SmuzhiyunAdd the compilation of a shared library. 2*4882a593SmuzhiyunCompile the lua binary with the shared library. 3*4882a593SmuzhiyunAnd install the shared library. 4*4882a593SmuzhiyunThe variable BUILDMODE allows to switch between static and dynamic mode. 5*4882a593Smuzhiyun 6*4882a593SmuzhiyunSigned-off-by: Francois Perrad <francois.perrad@gadz.org> 7*4882a593Smuzhiyun 8*4882a593SmuzhiyunIndex: b/Makefile 9*4882a593Smuzhiyun=================================================================== 10*4882a593Smuzhiyun--- a/Makefile 11*4882a593Smuzhiyun+++ b/Makefile 12*4882a593Smuzhiyun@@ -42,6 +42,7 @@ 13*4882a593Smuzhiyun TO_BIN= lua luac 14*4882a593Smuzhiyun TO_INC= lua.h luaconf.h lualib.h lauxlib.h lua.hpp 15*4882a593Smuzhiyun TO_LIB= liblua.a 16*4882a593Smuzhiyun+TO_SOLIB = liblua.so.$(R) 17*4882a593Smuzhiyun TO_MAN= lua.1 luac.1 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun # Lua version and release. 20*4882a593Smuzhiyun@@ -57,6 +58,8 @@ 21*4882a593Smuzhiyun install: dummy 22*4882a593Smuzhiyun cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD) 23*4882a593Smuzhiyun cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN) 24*4882a593Smuzhiyun+ test -f src/$(TO_SOLIB) && cd src && $(INSTALL_EXEC) $(TO_SOLIB) $(INSTALL_LIB) || : 25*4882a593Smuzhiyun+ test -f src/$(TO_SOLIB) && ln -sf $(TO_SOLIB) $(INSTALL_LIB)/liblua.so || : 26*4882a593Smuzhiyun cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC) 27*4882a593Smuzhiyun cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB) 28*4882a593Smuzhiyun cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN) 29*4882a593SmuzhiyunIndex: b/src/Makefile 30*4882a593Smuzhiyun=================================================================== 31*4882a593Smuzhiyun--- a/src/Makefile 32*4882a593Smuzhiyun+++ b/src/Makefile 33*4882a593Smuzhiyun@@ -33,6 +33,7 @@ 34*4882a593Smuzhiyun PLATS= guess aix bsd c89 freebsd generic linux linux-readline macosx mingw posix solaris 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun LUA_A= liblua.a 37*4882a593Smuzhiyun+LUA_SO= liblua.so 38*4882a593Smuzhiyun CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o 39*4882a593Smuzhiyun LIB_O= lauxlib.o lbaselib.o lcorolib.o ldblib.o liolib.o lmathlib.o loadlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o linit.o 40*4882a593Smuzhiyun BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS) 41*4882a593Smuzhiyun@@ -44,8 +45,13 @@ 42*4882a593Smuzhiyun LUAC_O= luac.o 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O) 45*4882a593Smuzhiyun+ifneq (dynamic,$(BUILDMODE)) 46*4882a593Smuzhiyun ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) 47*4882a593Smuzhiyun+else 48*4882a593Smuzhiyun+ALL_T= $(LUA_A) $(LUA_SO) $(LUA_T) $(LUAC_T) 49*4882a593Smuzhiyun+endif 50*4882a593Smuzhiyun ALL_A= $(LUA_A) 51*4882a593Smuzhiyun+ALL_SO= $(LUA_SO) 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun # Targets start here. 54*4882a593Smuzhiyun default: $(PLAT) 55*4882a593Smuzhiyun@@ -56,12 +62,23 @@ 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun a: $(ALL_A) 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun+so: $(ALL_SO) 60*4882a593Smuzhiyun+ 61*4882a593Smuzhiyun $(LUA_A): $(BASE_O) 62*4882a593Smuzhiyun $(AR) $@ $(BASE_O) 63*4882a593Smuzhiyun $(RANLIB) $@ 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun+$(LUA_SO): $(CORE_O) $(LIB_O) 66*4882a593Smuzhiyun+ $(CC) -o $@.$(PKG_VERSION) -shared -Wl,-soname="$@.$(PKG_VERSION)" $? 67*4882a593Smuzhiyun+ ln -fs $@.$(PKG_VERSION) $@ 68*4882a593Smuzhiyun+ 69*4882a593Smuzhiyun+ifneq (dynamic,$(BUILDMODE)) 70*4882a593Smuzhiyun $(LUA_T): $(LUA_O) $(LUA_A) 71*4882a593Smuzhiyun $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) 72*4882a593Smuzhiyun+else 73*4882a593Smuzhiyun+$(LUA_T): $(LUA_O) $(LUA_SO) 74*4882a593Smuzhiyun+ $(CC) -o $@ -L. $(LDFLAGS) $(LUA_O) -llua $(LIBS) 75*4882a593Smuzhiyun+endif 76*4882a593Smuzhiyun 77*4882a593Smuzhiyun $(LUAC_T): $(LUAC_O) $(LUA_A) 78*4882a593Smuzhiyun $(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS) 79