diff options
Diffstat (limited to 'meta')
-rw-r--r-- | meta/classes/autotools.bbclass | 40 |
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: |