summaryrefslogtreecommitdiff
path: root/include/tree.sh
diff options
context:
space:
mode:
Diffstat (limited to 'include/tree.sh')
-rw-r--r--include/tree.sh45
1 files changed, 16 insertions, 29 deletions
diff --git a/include/tree.sh b/include/tree.sh
index 83887864..7bfddf67 100644
--- a/include/tree.sh
+++ b/include/tree.sh
@@ -45,8 +45,7 @@ trees()
[ -z "$_f" ] && err "missing flag ($flags)"
[ -z "$project" ] && fx_ "x_ ./mk $_f" x_ ls -1 config/git && return 1
- [ -f "config/git/$project/pkg.cfg" ] || \
- err "config/git/$project/pkg.cfg missing"
+ e "config/git/$project/pkg.cfg" f missing && err "$project: no pkg.cfg"
for d in "elf" "config/data" "config" "src"; do
eval "${d#*/}dir=\"$d/$project\""
@@ -58,7 +57,7 @@ trees()
mkhelpercfg="$datadir/mkhelper.cfg"
if e "$mkhelpercfg" f missing; then
- mkhelpercfg="$xbmktmp/mkhelper.cfg"
+ mkhelpercfg="$xbtmp/mkhelper.cfg"
x_ touch "$mkhelpercfg"
fi
@@ -75,9 +74,7 @@ build_project()
[ ! -f "$listfile" ] || $dry elfcheck || return 0
[ "$mode" = "distclean" ] && mode="clean"
- run_make_command || return 0
-
- [ -n "$mode" ] || $dry copy_elf; :
+ run_make_command && [ -z "$mode" ] && $dry copy_elf; :
}
build_targets()
@@ -89,13 +86,9 @@ build_targets()
unset CROSS_COMPILE
export PATH="$xbmkpath"
[ "$x" = "list" ] && x_ ls -1 "config/$project" && \
- listfile="" && break
-
- target="$x"
+ listfile="" && break; target="$x"
printf "'make %s', '%s', '%s'\n" "$mode" "$project" "$target"
- x_ handle_defconfig
-
- [ -n "$mode" ] || x_ $postmake
+ x_ handle_defconfig && [ -z "$mode" ] && x_ $postmake; :
done; :
}
@@ -120,8 +113,7 @@ handle_defconfig()
[ "$_f" = "-d" ] || defconfig="$y"
[ -n "$mode" ] || check_defconfig || continue
- handle_makefile
- [ -n "$mode" ] || $dry copy_elf
+ handle_makefile && [ -z "$mode" ] && $dry copy_elf; :
done; :
}
@@ -130,8 +122,7 @@ configure_project()
eval "`setvars "" cleanargs build_depend autoconfargs xtree postmake \
makeargs btype mkhelper bootstrapargs premake release xlang xarch \
badhash`"
- _tcfg="$1/target.cfg"
- [ -f "$_tcfg" ] || btype="auto"
+ _tcfg="$1/target.cfg" && [ ! -f "$_tcfg" ] && btype="auto"
e "$datadir/mkhelper.cfg" f && eval "`setcfg "$datadir/mkhelper.cfg"`"
while e "$_tcfg" f || [ "$cmd" != "build_project" ]; do
@@ -144,8 +135,7 @@ configure_project()
[ "$do_make" != "n" ] && break
[ "${_tcfg%/*/target.cfg}" = "${_tcfg%"/$tree/target.cfg"}" ] \
- && break
- _tcfg="${_tcfg%/*/target.cfg}/$tree/target.cfg"
+ && break; _tcfg="${_tcfg%/*/target.cfg}/$tree/target.cfg"
done
[ "$XBMK_RELEASE" = "y" ] && [ "$release" = "n" ] && return 1
[ -z "$btype" ] || [ "${mode%config}" = "$mode" ] || return 1
@@ -181,14 +171,13 @@ check_project_hashes()
fx_ "x_ sha512sum" find "$datadir" "$configdir/$tree" "$mdir" \
-type f -not -path "*/.git*/*" | awk '{print $1}' > \
- "$xbmktmp/project.hash" || err "!h $project $tree"
+ "$xbtmp/project.hash" || err "!h $project $tree"
- pjhash="$(sha512sum "$xbmktmp/project.hash" | awk '{print $1}')" || :
+ pjhash="$(sha512sum "$xbtmp/project.hash" | awk '{print $1}')" || :
[ "$pjhash" != "$old_pjhash" ] && badhash="y"
[ -f "$XBMK_CACHE/hash/$project$tree" ] || badhash="y"
- printf "%s\n" "$pjhash" > "$XBMK_CACHE/hash/$project$tree" || \
- err "!mk $XBMK_CACHE/hash/$project$tree"
+ printf "%s\n" "$pjhash" > "$XBMK_CACHE/hash/$project$tree" || err
[ "$badhash" != "y" ] || x_ rm -Rf "src/$project/$tree" \
"elf/$project/$tree" "elf/$project/$target"; :
@@ -279,8 +268,6 @@ handle_makefile()
$dry x_ make -C "$srcdir" $cleanargs clean
[ -f "$defconfig" ] && x_ cp "$defconfig" "$srcdir/.config"
- [ -n "$mode" ] || [ -n "$btype" ] || $dry make -C \
- "$srcdir" silentoldconfig || make -C "$srcdir" oldconfig || :
run_make_command || err "handle_makefile $srcdir: no makefile!"
@@ -297,15 +284,17 @@ run_make_command()
{
[ -n "$mode" ] || x_ $premake
- $dry check_cmake "$srcdir" && [ -z "$mode" ] && \
- $dry check_autoconf "$srcdir"
+ $dry check_cmake "$srcdir"
+ [ -n "$mode" ] || ( $dry check_autoconf "$srcdir" ) || err
$dry check_makefile "$srcdir" || return 1
$dry x_ make -C "$srcdir" $mode -j$XBMK_THREADS $makeargs
[ -n "$mode" ] || x_ $mkhelper
+ check_makefile "$srcdir" || return 0
[ "$mode" != "clean" ] || \
- $dry make -C "$srcdir" $cleanargs distclean || :; :
+ $dry make -C "$srcdir" $cleanargs distclean || \
+ $dry x_ make -C "$srcdir" $cleanargs clean; :
}
check_cmake()
@@ -317,12 +306,10 @@ check_cmake()
check_autoconf()
{
- (
x_ cd "$1"
[ -f "bootstrap" ] && x_ ./bootstrap $bootstrapargs
[ -f "autogen.sh" ] && x_ ./autogen.sh $autogenargs
[ -f "configure" ] && x_ ./configure $autoconfargs; :
- ) || err "can't bootstrap project: $1"; :
}
check_makefile()