diff options
| -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: |
