clean up a few semicolons in the build system
several code lines were condensed together, which make them less readable. make the code more readable by having separate commands on separate lines. i previously did this during my manic build system audits of 2023 and 2024; condensing lines like this is overly pedantic and serves no real purpose. Signed-off-by: Leah Rowe <leah@libreboot.org>25.04_branch
parent
7b7642dc90
commit
6e6b54cc24
8
build
8
build
|
@ -34,8 +34,12 @@ main()
|
|||
|
||||
case "${spath#script/}" in
|
||||
version) printf "%s\nWebsite: %s\n" "$relname" "$projectsite" ;;
|
||||
inject) shift 1; xbmk_inject "$@" ;;
|
||||
release) shift 1; mkrelease "$@" ;;
|
||||
release)
|
||||
shift 1
|
||||
mkrelease "$@" ;;
|
||||
xbmk_inject)
|
||||
shift 1
|
||||
xbmk_inject "$@" ;;
|
||||
roms)
|
||||
if [ $# -gt 1 ] && [ "$2" = "serprog" ]; then
|
||||
mk -b stm32-vserprog pico-serprog
|
||||
|
|
|
@ -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"; :
|
||||
}
|
||||
|
|
|
@ -29,7 +29,8 @@ xbmk_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 "" new_mac xchanged`"
|
||||
|
||||
# randomise the MAC address by default
|
||||
|
|
|
@ -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"; :
|
||||
}
|
||||
|
||||
|
|
|
@ -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()
|
||||
|
@ -77,7 +78,7 @@ mkvendorfiles()
|
|||
[ -z "$mode" ] && $dry cook_coreboot_config
|
||||
check_coreboot_utils "$tree"
|
||||
printf "%s\n" "${version%%-*}" > "$srcdir/.coreboot-version" || \
|
||||
$err "!mk $srcdir .coreboot-version"
|
||||
$err "!mk $srcdir .coreboot-version"; :
|
||||
}
|
||||
|
||||
cook_coreboot_config()
|
||||
|
@ -106,8 +107,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()
|
||||
|
@ -175,7 +176,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" ] && \
|
||||
|
|
48
script/trees
48
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
|
||||
|
|
Loading…
Reference in New Issue