[oe-commits] [meta-openembedded] 45/60: libebml: don't rely on make -e, obey LDFLAGS

git at git.openembedded.org git at git.openembedded.org
Wed Aug 17 18:07:26 UTC 2016


martin_jansa pushed a commit to branch krogoth-next
in repository meta-openembedded.

commit 9ecd1e0e1395d1af605260c3617e700563205eef
Author: Christopher Larson <chris_larson at mentor.com>
AuthorDate: Fri Jun 17 13:34:49 2016 -0700

    libebml: don't rely on make -e, obey LDFLAGS
    
    We need to obey LDFLAGS to get the correct hash style for external toolchains,
    and passing vars explicitly is better than relying on implicitly overriding
    everything blindly from the environment.
    
    Signed-off-by: Christopher Larson <chris_larson at mentor.com>
    Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>
    (cherry picked from commit 64d874f768207a8a1e27a5c6edd3abe90607af03)
    Signed-off-by: Armin Kuster <akuster808 at gmail.com>
---
 .../recipes-mkv/libebml/libebml/ldflags.patch      | 57 ++++++++++++++++++++++
 .../libebml/libebml/override-uname.patch           | 42 ++++++++++++++++
 .../recipes-mkv/libebml/libebml_1.3.0.bb           | 44 +++++++++++++++--
 3 files changed, 138 insertions(+), 5 deletions(-)

diff --git a/meta-multimedia/recipes-mkv/libebml/libebml/ldflags.patch b/meta-multimedia/recipes-mkv/libebml/libebml/ldflags.patch
new file mode 100644
index 0000000..a01c754
--- /dev/null
+++ b/meta-multimedia/recipes-mkv/libebml/libebml/ldflags.patch
@@ -0,0 +1,57 @@
+Use LD and obey LDFLAGS
+
+Signed-off-by: Christopher Larson <chris_larson at mentor.com>
+Upstream-Status: Pending
+
+diff --git a/make/linux/Makefile b/make/linux/Makefile
+index 391b6e3..a2ac13e 100644
+--- a/make/linux/Makefile
++++ b/make/linux/Makefile
+@@ -64,6 +64,7 @@ objects_so:=$(patsubst %$(EXTENSION),%.lo,$(sources))
+ WARNINGFLAGS=-Wall -Wextra -Wno-unknown-pragmas -ansi -fno-gnu-keywords -Wshadow
+ COMPILEFLAGS=$(WARNINGFLAGS) $(CXXFLAGS) $(CPPFLAGS) $(DEBUGFLAGS) $(INCLUDE)
+ DEPENDFLAGS  = $(CXXFLAGS) $(INCLUDE)
++LINKFLAGS=$(LDFLAGS)
+
+ ifeq (Darwin,$(shell uname -s))
+ all: staticlib
+@@ -91,7 +92,7 @@ $(LIBRARY): $(objects)
+	$(RANLIB) $@
+
+ $(LIBRARY_SO): $(objects_so)
+-	$(CXX) -shared -Wl,-soname,$(LIBRARY_SO_VER) -o $(LIBRARY_SO_VER) $(objects_so)
++	$(LD) $(LINKFLAGS) -shared -Wl,-soname,$(LIBRARY_SO_VER) -o $(LIBRARY_SO_VER) $(objects_so)
+	rm -f $(LIBRARY_SO)
+	ln -s $(LIBRARY_SO_VER) $(LIBRARY_SO)
+
+diff --git a/make/mingw32/Makefile b/make/mingw32/Makefile
+index e5986ef..6ca16aa 100644
+--- a/make/mingw32/Makefile
++++ b/make/mingw32/Makefile
+@@ -18,6 +18,7 @@ DEBUGFLAGS=-g -DDEBUG
+ endif
+ CROSS   =
+ CXX     = $(CROSS)g++
++LD      = $(CXX)
+ CC      = $(CROSS)gcc
+ WINDRES = $(CROSS)windres
+ RANLIB  = $(CROSS)ranlib
+@@ -33,6 +34,7 @@ LIBS = libebml.a
+ endif
+ INCS = -I"$(shell pwd)/../.."
+ COMPILEFLAGS = $(DEBUGFLAGS) $(INCS) $(DLLFLAGS) $(CXXFLAGS)
++LINKFLAGS = $(LDFLAGS)
+
+ .PHONY: all all-before all-after clean clean-custom
+
+@@ -54,7 +56,7 @@ libebml.a: $(OBJ)
+	$(RANLIB) $@
+
+ libebml.dll: $(OBJ)
+-	$(CXX) -shared -Wl,--export-all -Wl,--out-implib=$@.a -o $@ $(OBJ)
++	$(LD) $(LINKFLAGS) -shared -Wl,--export-all -Wl,--out-implib=$@.a -o $@ $(OBJ)
+
+ depend:
+	@echo Calculating dependecies:
+--
+2.8.0
diff --git a/meta-multimedia/recipes-mkv/libebml/libebml/override-uname.patch b/meta-multimedia/recipes-mkv/libebml/libebml/override-uname.patch
new file mode 100644
index 0000000..57eb345
--- /dev/null
+++ b/meta-multimedia/recipes-mkv/libebml/libebml/override-uname.patch
@@ -0,0 +1,42 @@
+Allow override of the 'uname -s' for cross-compilation
+
+Signed-off-by: Christopher Larson <chris_larson at mentor.com>
+Upstream-Status: Pending
+
+diff --git a/make/linux/Makefile b/make/linux/Makefile
+index a2ac13e..4188bee 100644
+--- a/make/linux/Makefile
++++ b/make/linux/Makefile
+@@ -9,9 +9,11 @@
+ # 'make DEBUG=yes'.
+ #
+
++TARGET_OS ?= $(shell uname -s)
++
+ # Paths
+ # BeOS wants the libs and headers in /boot/home/config
+-ifeq (BeOS,$(shell uname -s))
++ifeq (BeOS,$(TARGET_OS))
+ prefix=/boot/home/config
+ else
+ prefix=/usr/local
+@@ -66,7 +68,7 @@ COMPILEFLAGS=$(WARNINGFLAGS) $(CXXFLAGS) $(CPPFLAGS) $(DEBUGFLAGS) $(INCLUDE)
+ DEPENDFLAGS  = $(CXXFLAGS) $(INCLUDE)
+ LINKFLAGS=$(LDFLAGS)
+
+-ifeq (Darwin,$(shell uname -s))
++ifeq (Darwin,$(TARGET_OS))
+ all: staticlib
+ else
+ all: staticlib sharedlib
+@@ -116,7 +118,7 @@ depend:
+		$(CXX) $(DEPENDFLAGS) -MM -MT $$o $$i >> .depend ; \
+	done
+
+-ifeq (Darwin,$(shell uname -s))
++ifeq (Darwin,$(TARGET_OS))
+ install: install_staticlib install_headers
+ else
+ install: install_staticlib install_sharedlib install_headers
+--
+2.8.0
diff --git a/meta-multimedia/recipes-mkv/libebml/libebml_1.3.0.bb b/meta-multimedia/recipes-mkv/libebml/libebml_1.3.0.bb
index 71e2bfc..b756a39 100644
--- a/meta-multimedia/recipes-mkv/libebml/libebml_1.3.0.bb
+++ b/meta-multimedia/recipes-mkv/libebml/libebml_1.3.0.bb
@@ -2,15 +2,49 @@ SUMMARY = "libebml is a C++ libary to parse EBML files"
 LICENSE = "LGPLv2.1"
 LIC_FILES_CHKSUM = "file://LICENSE.LGPL;md5=f14599a2f089f6ff8c97e2baa4e3d575"
 
