summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbuild12
-rw-r--r--include/git.sh20
-rw-r--r--include/lib.sh27
-rw-r--r--include/mrc.sh4
-rw-r--r--include/rom.sh16
-rw-r--r--include/vendor.sh47
-rwxr-xr-xscript/trees48
7 files changed, 110 insertions, 64 deletions
diff --git a/build b/build
index 7a3ec3e9..f61018c6 100755
--- a/build
+++ b/build
@@ -35,9 +35,15 @@ main()
case "${spath#script/}" in
version) printf "%s\nWebsite: %s\n" "$relname" "$projectsite" ;;
- release) shift 1; mkrelease "$@" ;;
- inject) shift 1; vendor_inject "$@" ;;
- download) shift 1; vendor_download "$@" ;;
+ release)
+ shift 1
+ mkrelease "$@" ;;
+ inject)
+ shift 1
+ vendor_inject "$@" ;;
+ download)
+ shift 1
+ vendor_download "$@" ;;
roms)
if [ $# -gt 1 ] && [ "$2" = "serprog" ]; then
mk -b stm32-vserprog pico-serprog
diff --git a/include/git.sh b/include/git.sh
index e5aa4861..1933a4ec 100644
--- a/include/git.sh
+++ b/include/git.sh
@@ -13,7 +13,8 @@ fetch_targets()
printf "Creating %s tree %s\n" "$project" "$tree"
git_prep "$loc" "$loc" "$PWD/$configdir/$tree/patches" \
- "src/$project/$tree" u; nuke "$project/$tree" "$project/$tree"
+ "src/$project/$tree" u
+ nuke "$project/$tree" "$project/$tree"
}
fetch_project()
@@ -47,9 +48,11 @@ clone_project()
git_prep()
{
- _patchdir="$3"; _loc="$4" # $1 and $2 are gitrepo and gitrepo_backup
+ _patchdir="$3"
+ _loc="$4" # $1 and $2 are gitrepo and gitrepo_backup
- chkvars rev; tmpclone "$1" "$2" "$tmpgit" "$rev" "$_patchdir"
+ chkvars rev
+ tmpclone "$1" "$2" "$tmpgit" "$rev" "$_patchdir"
if singletree "$project" || [ $# -gt 4 ]; then
prep_submodules "$_loc"
fi
@@ -67,7 +70,7 @@ prep_submodules()
{
[ -f "$mdir/module.list" ] && while read -r msrcdir; do
fetch_submodule "$msrcdir"
- done < "$mdir/module.list"; return 0
+ done < "$mdir/module.list"; :
}
fetch_submodule()
@@ -125,10 +128,11 @@ tmpclone()
git_am_patches()
{
for p in "$2/"*; do
- [ -L "$p" ] && continue; [ -e "$p" ] || continue
+ [ -L "$p" ] && continue
+ [ -e "$p" ] || continue
[ -d "$p" ] && git_am_patches "$1" "$p" && continue
[ ! -f "$p" ] || git -C "$1" am "$p" || $err "$1 $2: !am $p"
- done; return 0
+ done; :
}
link_crossgcc()
@@ -136,7 +140,7 @@ link_crossgcc()
(
x_ cd "$tmpgit/util" && x_ rm -Rf crossgcc
ln -s "../../$xtree/util/crossgcc" crossgcc || $err "$1: !xgcc link"
- ) || $err "$1: !xgcc link"
+ ) || $err "$1: !xgcc link"; :
}
move_repo()
@@ -152,5 +156,5 @@ nuke()
e "config/${1%/}/nuke.list" f missing || while read -r nukefile; do
rmf="src/${2%/}/$nukefile" && [ -L "$rmf" ] && continue
e "$rmf" e missing || rm -Rf "$rmf" || $err "!rm $rmf, ${2%/}"
- done < "config/${1%/}/nuke.list"; return 0
+ done < "config/${1%/}/nuke.list"; :
}
diff --git a/include/lib.sh b/include/lib.sh
index b43d83f3..31c9fd02 100644
--- a/include/lib.sh
+++ b/include/lib.sh
@@ -17,7 +17,8 @@ err="err_"
err_()
{
- printf "ERROR %s: %s\n" "$0" "$1" 1>&2; exit 1
+ printf "ERROR %s: %s\n" "$0" "$1" 1>&2
+ exit 1
}
setvars()
@@ -25,14 +26,15 @@ setvars()
_setvars="" && [ $# -lt 2 ] && $err "setvars: too few arguments"
val="$1" && shift 1 && for var in "$@"; do
_setvars="$var=\"$val\"; $_setvars"
- done; printf "%s\n" "${_setvars% }"
+ done
+ printf "%s\n" "${_setvars% }"
}
chkvars()
{
for var in "$@"; do
eval "[ -n \"\${$var+x}\" ] || \$err \"$var unset\""
eval "[ -n \"\$$var\" ] || \$err \"$var unset\""
- done; return 0
+ done; :
}
eval "`setvars "" _nogit board reinstall versiondate projectsite projectname \
@@ -40,7 +42,8 @@ eval "`setvars "" _nogit board reinstall versiondate projectsite projectname \
for fv in projectname projectsite version versiondate; do
eval "[ ! -f \"$fv\" ] || read -r $fv < \"$fv\" || :"
-done; chkvars projectname projectsite
+done
+chkvars projectname projectsite
setcfg()
{
@@ -57,7 +60,8 @@ e()
estr="[ -$es_t \"\$1\" ] || return 1"
[ $# -gt 2 ] && estr="[ -$es_t \"\$1\" ] && return 1" && es2="missing"
- eval "$estr"; printf "%s %s\n" "$1" "$es2" 1>&2
+ eval "$estr"
+ printf "%s %s\n" "$1" "$es2" 1>&2
}
install_packages()
@@ -140,7 +144,7 @@ expr "X$XBMK_THREADS" : "X-\{0,1\}[0123456789][0123456789]*$" \
x_() {
[ $# -lt 1 ] || "$@" || \
- $err "Unhandled non-zero exit: $(echo "$@")"; return 0
+ $err "Unhandled non-zero exit: $(echo "$@")"; :
}
[ -e ".git" ] || [ -f "version" ] || printf "unknown\n" > version || \
@@ -155,7 +159,8 @@ versiondate_="$versiondate"
[ ! -e ".git" ] || versiondate="$(git show --no-patch --no-notes \
--pretty='%ct' HEAD)" || versiondate="$versiondate_"
for p in projectname version versiondate projectsite; do
- chkvars "$p"; eval "x_ printf \"%s\\n\" \"\$$p\" > $p"
+ chkvars "$p"
+ eval "x_ printf \"%s\\n\" \"\$$p\" > $p"
done
relname="$projectname-$version"
export LOCALVERSION="-$projectname-${version%%-*}"
@@ -165,7 +170,7 @@ check_defconfig()
[ -d "$1" ] || $err "Target '$1' not defined."
for x in "$1"/config/*; do
[ -f "$x" ] && printf "%s\n" "$x" && return 1
- done; return 0
+ done; :
}
remkdir()
@@ -180,7 +185,8 @@ mkrom_tarball()
printf "%s\n" "$versiondate" > "$1/versiondate" || $err "$1 !vdate"
printf "%s\n" "$projectname" > "$1/projectname" || $err "$1 !pname"
- mktarball "$1" "${1%/*}/${relname}_${1##*/}.tar.xz"; x_ rm -Rf "$1"; :
+ mktarball "$1" "${1%/*}/${relname}_${1##*/}.tar.xz"
+ x_ rm -Rf "$1"
}
mktarball()
@@ -248,7 +254,8 @@ download()
$err "$1 $2 $3 $4: Unsupported dlop type: '$_dlop'"
fi
vendor_checksum "$4" "$cached" || dl_fail="n"
- done; [ "$dl_fail" = "y" ] && $err "$1 $2 $3 $4: not downloaded"
+ done
+ [ "$dl_fail" = "y" ] && $err "$1 $2 $3 $4: not downloaded"
[ "$cached" = "$3" ] || cp "$cached" "$3" || $err "!d cp $cached $3"; :
}
diff --git a/include/mrc.sh b/include/mrc.sh
index f5db2ff0..e08a0f0e 100644
--- a/include/mrc.sh
+++ b/include/mrc.sh
@@ -20,7 +20,7 @@ extract_mrc()
"$cbfstool" "$appdir/"bios.bin extract -n mrc.bin \
-f "$_dest" -r RO_SECTION || $err "extract_mrc: !$cbfstool $_dest"
- [ -n "$CONFIG_REFCODE_BLOB_FILE" ] && extract_refcode; return 0
+ [ -n "$CONFIG_REFCODE_BLOB_FILE" ] && extract_refcode; :
}
extract_partition()
@@ -57,5 +57,5 @@ extract_refcode()
# enable the Intel GbE device, if told by offset MRC_refcode_gbe
[ -z "$MRC_refcode_gbe" ] || dd if="config/ifd/hp820g2/1.bin" \
of="$_refdest" bs=1 seek=$MRC_refcode_gbe count=1 conv=notrunc || \
- $err "extract_refcode $_refdest: byte $MRC_refcode_gbe"; return 0
+ $err "extract_refcode $_refdest: byte $MRC_refcode_gbe"; :
}
diff --git a/include/rom.sh b/include/rom.sh
index dde17b69..7102953f 100644
--- a/include/rom.sh
+++ b/include/rom.sh
@@ -28,11 +28,12 @@ mkserprog()
&& x_ cmake --build "$sersrc/build"
[ "$1" = "stm32" ] && x_ make -C "$sersrc" \
libopencm3-just-make BOARD=$sertarget && x_ make -C \
- "$sersrc" BOARD=$sertarget; x_ mkdir -p "bin/serprog_$1"
+ "$sersrc" BOARD=$sertarget
+ x_ mkdir -p "bin/serprog_$1"
x_ mv "$serx" "bin/serprog_$1/serprog_$sertarget.${serx##*.}"
done < "$TMPDIR/ser"
- [ "$XBMK_RELEASE" = "y" ] && mkrom_tarball "bin/serprog_$1"; return 0
+ [ "$XBMK_RELEASE" = "y" ] && mkrom_tarball "bin/serprog_$1"; :
}
mkpicotool()
@@ -69,7 +70,7 @@ mkpayload_grub()
--install-modules="$grub_install_modules" \
"/boot/grub/grub_default.cfg=${srcdir}/.config" \
"/boot/grub/grub.cfg=$grubdata/memdisk.cfg" || \
- $err "$tree: cannot build grub.elf"; return 0
+ $err "$tree: cannot build grub.elf"; :
}
mkvendorfiles()
@@ -79,7 +80,7 @@ mkvendorfiles()
printf "%s\n" "${version%%-*}" > "$srcdir/.coreboot-version" || \
$err "!mk $srcdir .coreboot-version"
[ -z "$mode" ] && [ "$target" != "$tree" ] && \
- x_ ./mk download "$target"; return 0
+ x_ ./mk download "$target"; :
}
cook_coreboot_config()
@@ -108,8 +109,8 @@ check_coreboot_utils()
x_ cp "$utilsrcdir/rmodtool" "$utilelfdir"
elif [ -n "$mode" ]; then
x_ rm -Rf "$utilelfdir"
- fi; continue
- done; return 0
+ fi; :
+ done; :
}
mkcorebootbin()
@@ -177,7 +178,8 @@ add_seabios()
cbfs "$tmprom" "$_seabioself" "$_seaname"
x_ "$cbfstool" "$tmprom" add-int -i 3000 -n etc/ps2-keyboard-spinup
- _z="2"; [ "$initmode" = "vgarom" ] && _z="0"
+ _z="2"
+ [ "$initmode" = "vgarom" ] && _z="0"
x_ "$cbfstool" "$tmprom" add-int -i $_z -n etc/pci-optionrom-exec
x_ "$cbfstool" "$tmprom" add-int -i 0 -n etc/optionroms-checksum
[ "$initmode" = "libgfxinit" ] && \
diff --git a/include/vendor.sh b/include/vendor.sh
index 018e734b..53fe5a27 100644
--- a/include/vendor.sh
+++ b/include/vendor.sh
@@ -38,8 +38,10 @@ eval "`setvars "" has_hashes EC_hash DL_hash DL_url_bkup MRC_refcode_gbe vcfg \
vendor_download()
{
- [ $# -gt 0 ] || $err "No argument given"; export PATH="$PATH:/sbin"
- board="$1"; readcfg && readkconfig && bootstrap && getfiles; :
+ [ $# -gt 0 ] || $err "No argument given"
+ export PATH="$PATH:/sbin"
+ board="$1"
+ readcfg && readkconfig && bootstrap && getfiles; :
}
readkconfig()
@@ -66,9 +68,11 @@ readkconfig()
CONFIG_LENOVO_TBFW_BIN CONFIG_FSP_M_FILE CONFIG_FSP_S_FILE; do
eval "[ \"\${$c}\" = \"/dev/null\" ] && continue"
eval "[ -z \"\${$c}\" ] && continue"
- eval "`setcfg "$vfile"`"; return 0
+ eval "`setcfg "$vfile"`"
+ return 0
done
- printf "Vendor files not needed for: %s\n" "$board" 1>&2; return 1
+ printf "Vendor files not needed for: %s\n" "$board" 1>&2
+ return 1
}
bootstrap()
@@ -78,7 +82,7 @@ bootstrap()
[ -d "${kbc1126_ec_dump%/*}" ] && x_ make -C "$cbdir/util/kbc1126"
[ -n "$MRC_refcode_cbtree" ] && \
cbfstoolref="elf/cbfstool/$MRC_refcode_cbtree/cbfstool" && \
- x_ ./mk -d coreboot "$MRC_refcode_cbtree"; return 0
+ x_ ./mk -d coreboot "$MRC_refcode_cbtree"; :
}
getfiles()
@@ -109,9 +113,14 @@ getfiles()
fetch()
{
- dl_type="$1"; dl="$2"; dl_bkup="$3"; dlsum="$4"; _dest="${5##*../}"
-
- [ "$5" = "/dev/null" ] && return 0; _dl="$XBMK_CACHE/file/$dlsum"
+ dl_type="$1"
+ dl="$2"
+ dl_bkup="$3"
+ dlsum="$4"
+ _dest="${5##*../}"
+
+ [ "$5" = "/dev/null" ] && return 0
+ _dl="$XBMK_CACHE/file/$dlsum"
if [ "$dl_type" = "fspm" ] || [ "$dl_type" = "fsps" ]; then
# HACK: if grabbing fsp from coreboot, fix the path for lbmk
for _cdl in dl dl_bkup; do
@@ -129,11 +138,13 @@ fetch()
mkdir -p "${_dest%/*}" || \
$err "mkdirs: !mkdir -p ${_dest%/*} - $dontflash"
- remkdir "$appdir"; extract_archive "$_dl" "$appdir" "$dl_type" || \
+ remkdir "$appdir"
+ extract_archive "$_dl" "$appdir" "$dl_type" || \
[ "$dl_type" = "e6400vga" ] || \
$err "mkd $_dest $dl_type: !extract. $dontflash"
- eval "extract_$dl_type"; set -u -e
+ eval "extract_$dl_type"
+ set -u -e
e "$_dest" f missing && $err "!extract_$dl_type. $dontflash"; :
}
@@ -240,7 +251,8 @@ extract_kbc1126ec()
e "$kbc1126_ec_dump" f missing && \
$err "$cbdir: kbc1126 util missing - $dontflash"
(
- x_ cd "$appdir/"; mv Rompaq/68*.BIN ec.bin || :
+ x_ cd "$appdir/"
+ mv Rompaq/68*.BIN ec.bin || :
if [ ! -f "ec.bin" ]; then
unar -D ROM.CAB Rom.bin || unar -D Rom.CAB Rom.bin || \
unar -D 68*.CAB Rom.bin || \
@@ -347,7 +359,8 @@ vendor_inject()
err="fail_inject"
remkdir "$tmpromdel"
- set +u +e; [ $# -lt 1 ] && $err "No options specified. - $dontflash"
+ set +u +e
+ [ $# -lt 1 ] && $err "No options specified. - $dontflash"
eval "`setvars "" nukemode new_mac xchanged`"
# randomise the MAC address by default
@@ -499,7 +512,8 @@ patch_release_roms()
hashfile="$_hashes" && break; :
done
- x_ mkdir -p "tmp"; [ -L "tmp/rom.list" ] && \
+ x_ mkdir -p "tmp"
+ [ -L "tmp/rom.list" ] && \
$err "'$archive' -> tmp/rom.list is a symlink - $dontflash"
x_ rm -f "tmp/rom.list" "tmp/zero.1b"
x_ dd if=/dev/zero of=tmp/zero.1b bs=1 count=1
@@ -679,7 +693,9 @@ inject()
[ "$2" = "/dev/null" ] && return 0
eval "`setvars "" cbfsname _dest _t _offset`"
- cbfsname="$1"; _dest="${2##*../}"; _t="$3"
+ cbfsname="$1"
+ _dest="${2##*../}"
+ _t="$3"
if [ "$_t" = "fsp" ]; then
[ $# -gt 3 ] && _offset="$4"
@@ -705,7 +721,8 @@ inject()
return 0
fi
if [ "$_t" = "stage" ]; then # the only stage we handle is refcode
- x_ mkdir -p tmp; x_ rm -f "tmp/refcode"
+ x_ mkdir -p tmp
+ x_ rm -f "tmp/refcode"
"$rmodtool" -i "$_dest" -o "tmp/refcode" || "!reloc refcode"
"$cbfstool" "$rom" add-stage -f "tmp/refcode" -n "$cbfsname" \
-t stage || $err "$rom: !add ref"
diff --git a/script/trees b/script/trees
index d53dd4f7..3eb9d054 100755
--- a/script/trees
+++ b/script/trees
@@ -15,13 +15,17 @@ eval "`setvars "" xarch srcdir premake gnatdir xlang mode makeargs elfdir cmd \
project target target_dir targets xtree _f release bootstrapargs mkhelper \
autoconfargs listfile autogenargs btype tree rev tree_depend build_depend \
defconfig postmake mkhelpercfg dry dest_dir mdir cleanargs gccver gccfull \
- gnatver gnatfull gccdir cmakedir`"; badhash="n"
+ gnatver gnatfull gccdir cmakedir`"
# ./mk -f will set this to "n", thus
# disabling the use of make commands
do_make="y"
mode="all" # make all
+# badhash changes to "y" when project
+# files change, e.g. config files, patches
+badhash="n"
+
flags="-m/-u/-b/-c/-x/-f/-s/-l/-n/-d"
main()
@@ -82,7 +86,8 @@ main()
x_ touch "$mkhelpercfg"
fi
- targets="$*"; cmd="build_targets $targets"
+ targets="$*"
+ cmd="build_targets $targets"
singletree "$project" && cmd="build_project"
remkdir "${tmpgit%/*}"
@@ -96,7 +101,7 @@ build_project()
[ "$mode" = "distclean" ] && mode="clean"
run_make_command || return 0
- [ -n "$mode" ] || $dry copy_elf; return 0
+ [ -n "$mode" ] || $dry copy_elf; :
}
build_targets()
@@ -113,7 +118,7 @@ build_targets()
printf "'make %s', '%s', '%s'\n" "$mode" "$project" "$target"
x_ handle_defconfig
[ -n "$mode" ] || [ -z "$postmake" ] || $postmake || \
- $err "$project/$target: !postmake: $postmake"; continue
+ $err "$project/$target: !postmake: $postmake"; :
done; return 0
}
@@ -125,7 +130,8 @@ handle_defconfig()
configure_project "$target_dir" || return 0
x_ mkdir -p "$elfdir/$target"
- chkvars tree; srcdir="src/$project/$tree"
+ chkvars tree
+ srcdir="src/$project/$tree"
if [ "$mode" = "distclean" ] || [ "$mode" = "crossgcc-clean" ]; then
[ -d "$srcdir" ] || return 0
@@ -139,7 +145,7 @@ handle_defconfig()
[ -n "$mode" ] || check_defconfig || continue
handle_makefile
[ -n "$mode" ] || $dry copy_elf
- done; return 0
+ done; :
}
configure_project()
@@ -190,8 +196,8 @@ build_dependencies()
[ -z "$bd_p" ] && $dry $err "$project/$tree: !bd '$bd'"
[ "${bd##*/}" = "$bd" ] && bd_t=""
[ -z "$bd_p" ] || $dry ./mk -b $bd_p $bd_t \
- || $err "!mk $project/$tree $bd_p/$bd_t"; continue
- done; return 0
+ || $err "!mk $project/$tree $bd_p/$bd_t"; :
+ done; :
}
check_project_hashes()
@@ -202,7 +208,8 @@ check_project_hashes()
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"
+ "$TMPDIR/project.tmp"
+ x_ touch "$TMPDIR/project.tmp"
x_ touch "$TMPDIR/project.hash"
for rmchk in "$datadir" "$configdir/$tree" "$mdir"; do
@@ -258,7 +265,7 @@ check_cross_compiler()
# we only want to mess with hostcc to build xgcc
rm -f "$XBMK_CACHE/gnupath/"* || \
$err "Cannot clear gnupath/"; :
- done; return 0
+ done; :
}
# fix mismatching gcc/gnat versions on debian trixie/sid. as of december 2024,
@@ -297,7 +304,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##*/}"
+ [ -e "$_gnubin" ] || continue
+ _gnuutil="${_gnubin##*/}"
x_ ln -s "$_gnubin" "${_gnuutil%"-$_gnuver"}"
done
) || $err "Cannot create $2-$_gnuver link in $_gnudir"; :
@@ -326,7 +334,7 @@ elfcheck()
# TODO: very hacky check. do it properly (based on build.list)
for elftest in "$dest_dir"/*; do
[ -e "$elftest" ] && e "$elftest" f && return 1
- done; return 0
+ done; :
}
handle_makefile()
@@ -350,8 +358,9 @@ handle_makefile()
run_make_command()
{
[ -z "$premake" ] || [ -n "$mode" ] || $premake || $err "!$premake"
- $dry check_cmake "$srcdir" && [ -z "$mode" ] && $dry check_autoconf \
- "$srcdir"; $dry check_makefile "$srcdir" || return 1
+ $dry check_cmake "$srcdir" && [ -z "$mode" ] && \
+ $dry check_autoconf "$srcdir"
+ $dry check_makefile "$srcdir" || return 1
$dry make -C "$srcdir" $mode -j$XBMK_THREADS $makeargs || $err "!$mode"
[ -z "$mkhelper" ] || [ -n "$mode" ] || $mkhelper || $err "!$mkhelper"
@@ -366,7 +375,7 @@ check_cmake()
"$1/$cmakedir" || $dry check_makefile "$1" || $err \
"$1: !cmk $cmakedir"
[ -z "$cmakedir" ] || $dry check_makefile "$1" || \
- $err "check_cmake $1: can't generate Makefile"; return 0
+ $err "check_cmake $1: can't generate Makefile"; :
}
check_autoconf()
@@ -375,21 +384,22 @@ check_autoconf()
cd "$1" || $err "!cd $1"
[ -f "bootstrap" ] && x_ ./bootstrap $bootstrapargs
[ -f "autogen.sh" ] && x_ ./autogen.sh $autogenargs
- [ -f "configure" ] && x_ ./configure $autoconfargs; return 0
- ) || $err "can't bootstrap project: $1"
+ [ -f "configure" ] && x_ ./configure $autoconfargs; :
+ ) || $err "can't bootstrap project: $1"; :
}
check_makefile()
{
[ -f "$1/Makefile" ] || [ -f "$1/makefile" ] || \
- [ -f "$1/GNUmakefile" ] || return 1; return 0
+ [ -f "$1/GNUmakefile" ] || return 1; :
}
copy_elf()
{
[ -f "$listfile" ] && x_ mkdir -p "$dest_dir" && while read -r f; do
[ -f "$srcdir/$f" ] && x_ cp "$srcdir/$f" "$dest_dir"
- done < "$listfile"; x_ make clean -C "$srcdir" $cleanargs
+ done < "$listfile"
+ x_ make clean -C "$srcdir" $cleanargs
}
main "$@" || exit 0