summaryrefslogtreecommitdiff
path: root/mk
diff options
context:
space:
mode:
Diffstat (limited to 'mk')
-rwxr-xr-xmk48
1 files changed, 23 insertions, 25 deletions
diff --git a/mk b/mk
index 29c8ee5d..a8e4e617 100755
--- a/mk
+++ b/mk
@@ -86,6 +86,7 @@ build_release()
{
(
cd "$srcdir" || $err "$vdir: !cd \"$srcdir\""
+
./mk -f
x_ rm -Rf tmp
rmgit .
@@ -162,7 +163,7 @@ trees()
return 1
fi
- [ -f "config/git/$project/pkg.cfg" ] || $err "'$project' not defined"
+ x_ e "config/git/$project/pkg.cfg" f
for d in "elf" "config/data" "config" "src"; do
eval "${d#*/}dir=\"$d/$project\""
@@ -174,7 +175,7 @@ trees()
mkhelpercfg="$datadir/mkhelper.cfg"
if e "$mkhelpercfg" f missing; then
- mkhelpercfg="$TMPDIR/mkhelper.cfg"
+ mkhelpercfg="$xbmktmp/mkhelper.cfg"
x_ touch "$mkhelpercfg"
fi
@@ -206,9 +207,11 @@ build_targets()
export PATH="$xbmkpath"
[ "$x" = "list" ] && x_ ls -1 "config/$project" && \
listfile="" && break
+
target="$x"
printf "'make %s', '%s', '%s'\n" "$mode" "$project" "$target"
x_ handle_defconfig
+
mkhelp "$postmake"
done; :
}
@@ -246,10 +249,9 @@ configure_project()
xarch xlang badhash`"
_tcfg="$1/target.cfg"
[ -f "$_tcfg" ] || btype="auto"
- [ -f "$datadir/mkhelper.cfg" ] && \
- eval "`setcfg "$datadir/mkhelper.cfg"`"
+ e "$datadir/mkhelper.cfg" f && eval "`setcfg "$datadir/mkhelper.cfg"`"
- while [ -f "$_tcfg" ] || [ "$cmd" != "build_project" ]; do
+ while e "$_tcfg" f || [ "$cmd" != "build_project" ]; do
eval "`setvars "" rev tree`"
eval "`setcfg "$_tcfg"`"
printf "Loading %s config: %s\n" "$project" "$_tcfg"
@@ -290,30 +292,26 @@ build_dependencies()
check_project_hashes()
{
- x_ mkdir -p "$XBMK_CACHE/hash"
- old_pjhash=""
+ old_pjhash="" && x_ mkdir -p "$XBMK_CACHE/hash"
[ ! -f "$XBMK_CACHE/hash/$project$tree" ] || \
read -r old_pjhash < "$XBMK_CACHE/hash/$project$tree"
- x_ rm -f "$TMPDIR/project.list" "$TMPDIR/project.hash" \
- "$TMPDIR/project.tmp"
- x_ touch "$TMPDIR/project.tmp"
- x_ touch "$TMPDIR/project.hash"
+ x_ rm -f "$xbmktmp/project.list" "$xbmktmp/project.hash" \
+ "$xbmktmp/project.tmp"
+ x_ touch "$xbmktmp/project.tmp" "$xbmktmp/project.hash"
for rmchk in "$datadir" "$configdir/$tree" "$mdir"; do
- [ -d "$rmchk" ] || continue
- find "$rmchk" -type f -not -path "*/.git*/*" >> \
- "$TMPDIR/project.tmp" || $err "!find $rmchk > project.tmp"
+ [ ! -d "$rmchk" ] || find "$rmchk" -type f -not -path \
+ "*/.git*/*" >> "$xbmktmp/project.tmp" || $err "!fh $rmchk"
done
- sort "$TMPDIR/project.tmp" > "$TMPDIR/project.list" || \
- $err "!sort project tmp/list"
+ sort "$xbmktmp/project.tmp" > "$xbmktmp/project.list" || $err "!pj srt"
while read -r rmchk; do
- [ ! -f "$rmchk" ] || sha512sum "$rmchk" | awk \
- '{print $1}' >> "$TMPDIR/project.hash" || $err "!h $rmchk"
- done < "$TMPDIR/project.list"
+ [ ! -f "$rmchk" ] || x_ sha512sum "$rmchk" | awk \
+ '{print $1}' >> "$xbmktmp/project.hash" || $err "!h $rmchk"
+ done < "$xbmktmp/project.list"
- pjhash="$(sha512sum "$TMPDIR/project.hash" | awk '{print $1}')" || :
+ pjhash="$(sha512sum "$xbmktmp/project.hash" | awk '{print $1}')" || :
[ "$pjhash" != "$old_pjhash" ] && badhash="y"
[ -f "$XBMK_CACHE/hash/$project$tree" ] || badhash="y"
@@ -348,8 +346,7 @@ check_cross_compiler()
x_ make -C "$cbdir" crossgcc-$xfix $xgccargs
# we only want to mess with hostcc to build xgcc
- rm -f "$XBMK_CACHE/gnupath/"* || \
- $err "Cannot clear gnupath/"; :
+ rm -f "$XBMK_CACHE/gnupath/"* || $err "Can't clear gnupath/"; :
done; :
}
@@ -389,9 +386,8 @@ check_gnu_path()
rm -f "$XBMK_CACHE/gnupath/"* || $err "Cannot clear gnupath/"
cd "$XBMK_CACHE/gnupath" || $err "Can't cd to gnupath/"
for _gnubin in "$_gnudir/$2"*"-$_gnuver"; do
- [ -e "$_gnubin" ] || continue
- _gnuutil="${_gnubin##*/}"
- x_ ln -s "$_gnubin" "${_gnuutil%"-$_gnuver"}"
+ _gnuutil="${_gnubin##*/}" && [ -e "$_gnubin" ] && \
+ x_ ln -s "$_gnubin" "${_gnuutil%"-$_gnuver"}"
done
) || $err "Cannot create $2-$_gnuver link in $_gnudir"; :
}
@@ -425,6 +421,7 @@ elfcheck()
handle_makefile()
{
$dry check_makefile "$srcdir" && 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 || :
@@ -443,6 +440,7 @@ handle_makefile()
run_make_command()
{
mkhelp "$premake"
+
$dry check_cmake "$srcdir" && [ -z "$mode" ] && \
$dry check_autoconf "$srcdir"
$dry check_makefile "$srcdir" || return 1