[oe-commits] Petr Štetiar : vlc_1.1.4.1: Why is `lua5. 1-native` not added to `DEPENDS` automatically?

git version control git at git.openembedded.org
Sat Nov 6 16:11:25 UTC 2010


Module: openembedded.git
Branch: master
Commit: 5142b50dab9731fb0c508f8e24666865e2b84e4c
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=5142b50dab9731fb0c508f8e24666865e2b84e4c

Author: Petr Štetiar <ynezz at true.cz>
Date:   Sat Nov  6 00:36:53 2010 +0000

vlc_1.1.4.1: Why is `lua5.1-native` not added to `DEPENDS` automatically?

Paul Menzel <paulepanter at users.sourceforge.net> [2010-11-06 10:31:25]:

> Or is is inevitable to add `lua5.1-native` to `DEPENDS`?

You have to. As an example I've attached for you my recipe for lua-lanes,
which uses luac also.

-- ynezz

>From 865463173cbb5d70282ea69c2c84084e435578e4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20=C5=A0tetiar?= <ynezz at true.cz>
Date: Sun, 10 Oct 2010 10:24:39 +0200
Subject: [PATCH] lua-lanes: add new recipe
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Petr Štetiar <ynezz at true.cz>
Signed-off-by: Khem Raj <raj.khem at gmail.com>

---

 .../0001-fix-LanesTimer-inifinite-thread-GC.patch  |   31 +++
 recipes/lua/lua-lanes-2.0.6/makefile.patch         |  207 ++++++++++++++++++++
 recipes/lua/lua-lanes-2.0.6/uclibc.patch           |   13 ++
 recipes/lua/lua-lanes_2.0.6.bb                     |   34 ++++
 4 files changed, 285 insertions(+), 0 deletions(-)

