xref: /OK3568_Linux_fs/buildroot/package/lua/5.1.5/0002-shared-libs-for-lua.patch (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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@@ -44,6 +44,7 @@
13*4882a593Smuzhiyun TO_BIN= lua luac
14*4882a593Smuzhiyun TO_INC= lua.h luaconf.h lualib.h lauxlib.h ../etc/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@@ -61,6 +62,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@@ -23,6 +23,7 @@
34*4882a593Smuzhiyun PLATS= aix ansi bsd freebsd generic linux 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 ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o \
39*4882a593Smuzhiyun 	lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o  \
40*4882a593Smuzhiyun 	lundump.o lvm.o lzio.o
41*4882a593Smuzhiyun@@ -36,8 +37,13 @@
42*4882a593Smuzhiyun LUAC_O=	luac.o print.o
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun ALL_O= $(CORE_O) $(LIB_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 default: $(PLAT)
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun@@ -47,12 +53,23 @@
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun a:	$(ALL_A)
58*4882a593Smuzhiyun
59*4882a593Smuzhiyun+so:	$(ALL_SO)
60*4882a593Smuzhiyun+
61*4882a593Smuzhiyun $(LUA_A): $(CORE_O) $(LIB_O)
62*4882a593Smuzhiyun 	$(AR) $@ $(CORE_O) $(LIB_O)	# DLL needs all object files
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 $@ $(MYLDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
72*4882a593Smuzhiyun+else
73*4882a593Smuzhiyun+$(LUA_T): $(LUA_O) $(LUA_SO)
74*4882a593Smuzhiyun+	$(CC) -o $@ -L. $(MYLDFLAGS) $(LUA_O) -llua $(LIBS)
75*4882a593Smuzhiyun+endif
76*4882a593Smuzhiyun
77*4882a593Smuzhiyun $(LUAC_T): $(LUAC_O) $(LUA_A)
78*4882a593Smuzhiyun 	$(CC) -o $@ $(MYLDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS)
79