]> code.ossystems Code Review - openembedded-core.git/commitdiff
autotools: Fix interaction with bitbake -b
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 12 Feb 2016 11:35:07 +0000 (11:35 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sat, 13 Feb 2016 08:27:17 +0000 (08:27 +0000)
If you run bitbake -b on something using autotools with dependencies on

m4 files, it currently fails as the TASKDEPDATA is incomplete for
bitbake -b
and this means the relevant macros aren't found.

Work around this by adding *all* m4 files for the -b case (and show a warning).

[YOCTO #8890]

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/autotools.bbclass

index a5f2bff1ab12b31a3b8ea19456bd385d2279e7a9..6649f5df71a411d5bfc48272b57e396baac67caa 100644 (file)
@@ -148,12 +148,18 @@ python autotools_copy_aclocals () {
     bb.utils.mkdirhier(aclocaldir)
     start = None
     configuredeps = []
+    # Detect bitbake -b usage
+    # Everything but quilt-native would have dependencies
+    nodeps = (pn != "quilt-native")
 
     for dep in taskdepdata:
         data = taskdepdata[dep]
         if data[1] == "do_configure" and data[0] == pn:
             start = dep
+        if not nodeps and start:
             break
+        if nodeps and data[0] != pn:
+            nodeps = False
     if start is None:
         bb.fatal("Couldn't find ourself in BB_TASKDEPDATA?")
 
@@ -188,6 +194,11 @@ python autotools_copy_aclocals () {
     #bb.warn(str(configuredeps2))
 
     cp = []
+    if nodeps:
+        bb.warn("autotools: Unable to find task dependencies, -b being used? Pulling in all m4 files")
+        for l in [d.expand("${STAGING_DATADIR_NATIVE}/aclocal/"), d.expand("${STAGING_DATADIR}/aclocal/")]:
+            cp.extend(os.path.join(l, f) for f in os.listdir(l))
+
     for c in configuredeps:
         if c.endswith("-native"):
             manifest = d.expand("${SSTATE_MANIFESTS}/manifest-${BUILD_ARCH}-%s.populate_sysroot" % c)