summaryrefslogtreecommitdiffstats
path: root/meta/classes/autotools.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'meta/classes/autotools.bbclass')
-rw-r--r--meta/classes/autotools.bbclass40
1 files changed, 38 insertions, 2 deletions
diff --git a/meta/classes/autotools.bbclass b/meta/classes/autotools.bbclass
index afca760804..c67896882d 100644
--- a/meta/classes/autotools.bbclass
+++ b/meta/classes/autotools.bbclass
@@ -135,15 +135,51 @@ python autotools_copy_aclocals () {
135 return 135 return
136 136
137 taskdepdata = d.getVar("BB_TASKDEPDATA", False) 137 taskdepdata = d.getVar("BB_TASKDEPDATA", False)
138 #bb.warn(str(taskdepdata))
138 pn = d.getVar("PN", True) 139 pn = d.getVar("PN", True)
139 aclocaldir = d.getVar("ACLOCALDIR", True) 140 aclocaldir = d.getVar("ACLOCALDIR", True)
140 oe.path.remove(aclocaldir) 141 oe.path.remove(aclocaldir)
141 bb.utils.mkdirhier(aclocaldir) 142 bb.utils.mkdirhier(aclocaldir)
143 start = None
142 configuredeps = [] 144 configuredeps = []
145
143 for dep in taskdepdata: 146 for dep in taskdepdata:
144 data = taskdepdata[dep] 147 data = taskdepdata[dep]
145 if data[1] == "do_configure" and data[0] != pn: 148 if data[1] == "do_configure" and data[0] == pn:
146 configuredeps.append(data[0]) 149 start = dep
150 break
151 if not start:
152 bb.fatal("Couldn't find ourself in BB_TASKDEPDATA?")
153
154 # We need to find configure tasks which are either from <target> -> <target>
155 # or <native> -> <native> but not <target> -> <native> unless they're direct
156 # dependencies. This mirrors what would get restored from sstate.
157 done = [dep]
158 next = [dep]
159 while next:
160 new = []
161 for dep in next:
162 data = taskdepdata[dep]
163 for datadep in data[3]:
164 if datadep in done:
165 continue
166 done.append(datadep)
167 if (not data[0].endswith("-native")) and taskdepdata[datadep][0].endswith("-native") and dep != start:
168 continue
169 new.append(datadep)
170 if taskdepdata[datadep][1] == "do_configure":
171 configuredeps.append(taskdepdata[datadep][0])
172 next = new
173
174 #configuredeps2 = []
175 #for dep in taskdepdata:
176 # data = taskdepdata[dep]
177 # if data[1] == "do_configure" and data[0] != pn:
178 # configuredeps2.append(data[0])
179 #configuredeps.sort()
180 #configuredeps2.sort()
181 #bb.warn(str(configuredeps))
182 #bb.warn(str(configuredeps2))
147 183
148 cp = [] 184 cp = []
149 for c in configuredeps: 185 for c in configuredeps: