lbmk scripts: general code cleanup/optimisation
Signed-off-by: Leah Rowe <leah@libreboot.org>9020vga
parent
25f9d9480f
commit
655d3cdc88
21
build
21
build
|
@ -37,22 +37,16 @@ main()
|
||||||
{
|
{
|
||||||
xx_ id -u 1>/dev/null 2>/dev/null
|
xx_ id -u 1>/dev/null 2>/dev/null
|
||||||
[ $# -lt 1 ] && fail "Too few arguments. Try: ${0} help"
|
[ $# -lt 1 ] && fail "Too few arguments. Try: ${0} help"
|
||||||
if [ "${1}" = "dependencies" ]; then
|
|
||||||
xx_ install_packages $@
|
|
||||||
lbmk_exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
initialise_command $@ && shift 1
|
[ "${1}" = "dependencies" ] && xx_ install_packages $@ && lbmk_exit 0
|
||||||
|
|
||||||
check_git
|
for cmd in initcmd check_git check_project git_init excmd; do
|
||||||
check_project
|
eval "${cmd} \$@"
|
||||||
git_init
|
done
|
||||||
|
|
||||||
execute_command $@
|
|
||||||
lbmk_exit 0
|
lbmk_exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
initialise_command()
|
initcmd()
|
||||||
{
|
{
|
||||||
[ "$(id -u)" != "0" ] || fail "this command as root is not permitted"
|
[ "$(id -u)" != "0" ] || fail "this command as root is not permitted"
|
||||||
|
|
||||||
|
@ -104,11 +98,12 @@ git_init()
|
||||||
fail "${PWD}: cannot git-tag ${projectname}/${version}"
|
fail "${PWD}: cannot git-tag ${projectname}/${version}"
|
||||||
}
|
}
|
||||||
|
|
||||||
execute_command()
|
excmd()
|
||||||
{
|
{
|
||||||
lbmkcmd="${buildpath}/${option}"
|
lbmkcmd="${buildpath}/${option}"
|
||||||
|
echo "TEST: $lbmkcmd"
|
||||||
[ -f "${lbmkcmd}" ] || fail "Invalid command. Run: ${linkpath} help"
|
[ -f "${lbmkcmd}" ] || fail "Invalid command. Run: ${linkpath} help"
|
||||||
"${lbmkcmd}" $@ || fail "execute_command: ${lbmkcmd} ${@}"
|
shift 1; "$lbmkcmd" $@ || fail "excmd: ${lbmkcmd} ${@}"
|
||||||
}
|
}
|
||||||
|
|
||||||
usage()
|
usage()
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
# SPDX-FileCopyrightText: 2022, 2023 Leah Rowe <leah@libreboot.org>
|
# SPDX-FileCopyrightText: 2022, 2023 Leah Rowe <leah@libreboot.org>
|
||||||
|
|
||||||
version=""; versiondate=""; projectname=""; _nogit=""
|
version=""; version_=""; versiondate=""; versiondate_=""; projectname=""; _nogit=""
|
||||||
|
|
||||||
x_() {
|
x_() {
|
||||||
[ $# -lt 1 ] || ${@} || err_exit err ${@}
|
[ $# -lt 1 ] || ${@} || err_exit err ${@}
|
||||||
|
@ -48,17 +48,11 @@ check_project()
|
||||||
[ ! -e ".git" ] || versiondate="$(git show --no-patch --no-notes \
|
[ ! -e ".git" ] || versiondate="$(git show --no-patch --no-notes \
|
||||||
--pretty='%ct' HEAD)" || versiondate="${versiondate_}"
|
--pretty='%ct' HEAD)" || versiondate="${versiondate_}"
|
||||||
|
|
||||||
[ -n "${versiondate}" ] || fail "Unknown version date" || \
|
for p in projectname version versiondate; do
|
||||||
err "Unknown version date"
|
eval "[ -n \"\$$p\" ] || fail \"$p unset\" || err \"$p unset\""
|
||||||
[ -n "${version}" ] || fail "Unknown version" || \
|
p_="x_ printf \"%s\\n\" \"\$$p\" > $p"
|
||||||
err "Unknown version"
|
eval "x$p_ || $p_"
|
||||||
[ -n "${projectname}" ] || fail "Unknown project" || \
|
done
|
||||||
err "Unknown project"
|
|
||||||
|
|
||||||
xx_ printf "%s\n" "${version}" > version || \
|
|
||||||
x_ printf "%s\n" "${version}" > version
|
|
||||||
xx_ printf "%s\n" "${versiondate}" > versiondate || \
|
|
||||||
x_ printf "%s\n" "${versiondate}" > versiondate
|
|
||||||
|
|
||||||
export LOCALVERSION="-${projectname}-${version%%-*}"
|
export LOCALVERSION="-${projectname}-${version%%-*}"
|
||||||
}
|
}
|
||||||
|
@ -67,8 +61,7 @@ setvars()
|
||||||
{
|
{
|
||||||
_setvars=""
|
_setvars=""
|
||||||
[ $# -lt 2 ] && err "setvars: too few arguments"
|
[ $# -lt 2 ] && err "setvars: too few arguments"
|
||||||
val="${1}"
|
val="${1}" && shift 1
|
||||||
shift 1
|
|
||||||
for var in $@; do
|
for var in $@; do
|
||||||
_setvars="${var}=\"${val}\"; ${_setvars}"
|
_setvars="${var}=\"${val}\"; ${_setvars}"
|
||||||
done
|
done
|
||||||
|
|
|
@ -21,7 +21,7 @@ kmapdir="config/grub/keymap"
|
||||||
# target.cfg files have to specifically enable [a] payload(s)
|
# target.cfg files have to specifically enable [a] payload(s)
|
||||||
pv="payload_grub payload_grub_withseabios payload_seabios payload_memtest t"
|
pv="payload_grub payload_grub_withseabios payload_seabios payload_memtest t"
|
||||||
pv="${pv} payload_seabios_withgrub payload_seabios_grubonly payload_uboot memtest_bin"
|
pv="${pv} payload_seabios_withgrub payload_seabios_grubonly payload_uboot memtest_bin"
|
||||||
v="romdir cbrom initmode displaymode cbcfg targetdir tree arch"
|
v="romdir cbrom initmode displaymode cbcfg targetdir tree arch keymaps"
|
||||||
v="${v} grub_timeout ubdir board grub_scan_disk uboot_config"
|
v="${v} grub_timeout ubdir board grub_scan_disk uboot_config"
|
||||||
eval "$(setvars "n" ${pv})"
|
eval "$(setvars "n" ${pv})"
|
||||||
eval "$(setvars "" ${v} boards _displaymode _payload _keyboard all targets)"
|
eval "$(setvars "" ${v} boards _displaymode _payload _keyboard all targets)"
|
||||||
|
@ -53,8 +53,7 @@ main()
|
||||||
err "Cannot generate list of boards for building"
|
err "Cannot generate list of boards for building"
|
||||||
|
|
||||||
for x in ${boards}; do
|
for x in ${boards}; do
|
||||||
eval "$(setvars "n" ${pv})"
|
eval "$(setvars "n" ${pv}) $(setvars "" ${v})"
|
||||||
eval "$(setvars "" ${v})"
|
|
||||||
grub_background="background1280x800.png"
|
grub_background="background1280x800.png"
|
||||||
board="${x}"
|
board="${x}"
|
||||||
check_target
|
check_target
|
||||||
|
@ -65,7 +64,8 @@ main()
|
||||||
|
|
||||||
[ -z "${targets}" ] && err "No ROM images were compiled"
|
[ -z "${targets}" ] && err "No ROM images were compiled"
|
||||||
printf "\nROM images available in these directories:\n"
|
printf "\nROM images available in these directories:\n"
|
||||||
printf "%s^^ ROM images available in these directories.\n\n" "$targets"
|
eval "printf \"${targets}\""
|
||||||
|
printf "^^ ROM images available in these directories.\n\n"
|
||||||
|
|
||||||
printf "DO NOT flash ROM images from elf/ - please use bin/ instead.\n"
|
printf "DO NOT flash ROM images from elf/ - please use bin/ instead.\n"
|
||||||
}
|
}
|
||||||
|
@ -127,20 +127,15 @@ prepare_target()
|
||||||
cbfstool="cbutils/${tree}/cbfstool"
|
cbfstool="cbutils/${tree}/cbfstool"
|
||||||
cbrom="${cbdir}/build/coreboot.rom"
|
cbrom="${cbdir}/build/coreboot.rom"
|
||||||
|
|
||||||
[ -f "${cbfstool}" ] || \
|
[ -f "${cbfstool}" ] || x_ ./update trees -b coreboot utils ${tree}
|
||||||
x_ ./update trees -b coreboot utils ${tree}
|
|
||||||
|
|
||||||
build_dependency_seabios
|
|
||||||
|
|
||||||
memtest_bin="memtest86plus/build64/memtest.bin"
|
memtest_bin="memtest86plus/build64/memtest.bin"
|
||||||
[ "${payload_memtest}" != "y" ] || [ -f "src/${memtest_bin}" ] || \
|
[ "${payload_memtest}" != "y" ] || [ -f "src/${memtest_bin}" ] || \
|
||||||
x_ ./update trees -b memtest86plus
|
x_ ./update trees -b memtest86plus
|
||||||
|
|
||||||
rm -f "${romdir}/"* || err "!prepare, rm files, ${romdir}"
|
for bt in dependency_seabios dependency_grub dependency_uboot target; do
|
||||||
|
eval "build_${bt}"
|
||||||
build_dependency_grub
|
done
|
||||||
build_dependency_uboot
|
|
||||||
build_target
|
|
||||||
}
|
}
|
||||||
|
|
||||||
build_dependency_seabios()
|
build_dependency_seabios()
|
||||||
|
@ -162,14 +157,15 @@ build_dependency_grub()
|
||||||
rebuild_grub="n"
|
rebuild_grub="n"
|
||||||
[ -f "${grubelf}" ] || rebuild_grub="y"
|
[ -f "${grubelf}" ] || rebuild_grub="y"
|
||||||
for keymapfile in "${kmapdir}"/*.gkb; do
|
for keymapfile in "${kmapdir}"/*.gkb; do
|
||||||
[ "${rebuild_grub}" = "y" ] || break
|
|
||||||
[ -f "${keymapfile}" ] || continue
|
[ -f "${keymapfile}" ] || continue
|
||||||
|
|
||||||
|
keymaps="${keymaps} ${keymapfile}"
|
||||||
keymap="${keymapfile##*/}"
|
keymap="${keymapfile##*/}"
|
||||||
keymap="${keymap%.gkb}"
|
keymap="${keymap%.gkb}"
|
||||||
[ ! -f "elf/grub/keymap_${keymap}.cfg" ] && \
|
[ ! -f "elf/grub/keymap_${keymap}.cfg" ] && \
|
||||||
rebuild_grub="y" && break
|
rebuild_grub="y"
|
||||||
done
|
done
|
||||||
|
[ -n "${_keyboard}" ] && keymaps="${kmapdir}/${_keyboard}.gkb"
|
||||||
[ "${rebuild_grub}" = "y" ] || return 0
|
[ "${rebuild_grub}" = "y" ] || return 0
|
||||||
x_ ./build grub
|
x_ ./build grub
|
||||||
}
|
}
|
||||||
|
@ -189,6 +185,8 @@ build_dependency_uboot()
|
||||||
|
|
||||||
build_target()
|
build_target()
|
||||||
{
|
{
|
||||||
|
rm -f "${romdir}/"* || err "!prepare, rm files, ${romdir}"
|
||||||
|
|
||||||
for x in "normal" "vgarom" "libgfxinit"; do
|
for x in "normal" "vgarom" "libgfxinit"; do
|
||||||
initmode="${x}"
|
initmode="${x}"
|
||||||
hmode="vesafb"
|
hmode="vesafb"
|
||||||
|
@ -229,10 +227,8 @@ build_roms()
|
||||||
[ "${payload_memtest}" != "y" ] || \
|
[ "${payload_memtest}" != "y" ] || \
|
||||||
x_ "${cbfstool}" "${cbrom}" add-payload \
|
x_ "${cbfstool}" "${cbrom}" add-payload \
|
||||||
-f "src/${memtest_bin}" -n img/memtest -c lzma
|
-f "src/${memtest_bin}" -n img/memtest -c lzma
|
||||||
[ "${payload_seabios}" = "y" ] && \
|
[ "${payload_seabios}" = "y" ] && build_seabios_roms
|
||||||
build_seabios_roms
|
[ "${payload_grub}" != "y" ] || x_ build_grub_roms "${cbrom}" "grub"
|
||||||
[ "${payload_grub}" != "y" ] || \
|
|
||||||
x_ build_grub_roms "${cbrom}" "grub"
|
|
||||||
[ "${payload_uboot}" = "y" ] || return 0
|
[ "${payload_uboot}" = "y" ] || return 0
|
||||||
x_ cp "${_cbrom}" "${cbrom}"
|
x_ cp "${_cbrom}" "${cbrom}"
|
||||||
build_uboot_roms
|
build_uboot_roms
|
||||||
|
@ -299,12 +295,6 @@ build_grub_roms()
|
||||||
-f "${tmpcfg}" -n timeout.cfg -t raw
|
-f "${tmpcfg}" -n timeout.cfg -t raw
|
||||||
x_ rm -f "${tmpcfg}"
|
x_ rm -f "${tmpcfg}"
|
||||||
|
|
||||||
keymaps=""
|
|
||||||
for kmapfile in "${kmapdir}"/*; do
|
|
||||||
keymaps="${keymaps} ${kmapfile}"
|
|
||||||
done
|
|
||||||
[ -z "${_keyboard}" ] || keymaps="${kmapdir}/${_keyboard}.gkb"
|
|
||||||
|
|
||||||
for keymapfile in ${keymaps}; do
|
for keymapfile in ${keymaps}; do
|
||||||
[ -f "${keymapfile}" ] || continue
|
[ -f "${keymapfile}" ] || continue
|
||||||
keymap="${keymapfile##*/}"
|
keymap="${keymapfile##*/}"
|
||||||
|
|
Loading…
Reference in New Issue