summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbuild5
-rwxr-xr-xinclude/lib.sh10
-rwxr-xr-xscript/trees2
3 files changed, 12 insertions, 5 deletions
diff --git a/build b/build
index 748ff4f0..74ea1de6 100755
--- a/build
+++ b/build
@@ -117,10 +117,7 @@ fetch_trees()
{
for x in $(items config/git); do
./update trees -f "$x" || $err "$_xm: fetch $x"
- done
- for x in config/*/build.list; do
- [ -f "$x" ] && xp="${x#*/}" && xp="${xp%/*}"
- [ ! -f "$x" ] || [ -L "$xp" ] || x_ rm -Rf "src/$xp/$xp"
+ singletree "$x" || x_ rm -Rf "src/$x/$x"
done
rmgit .
}
diff --git a/include/lib.sh b/include/lib.sh
index 6a4be7ee..bc2232ad 100755
--- a/include/lib.sh
+++ b/include/lib.sh
@@ -228,3 +228,13 @@ e()
eval "$estr"
printf "%s %s\n" "$1" "$es2" 1>&2
}
+
+# return 0 if project is single-tree, otherwise 1
+# e.g. coreboot is multi-tree, so 1
+singletree()
+{
+ for pdir in "config/${1}/"*/target.cfg; do
+ [ ! -e "$pdir" ] && continue
+ [ -f "$pdir" ] && return 1
+ done
+}
diff --git a/script/trees b/script/trees
index e22467f7..897c6ed3 100755
--- a/script/trees
+++ b/script/trees
@@ -39,7 +39,7 @@ main()
remkdir "${tmpgit%/*}"
_cmd="build_projects"
- [ -f "config/$project/build.list" ] && _cmd="build_targets"
+ singletree "$project" || _cmd="build_targets"
$_cmd $@
}