From 0f9c1f34000e7fd3f4c6bdb45c568f6416906c3b Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 2 Nov 2015 12:46:42 -0500 Subject: [PATCH] gnu: Build lua-5.2 with a dynamic library MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/patches/lua52-liblua-so.patch: New file. * gnu/packages/lua.scm (lua-5.2): Use lua52-liblua-so.patch. Signed-off-by: Ludovic Courtès --- gnu/packages/lua.scm | 3 +- gnu/packages/patches/lua52-liblua-so.patch | 78 ++++++++++++++++++++++ 2 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/lua52-liblua-so.patch diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm index 6bedde35c9..d27c024cfb 100644 --- a/gnu/packages/lua.scm +++ b/gnu/packages/lua.scm @@ -37,7 +37,8 @@ version ".tar.gz")) (sha256 (base32 "0b8034v1s82n4dg5rzcn12067ha3nxaylp2vdp8gg08kjsbzphhk")) - (patches (list (search-patch "lua-pkgconfig.patch"))))) + (patches (list (search-patch "lua-pkgconfig.patch") + (search-patch "lua52-liblua-so.patch"))))) (build-system gnu-build-system) (inputs `(("readline", readline))) (arguments diff --git a/gnu/packages/patches/lua52-liblua-so.patch b/gnu/packages/patches/lua52-liblua-so.patch new file mode 100644 index 0000000000..2e6b39ae79 --- /dev/null +++ b/gnu/packages/patches/lua52-liblua-so.patch @@ -0,0 +1,78 @@ +From 7a1b4e0829124976878ca2765a8e546667a92ceb Mon Sep 17 00:00:00 2001 +From: Leo Famulari +Date: Fri, 30 Oct 2015 19:11:31 -0400 +Subject: [PATCH] apply existing non-executable library patch and install + libraries as executable + +--- + Makefile | 6 +++--- + src/Makefile | 8 +++++++- + 2 files changed, 10 insertions(+), 4 deletions(-) + +diff --git a/Makefile b/Makefile +index 1aea8e6..bfcfed9 100644 +--- a/Makefile ++++ b/Makefile +@@ -44,7 +44,7 @@ INTERPRETER= lua + COMPILER= luac + TO_BIN= $(INTERPRETER) $(COMPILER) + TO_INC= lua.h luaconf.h lualib.h lauxlib.h lua.hpp +-TO_LIB= liblua.a ++TO_LIB= liblua.a liblua.so liblua.so.${V} + TO_PC= lua-$(V).pc + TO_MAN= lua.1 luac.1 + +@@ -56,7 +56,7 @@ R= $V.3 + all: $(PLAT) + + $(PLATS): +- cd src && $(MAKE) $@ ++ cd src && $(MAKE) $@ V=$(V) R=$(R) + + clean: + cd src && $(MAKE) $@ +@@ -69,7 +69,7 @@ install: dummy $(TO_PC) + cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_PC) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD) + cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN) + cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC) +- cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB) ++ cd src && $(INSTALL_EXEC) $(TO_LIB) $(INSTALL_LIB) + cd src && $(INSTALL_DATA) ../$(TO_PC) $(INSTALL_PC) + cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN) + +diff --git a/src/Makefile b/src/Makefile +index 7b4b2b7..c86476e 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -29,6 +29,7 @@ MYOBJS= + 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 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 +@@ -43,7 +44,7 @@ LUAC_T= luac + LUAC_O= luac.o + + ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O) +-ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) ++ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO) + ALL_A= $(LUA_A) + + # Targets start here. +@@ -55,6 +56,11 @@ o: $(ALL_O) + + a: $(ALL_A) + ++$(LUA_SO): $(CORE_O) $(LIB_O) ++ $(CC) -shared -ldl -Wl,-soname,$(LUA_SO).$(V) -o $@.$(R) $? -lm $(MYLDFLAGS) ++ ln -sf $(LUA_SO).$(R) $(LUA_SO).$(V) ++ ln -sf $(LUA_SO).$(R) $(LUA_SO) ++ + $(LUA_A): $(BASE_O) + $(AR) $@ $(BASE_O) + $(RANLIB) $@ +-- +2.6.1 +