02f5589d6f
gcc 4.6 has become more sensitive about option ordering, especially libraries. It requires the -l flags to be placed after the object files that need that library. See for example http://nick.zoic.org/art/etc/gcc-linker-libs.html. We had -llua at the beginning of the link command line, causing build issues (here on gcc 4.6 with host-lua). Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
50 lines
1.3 KiB
Diff
50 lines
1.3 KiB
Diff
Add the compilation of a shared library.
|
|
Compile the lua binary with the shared library.
|
|
|
|
Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
|
|
|
|
Index: b/src/Makefile
|
|
===================================================================
|
|
--- a/src/Makefile
|
|
+++ b/src/Makefile
|
|
@@ -23,6 +23,7 @@
|
|
PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris
|
|
|
|
LUA_A= liblua.a
|
|
+LUA_SO= liblua.so
|
|
CORE_O= lapi.o lcode.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
|
|
@@ -36,8 +37,9 @@
|
|
LUAC_O= luac.o print.o
|
|
|
|
ALL_O= $(CORE_O) $(LIB_O) $(LUA_O) $(LUAC_O)
|
|
-ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T)
|
|
+ALL_T= $(LUA_A) $(LUA_SO) $(LUA_T) $(LUAC_T)
|
|
ALL_A= $(LUA_A)
|
|
+ALL_SO= $(LUA_SO)
|
|
|
|
default: $(PLAT)
|
|
|
|
@@ -47,12 +49,18 @@
|
|
|
|
a: $(ALL_A)
|
|
|
|
+so: $(ALL_SO)
|
|
+
|
|
$(LUA_A): $(CORE_O) $(LIB_O)
|
|
$(AR) $@ $(CORE_O) $(LIB_O) # DLL needs all object files
|
|
$(RANLIB) $@
|
|
|
|
-$(LUA_T): $(LUA_O) $(LUA_A)
|
|
- $(CC) -o $@ $(MYLDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
|
|
+$(LUA_SO): $(CORE_O) $(LIB_O)
|
|
+ $(CC) -o $@.$(PKG_VERSION) -shared -Wl,-soname="$@.$(PKG_VERSION)" $? -nostdlib -lgcc
|
|
+ ln -fs $@.$(PKG_VERSION) $@
|
|
+
|
|
+$(LUA_T): $(LUA_O) $(LUA_SO)
|
|
+ $(CC) -o $@ -L. $(MYLDFLAGS) $(LUA_O) -llua $(LIBS)
|
|
|
|
$(LUAC_T): $(LUAC_O) $(LUA_A)
|
|
$(CC) -o $@ $(MYLDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS)
|