diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-02-12 11:35:07 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-02-13 08:27:17 +0000 |
commit | 60207e0cf3a5bce9123d3631a10a9540c72a9034 (patch) | |
tree | 3649ca09c9606501af51d195ff5a74df4545d1fc | |
parent | c546cced50ce8b72fe55f9a7cfe7fdb23c51d1ad (diff) | |
download | openembedded-core-60207e0cf3a5bce9123d3631a10a9540c72a9034.tar.gz openembedded-core-60207e0cf3a5bce9123d3631a10a9540c72a9034.tar.bz2 openembedded-core-60207e0cf3a5bce9123d3631a10a9540c72a9034.zip |
autotools: Fix interaction with bitbake -b
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>
-rw-r--r-- | meta/classes/autotools.bbclass | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/meta/classes/autotools.bbclass b/meta/classes/autotools.bbclass index a5f2bff1ab..6649f5df71 100644 --- a/meta/classes/autotools.bbclass +++ b/meta/classes/autotools.bbclass @@ -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) |