diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/lib/devtool/standard.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py index 34de7bd623..e4d2a57ab6 100644 --- a/scripts/lib/devtool/standard.py +++ b/scripts/lib/devtool/standard.py | |||
@@ -674,6 +674,29 @@ def _extract_source(srctree, keep_temp, devbranch, sync, d): | |||
674 | 674 | ||
675 | shutil.move(srcsubdir, srctree) | 675 | shutil.move(srcsubdir, srctree) |
676 | 676 | ||
677 | if os.path.abspath(d.getVar('S', True)) == os.path.abspath(d.getVar('WORKDIR', True)): | ||
678 | # If recipe extracts to ${WORKDIR}, symlink the files into the srctree | ||
679 | # (otherwise the recipe won't build as expected) | ||
680 | local_files_dir = os.path.join(srctree, 'oe-local-files') | ||
681 | addfiles = [] | ||
682 | for root, _, files in os.walk(local_files_dir): | ||
683 | relpth = os.path.relpath(root, local_files_dir) | ||
684 | if relpth != '.': | ||
685 | bb.utils.mkdirhier(os.path.join(srctree, relpth)) | ||
686 | for fn in files: | ||
687 | if fn == '.gitignore': | ||
688 | continue | ||
689 | destpth = os.path.join(srctree, relpth, fn) | ||
690 | if os.path.exists(destpth): | ||
691 | os.unlink(destpth) | ||
692 | os.symlink('oe-local-files/%s' % fn, destpth) | ||
693 | addfiles.append(os.path.join(relpth, fn)) | ||
694 | if addfiles: | ||
695 | bb.process.run('git add %s' % ' '.join(addfiles), cwd=srctree) | ||
696 | useroptions = [] | ||
697 | oe.patch.GitApplyTree.gitCommandUserOptions(useroptions, d=d) | ||
698 | bb.process.run('git %s commit -a -m "Committing local file symlinks\n\n%s"' % (' '.join(useroptions), oe.patch.GitApplyTree.ignore_commit_prefix), cwd=srctree) | ||
699 | |||
677 | if kconfig: | 700 | if kconfig: |
678 | logger.info('Copying kernel config to srctree') | 701 | logger.info('Copying kernel config to srctree') |
679 | shutil.copy2(kconfig, srctree) | 702 | shutil.copy2(kconfig, srctree) |