[oe-commits] Enrico Scholz : boost: fix build when ${PARALLEL_MAKE} contains '-l'

git at git.openembedded.org git at git.openembedded.org
Fri Oct 10 15:44:57 UTC 2014


Module: openembedded-core.git
Branch: dizzy
Commit: 1ff36aaec25a7ee89514366fe484345e8d1d7b64
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=1ff36aaec25a7ee89514366fe484345e8d1d7b64

Author: Enrico Scholz <enrico.scholz at sigma-chemnitz.de>
Date:   Tue Oct  7 14:07:11 2014 +0200

boost: fix build when ${PARALLEL_MAKE} contains '-l'

The '-l' option which is valid for GNU make (--> limit by load) has a
different meaning in bjam (--> limit maximum execution time) and will
break very likely the build.

Keep only the the '-l' option when passing PARALLEL_MAKE options to
bjam.

Signed-off-by: Enrico Scholz <enrico.scholz at sigma-chemnitz.de>

---

 meta/recipes-support/boost/boost.inc | 28 ++++++++++++++++++----------
 1 file changed, 18 insertions(+), 10 deletions(-)

diff --git a/meta/recipes-support/boost/boost.inc b/meta/recipes-support/boost/boost.inc
index ad1bc76..d34ca7c 100644
--- a/meta/recipes-support/boost/boost.inc
+++ b/meta/recipes-support/boost/boost.inc
@@ -106,16 +106,24 @@ BJAM_TOOLS   = "-sTOOLS=gcc \
 def get_boost_parallel_make(bb, d):
     pm = d.getVar('PARALLEL_MAKE', True)
     if pm:
-        # people are usually using "-jN" or "-j N", but let it work with something else appended to it
-        import re
-        pm_prefix = re.search("\D+", pm)
-        pm_val = re.search("\d+", pm)
-        if pm_prefix is None or pm_val is None:
-            bb.error("Unable to analyse format of PARALLEL_MAKE variable: %s" % pm)
-        pm_nval = min(64, int(pm_val.group(0)))
-        return pm_prefix.group(0) + str(pm_nval) + pm[pm_val.end():]
-    else:
-        return ""
+        # look for '-j' and throw other options (e.g. '-l') away
+        # because they might have different meaning in bjam
+        pm = pm.split()
+        while pm:
+            v = None
+            opt = pm.pop(0)
+            if opt == '-j':
+                v = pm.pop(0)
+            elif opt.startswith('-j'):
+                v = opt[2:].strip()
+            else:
+                v = None
+
+            if v:
+                v = min(64, int(v))
+                return '-j' + str(v)
+
+    return ""
 
 BOOST_PARALLEL_MAKE = "${@get_boost_parallel_make(bb, d)}"
 BJAM_OPTS    = '${BOOST_PARALLEL_MAKE} \



More information about the Openembedded-commits mailing list