summaryrefslogtreecommitdiffstats
path: root/meta/classes
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2016-02-12 11:35:07 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-02-14 11:42:18 +0000
commit2eba066ccbbdf672315f52018fa52565713f7b2a (patch)
tree13cd540f6aab6695107ddffbbf50128cdaba64f2 /meta/classes
parent9c8fee9c62beaffa930c4b26dea70a4be5a66780 (diff)
downloadpoky-2eba066ccbbdf672315f52018fa52565713f7b2a.tar.gz
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] (From OE-Core rev: 60207e0cf3a5bce9123d3631a10a9540c72a9034) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes')
-rw-r--r--meta/classes/autotools.bbclass11
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 () {
148 bb.utils.mkdirhier(aclocaldir) 148 bb.utils.mkdirhier(aclocaldir)
149 start = None 149 start = None
150 configuredeps = [] 150 configuredeps = []
151 # Detect bitbake -b usage
152 # Everything but quilt-native would have dependencies
153 nodeps = (pn != "quilt-native")
151 154
152 for dep in taskdepdata: 155 for dep in taskdepdata:
153 data = taskdepdata[dep] 156 data = taskdepdata[dep]
154 if data[1] == "do_configure" and data[0] == pn: 157 if data[1] == "do_configure" and data[0] == pn:
155 start = dep 158 start = dep
159 if not nodeps and start:
156 break 160 break
161 if nodeps and data[0] != pn:
162 nodeps = False
157 if start is None: 163 if start is None:
158 bb.fatal("Couldn't find ourself in BB_TASKDEPDATA?") 164 bb.fatal("Couldn't find ourself in BB_TASKDEPDATA?")
159 165
@@ -188,6 +194,11 @@ python autotools_copy_aclocals () {
188 #bb.warn(str(configuredeps2)) 194 #bb.warn(str(configuredeps2))
189 195
190 cp = [] 196 cp = []
197 if nodeps:
198 bb.warn("autotools: Unable to find task dependencies, -b being used? Pulling in all m4 files")
199 for l in [d.expand("${STAGING_DATADIR_NATIVE}/aclocal/"), d.expand("${STAGING_DATADIR}/aclocal/")]:
200 cp.extend(os.path.join(l, f) for f in os.listdir(l))
201
191 for c in configuredeps: 202 for c in configuredeps:
192 if c.endswith("-native"): 203 if c.endswith("-native"):
193 manifest = d.expand("${SSTATE_MANIFESTS}/manifest-${BUILD_ARCH}-%s.populate_sysroot" % c) 204 manifest = d.expand("${SSTATE_MANIFESTS}/manifest-${BUILD_ARCH}-%s.populate_sysroot" % c)