-SRC_URI = "http://dl.matroska.org/downloads/libebml/libebml-${PV}.tar.bz2"
+SRC_URI = "\
+    http://dl.matroska.org/downloads/libebml/libebml-${PV}.tar.bz2 \
+    file://ldflags.patch \
+    file://override-uname.patch \
+"
 SRC_URI[md5sum] = "efec729bf5a51e649e1d9d1f61c0ae7a"
 SRC_URI[sha256sum] = "83b074d6b62715aa0080406ea84d33df2e44b5d874096640233a4db49b8096de"
 
-EXTRA_OEMAKE = "-e MAKEFLAGS="
+do_unpack[postfuncs] += "dos2unix"
 
-do_compile() {
-    cd ${S}/make/linux
-    oe_runmake CROSS="${TARGET_PREFIX}"
+dos2unix () {
+    cr="$(printf '\r')"
+    for f in make/*/Makefile; do
+        tr -d "$cr" <"$f" >"$f.new" && \
+            mv "$f.new" "$f"
+    done
+}
+
+LIBEBML_OS = "Unknown"
+LIBEBML_OS_linux = "Linux"
+LIBEBML_OS_darwin = "Darwin"
+LIBEBML_OS_mingw32 = "Windows"
+
+EXTRA_OEMAKE = "\
+    'TARGET_OS=${LIBEBML_OS}' \
+    \
+    'CXX=${CXX}' \
+    'LD=${CXX}' \
+    'AR=${AR}' \
+    'RANLIB=${RANLIB}' \
+    \
+    'DEBUGFLAGS=' \
+    'CPPFLAGS=${CPPFLAGS}' \
+    'CXXFLAGS=${CXXFLAGS}' \
+    'LDFLAGS=${LDFLAGS}' \
+    \
+    'prefix=${prefix}' \
+    'libdir=${libdir}' \
+    'includedir=${includedir}/ebml' \
+"
+
+do_compile () {
+    oe_runmake -C make/linux
 }
 
 do_install() {

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list