summaryrefslogtreecommitdiff
path: root/meta/classes/src_distribute_local.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'meta/classes/src_distribute_local.bbclass')
-rw-r--r--meta/classes/src_distribute_local.bbclass28
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
}