diff options
Diffstat (limited to 'meta/classes/src_distribute_local.bbclass')
-rw-r--r-- | meta/classes/src_distribute_local.bbclass | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/meta/classes/src_distribute_local.bbclass b/meta/classes/src_distribute_local.bbclass index 5f0cef5bec..17b67e3d16 100644 --- a/meta/classes/src_distribute_local.bbclass +++ b/meta/classes/src_distribute_local.bbclass @@ -1,31 +1,33 @@ inherit src_distribute # SRC_DIST_LOCAL possible values: -# copy copies the files from ${A} to the distributedir -# symlink symlinks the files from ${A} to the distributedir +# copy copies the files to the distributedir +# symlink symlinks the files to the distributedir # move+symlink moves the files into distributedir, and symlinks them back SRC_DIST_LOCAL ?= "move+symlink" SRC_DISTRIBUTEDIR ?= "${DEPLOY_DIR}/sources" SRC_DISTRIBUTECOMMAND () { s="${SRC}" - if [ ! -L "$s" ] && (echo "$s"|grep "^${DL_DIR}"); then - : - else - exit 0; - fi + d="${DEST}" + mkdir -p ${SRC_DISTRIBUTEDIR} + + if echo $d | grep -q '/$'; then + mkdir -p ${SRC_DISTRIBUTEDIR}/$d + fi + case "${SRC_DIST_LOCAL}" in copy) - test -e $s.md5 && cp -f $s.md5 ${SRC_DISTRIBUTEDIR}/ - cp -f $s ${SRC_DISTRIBUTEDIR}/ + test -e $s.md5 && cp -f $s.md5 ${SRC_DISTRIBUTEDIR}/$d.md5 + cp -f $s ${SRC_DISTRIBUTEDIR}/$d ;; symlink) - test -e $s.md5 && ln -sf $s.md5 ${SRC_DISTRIBUTEDIR}/ - ln -sf $s ${SRC_DISTRIBUTEDIR}/ + test -e $s.md5 && ln -sf $s.md5 ${SRC_DISTRIBUTEDIR}/$d.md5 + ln -sf $s ${SRC_DISTRIBUTEDIR}/$d ;; move+symlink) - mv $s ${SRC_DISTRIBUTEDIR}/ - ln -sf ${SRC_DISTRIBUTEDIR}/`basename $s` $s + mv $s ${SRC_DISTRIBUTEDIR}/$d + ln -sf ${SRC_DISTRIBUTEDIR}/$d $s ;; esac } |