diff --git a/recipes/lua/lua-lanes-2.0.6/0001-fix-LanesTimer-inifinite-thread-GC.patch b/recipes/lua/lua-lanes-2.0.6/0001-fix-LanesTimer-inifinite-thread-GC.patch
new file mode 100644
index 0000000..18fb36b
--- /dev/null
+++ b/recipes/lua/lua-lanes-2.0.6/0001-fix-LanesTimer-inifinite-thread-GC.patch
@@ -0,0 +1,31 @@
+From 69583ec6fc6cd18a0248d1233193bb2407dbda04 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20=C5=A0tetiar?= <ynezz at true.cz>
+Date: Sun, 31 Oct 2010 23:02:49 +0100
+Subject: [PATCH] fix LanesTimer inifinite thread GC
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+threading.c 394: pthread_cond_destroy(ref) failed, 16 EBUSY
+
+Signed-off-by: Petr Štetiar <ynezz at true.cz>
+---
+ src/lanes.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/src/lanes.c b/src/lanes.c
+index c02c540..54cfa7a 100644
+--- a/src/lanes.c
++++ b/src/lanes.c
+@@ -1559,7 +1559,7 @@ LUAG_FUNC( thread_gc ) {
+ 
+     // We can read 's->status' without locks, but not wait for it
+     //
+-    if (s->status < DONE) {
++    if (s->status < DONE && strcmp(s->threadName, "LanesTimer")) {
+         //
+         selfdestruct_add(s);
+         assert( s->selfdestruct_next );
+-- 
+1.7.0.4
+
diff --git a/recipes/lua/lua-lanes-2.0.6/makefile.patch b/recipes/lua/lua-lanes-2.0.6/makefile.patch
new file mode 100644
index 0000000..6807010
--- /dev/null
+++ b/recipes/lua/lua-lanes-2.0.6/makefile.patch
@@ -0,0 +1,207 @@
+Index: lanes-2.0.6/src/Makefile
+===================================================================
+--- lanes-2.0.6.orig/src/Makefile	2009-01-22 07:32:18.000000000 +0100
++++ lanes-2.0.6/src/Makefile	2010-10-17 22:00:16.000000000 +0200
+@@ -11,123 +11,21 @@
+ 
+ OBJ=$(SRC:.c=.o)
+ 
+-# LuaRocks gives 'LIBFLAG' from the outside
+-#
+-LIBFLAG=-shared
+-
+-OPT_FLAGS=-O2
+-    # -O0 -g
+-
+ LUA=lua
+ LUAC=luac
+ 
+-_SO=.so
+-ifeq "$(findstring MINGW32,$(shell uname -s))" "MINGW32"
+-  _SO=.dll
+-endif
+-
+-ifeq "$(LUAROCKS)" ""
+-  ifeq "$(findstring MINGW32,$(shell uname -s))" "MINGW32"
+-    # MinGW MSYS on Windows
+-    #
+-    # - 'lua' and 'luac' expected to be on the path
+-    # - %LUA_DEV% must lead to include files and libraries (Lua for Windows >= 5.1.3.14)
+-    # - %MSCVR80% must be the full pathname of 'msvcr80.dll'
+-    #
+-    ifeq "$(LUA_DEV)" ""
+-      $(error LUA_DEV not defined - try i.e. 'make LUA_DEV=/c/Program\ Files/Lua/5.1')
+-    endif
+-    ifeq "$(MSVCR80)" ""
+-      MSVCR80:=$(LUA_DEV)/install/support/Microsoft.VC80.CRT.SP1/MSVCR80.DLL
+-      ifneq '$(shell test -f "$(MSVCR80)" && echo found)' 'found'
+-        $(error MSVCR80 not defined - set it to full path of msvcr80.dll')
+-      endif
+-      $(warning MSVCR80=$(MSVCR80))
+-    endif
+-    LUA_FLAGS:=-I "$(LUA_DEV)/include"
+-    LUA_LIBS:="$(LUA_DEV)/lua5.1.dll" -lgcc -lmsvcr80 "$(MSVCR80)"
+-    LIBFLAG=-shared -Wl,-Map,lanes.map
+-  else
+-    # Autodetect LUA_FLAGS and/or LUA_LIBS
+-    #
+-    ifneq "$(shell which pkg-config)" ""
+-      ifeq "$(shell pkg-config --exists lua5.1 && echo 1)" "1"
+-        LUA_FLAGS:=$(shell pkg-config --cflags lua5.1)
+-        LUA_LIBS:=$(shell pkg-config --libs lua5.1)
+-          #
+-          # Ubuntu: -I/usr/include/lua5.1 
+-          #         -llua5.1
+-      else
+-        ifeq "$(shell pkg-config --exists lua && echo 1)" "1"
+-          LUA_FLAGS:=$(shell pkg-config --cflags lua)
+-          LUA_LIBS:=$(shell pkg-config --libs lua)
+-            #
+-            # OS X fink with pkg-config:
+-            #      -I/sw/include 
+-            #      -L/sw/lib -llua -lm
+-        else
+-          $(warning *** 'pkg-config' existed but did not know of 'lua[5.1]' - Good luck!)
+-          LUA_FLAGS:=
+-          LUA_LIBS:=-llua
+-        endif
+-      endif
+-    else
+-      # No 'pkg-config'; try defaults
+-      #
+-      ifeq "$(shell uname -s)" "Darwin"
+-        $(warning *** Assuming 'fink' at default path)
+-        LUA_FLAGS:=-I/sw/include
+-        LUA_LIBS:=-L/sw/lib -llua
+-      else
+-        $(warning *** Assuming an arbitrary Lua installation; try installing 'pkg-config')
+-        LUA_FLAGS:=
+-        LUA_LIBS:=-llua
+-      endif
+-    endif
+-  endif
+-
+-  ifeq "$(shell uname -s)" "Darwin"
+-    # Some machines need 'MACOSX_DEPLOYMENT_TARGET=10.3' for using '-undefined dynamic_lookup'
+-    # (at least PowerPC running 10.4.11); does not harm the others
+-    #
+-    CC = MACOSX_DEPLOYMENT_TARGET=10.3 gcc
+-    LIBFLAG = -bundle -undefined dynamic_lookup
+-  endif
+-  
+-  CFLAGS=-Wall -Werror $(OPT_FLAGS) $(LUA_FLAGS)
+-  LIBS=$(LUA_LIBS)
+-endif
+-
+ #---
+-# PThread platform specifics
+-#
+-ifeq "$(shell uname -s)" "Linux"
+-  # -D_GNU_SOURCE needed for 'pthread_mutexattr_settype'
+-  CFLAGS += -D_GNU_SOURCE -fPIC
+-
+-  # Use of -DUSE_PTHREAD_TIMEDJOIN is possible, but not recommended (slower & keeps threads
+-  # unreleased somewhat longer)
+-  #CFLAGS += -DUSE_PTHREAD_TIMEDJOIN
+-
+-  LIBS += -lpthread
+-endif
+-
+-ifeq "$(shell uname -s)" "BSD"
+-  LIBS += -lpthread
+-endif
+-
+-#---
+-all: lua51-$(MODULE)$(_SO)
++all: lua51-$(MODULE).so
+ 
+ %.o: %.c *.h Makefile
+ 
+ # Note: Don't put $(LUA_LIBS) ahead of $^; MSYS will not like that (I think)
+ #
+-lua51-$(MODULE)$(_SO): $(OBJ)
+-	$(CC) $(LIBFLAG) $(LIBS) $^ $(LUA_LIBS) -o $@
++lua51-$(MODULE).so: $(OBJ)
++	$(CC) -shared -fPIC -lpthread -D_GNU_SOURCE `pkg-config --cflags --libs lua5.1` $(MYFLAGS) $^ -o $@
+ 
+ clean:
+-	-rm -rf lua51-$(MODULE)$(_SO) *.lch *.o *.tmp *.map
++	-rm -rf lua51-$(MODULE).so *.lch *.o *.tmp *.map
+ 
+ lanes.o: keeper.lch
+ 
+@@ -139,38 +37,5 @@
+ 	$(LUA) ../tools/bin2c.lua $@.tmp -o $@
+ 	-rm $@.tmp
+ 
+-#---
+-# NSLU2 "slug" Linux ARM
+-#
+-nslu2:
+-	$(MAKE) all CFLAGS="$(CFLAGS) -I/opt/include -L/opt/lib -D_GNU_SOURCE -lpthread"
+-
+-#---
+-# Cross compiling to Win32 (MinGW on OS X Intel)
+-#
+-# Point WIN32_LUA51 to an extraction of LuaBinaries dll8 and dev packages.
+-#
+-# Note: Only works on platforms with same endianess (i.e. not from PowerPC OS X,
+-#       since 'luac' uses the host endianess)
+-#
+-# EXPERIMENTAL; NOT TESTED OF LATE.
+-#
+-MINGW_GCC=mingw32-gcc
+-    # i686-pc-mingw32-gcc
+-
+-win32: $(WIN32_LUA51)/include/lua.h
+-	$(MAKE) build CC=$(MINGW_GCC) \
+-            LUA_FLAGS=-I$(WIN32_LUA51)/include \
+-            LUA_LIBS="-L$(WIN32_LUA51) -llua51" \
+-            _SO=.dll \
+-            SO_FLAGS=-shared \
+-            LUA=lua51 \
+-            LUAC=luac51
+-
+-$(WIN32_LUA51)/include/lua.h:
+-	@echo "Usage: make win32 WIN32_LUA51=<path of extracted LuaBinaries dll8 and dev packages>"
+-	@echo "                  [MINGW_GCC=...mingw32-gcc]"
+-	@false
+-
+-.PROXY:	all clean nslu2 win32
++.PROXY:	all clean
+ 
+Index: lanes-2.0.6/Makefile
+===================================================================
+--- lanes-2.0.6.orig/Makefile	2010-07-27 11:39:00.000000000 +0200
++++ lanes-2.0.6/Makefile	2010-10-17 22:14:20.000000000 +0200
+@@ -32,8 +32,10 @@
+ else
+   # Autodetect LUA & LUAC
+   #
+-  LUA=$(word 1,$(shell which lua5.1) $(shell which lua51) lua)
+-  LUAC=$(word 1,$(shell which luac5.1) $(shell which luac51) luac)
++  #LUA=$(word 1,$(shell which lua5.1) $(shell which lua51) lua)
++  #LUAC=$(word 1,$(shell which luac5.1) $(shell which luac51) luac)
++  LUA=lua
++  LUAC=luac
+ endif
+ 
+ _PREFIX=LUA_CPATH=./src/?$(_SO) LUA_PATH="src/?.lua;./tests/?.lua"
+@@ -42,7 +44,7 @@
+ all: $(_TARGET_SO)
+ 
+ $(_TARGET_SO): src/*.lua src/*.c src/*.h
+-	cd src && $(MAKE) LUA=$(LUA) LUAC=$(LUAC)
++	cd src && $(MAKE) LUA=$(LUA) LUAC=$(LUAC) MYFLAGS='$(MYFLAGS)'
+ 
+ clean:
+ 	cd src && $(MAKE) clean
+@@ -183,7 +185,7 @@
+ #
+ install: $(_TARGET_SO) src/lanes.lua
+ 	mkdir -p $(LUA_LIBDIR) $(LUA_SHAREDIR)
+-	install -m 644 $(_TARGET_SO) $(LUA_LIBDIR)
++	install $(_TARGET_SO) $(LUA_LIBDIR)
+ 	cp -p src/lanes.lua $(LUA_SHAREDIR)
+ 
+ 
diff --git a/recipes/lua/lua-lanes-2.0.6/uclibc.patch b/recipes/lua/lua-lanes-2.0.6/uclibc.patch
new file mode 100644
index 0000000..b3d1f83
--- /dev/null
+++ b/recipes/lua/lua-lanes-2.0.6/uclibc.patch
@@ -0,0 +1,13 @@
+Index: lanes-2.0.6/src/threading.h
+===================================================================
+--- lanes-2.0.6.orig/src/threading.h	2010-10-10 09:35:20.000000000 +0200
++++ lanes-2.0.6/src/threading.h	2010-10-10 09:35:32.000000000 +0200
+@@ -112,7 +112,7 @@
+   #ifdef PLATFORM_OSX
+     #define YIELD() pthread_yield_np()
+   #else
+-    #define YIELD() pthread_yield()
++    #define YIELD() sched_yield()
+   #endif
+ #endif
+ 
diff --git a/recipes/lua/lua-lanes_2.0.6.bb b/recipes/lua/lua-lanes_2.0.6.bb
new file mode 100644
index 0000000..49ceb9c
--- /dev/null
+++ b/recipes/lua/lua-lanes_2.0.6.bb
@@ -0,0 +1,34 @@
+DESCRIPTION = "Lua Lanes is a Lua extension library providing the possibility to run multiple Lua states in parallel."
+LICENSE = "MIT"
+HOMEPAGE = "http://kotisivu.dnainternet.net/askok/bin/lanes/index.html"
+
+DEPENDS += "lua5.1-native"
+RDEPENDS_${PN} += "lua5.1"
+
+PR = "r0"
+S = "${WORKDIR}/lanes-${PV}"
+
+SRC_URI = "http://luaforge.net/frs/download.php/4652/lanes-2.0.6.tgz \
+           file://makefile.patch \
+           file://0001-fix-LanesTimer-inifinite-thread-GC.patch \
+          "
+
+UCLIBC_PATCHES = "file://uclibc.patch"
+SRC_URI_append_linux-uclibc = "${UCLIBC_PATCHES}"
+SRC_URI_append_linux-uclibceabi = "${UCLIBC_PATCHES}"
+
+LUA_LIB_DIR =  "${libdir}/lua/5.1"
+LUA_SHARE_DIR = "${datadir}/lua/5.1"
+
+PACKAGES = "${PN} ${PN}-dbg"
+FILES_${PN} = "${LUA_LIB_DIR}/lua51-lanes.so ${LUA_SHARE_DIR}/lanes.lua"
+FILES_${PN}-dbg = "${LUA_LIB_DIR}/.debug/lua51-lanes.so"
+
+EXTRA_OEMAKE = "MYFLAGS='${CFLAGS} ${LDFLAGS}'"
+
+do_install() {
+	oe_runmake install DESTDIR='${D}/usr' 
+}
+
+SRC_URI[md5sum] = "1716bdf138fcc65b7069aaad864da677"
+SRC_URI[sha256sum] = "7b07fa1c21749981ec0addcf8e9e85acfca91efe8d3f64982a6ac0bc6a615e70"





More information about the Openembedded-commits mailing list