| Add the compilation of a shared library. |
| Compile the lua binary with the shared library. |
| And install the shared library. |
| The variable BUILDMODE allows to switch between static and dynamic mode. |
| |
| Upstream: N/A specific for Buildroot build |
| Signed-off-by: Francois Perrad <francois.perrad@gadz.org> |
| |
| Index: b/Makefile |
| =================================================================== |
| --- a/Makefile |
| +++ b/Makefile |
| @@ -42,6 +42,7 @@ |
| TO_BIN= lua luac |
| TO_INC= lua.h luaconf.h lualib.h lauxlib.h lua.hpp |
| TO_LIB= liblua.a |
| +TO_SOLIB = liblua.so.$(R) |
| TO_MAN= lua.1 luac.1 |
| |
| # Lua version and release. |
| @@ -57,6 +58,8 @@ |
| install: dummy |
| cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD) |
| cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN) |
| + test -f src/$(TO_SOLIB) && cd src && $(INSTALL_EXEC) $(TO_SOLIB) $(INSTALL_LIB) || : |
| + test -f src/$(TO_SOLIB) && ln -sf $(TO_SOLIB) $(INSTALL_LIB)/liblua.so || : |
| cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC) |
| cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB) |
| cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN) |
| Index: b/src/Makefile |
| =================================================================== |
| --- a/src/Makefile |
| +++ b/src/Makefile |
| @@ -33,6 +33,7 @@ |
| PLATS= guess aix bsd c89 freebsd generic ios linux linux-readline macosx mingw posix solaris |
| |
| LUA_A= liblua.a |
| +LUA_SO= liblua.so |
| 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 |
| 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 |
| BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS) |
| @@ -44,8 +45,13 @@ |
| LUAC_O= luac.o |
| |
| ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O) |
| +ifneq (dynamic,$(BUILDMODE)) |
| ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) |
| +else |
| +ALL_T= $(LUA_A) $(LUA_SO) $(LUA_T) $(LUAC_T) |
| +endif |
| ALL_A= $(LUA_A) |
| +ALL_SO= $(LUA_SO) |
| |
| # Targets start here. |
| default: $(PLAT) |
| @@ -56,12 +62,23 @@ |
| |
| a: $(ALL_A) |
| |
| +so: $(ALL_SO) |
| + |
| $(LUA_A): $(BASE_O) |
| $(AR) $@ $(BASE_O) |
| $(RANLIB) $@ |
| |
| +$(LUA_SO): $(CORE_O) $(LIB_O) |
| + $(CC) -o $@.$(PKG_VERSION) -shared -Wl,-soname="$@.$(PKG_VERSION)" $? |
| + ln -fs $@.$(PKG_VERSION) $@ |
| + |
| +ifneq (dynamic,$(BUILDMODE)) |
| $(LUA_T): $(LUA_O) $(LUA_A) |
| $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) |
| +else |
| +$(LUA_T): $(LUA_O) $(LUA_SO) |
| + $(CC) -o $@ -L. $(LDFLAGS) $(LUA_O) -llua $(LIBS) |
| +endif |
| |
| $(LUAC_T): $(LUAC_O) $(LUA_A) |
| $(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS) |