Files
lbmk/script/build/coreboot/utils
Leah Rowe cc1642096e Use SPDX license headers on all scripts
This results in much cleaner copyright and license declarations.
SPDX headers are legally recognised and make auditing easier.

Also, remove descriptions of each script, from each script.
Libreboot documentation at docs/maintain/ describes them.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-25 02:19:48 +01:00

65 lines
1.8 KiB
Bash
Executable File

#!/usr/bin/env sh
# SPDX-License-Identifier: GPL-3.0-or-later
# SPDX-FileCopyrightText: 2014-2016,2020,2021,2023 Leah Rowe <info@minifree.org>
[ "x${DEBUG+set}" = 'xset' ] && set -v
set -u -e
. "include/err.sh"
main()
{
printf "Building coreboot utils\n"
if [ $# -gt 0 ]; then
for board in "${@}"; do
build_for_mainboard ${board} || \
err "cannot build cbutils for target, ${board}"
done
else
for boarddir in config/coreboot/*; do
[ ! -d "${boarddir}" ] && continue
build_for_mainboard ${boarddir##*/} || \
err "cannot build cbutils for target, ${board}"
done
fi
}
build_for_mainboard() {
board="${1}"
[ -d "config/coreboot/${board}" ] || \
err "build_for_mainboard ${board}: boarddir does not exist"
[ -f "config/coreboot/${board}/target.cfg" ] || \
err "build_for_mainboard ${board}: target.cfg does not exist"
tree="undefined"
. "config/coreboot/${board}/target.cfg" # source
[ "${tree}" = "undefined" ] && \
err "build_for_mainboard: improper tree definition for '${board}'"
buildutils "${tree}"
}
buildutils() {
tree="${1}"
[ -d "coreboot/${tree}/" ] || \
./update project trees coreboot $tree || \
err "buildutils: cannot fetch ${tree}"
for util in cbfstool ifdtool; do
[ -f "cbutils/${tree}/${util}" ] && continue
[ -d "cbutils/${tree}" ] || \
mkdir -p "cbutils/${tree}" || \
err "buildutils: can't mkdir cbutils/${tree}"
utildir="coreboot/${tree}/util/${util}"
make distclean -C "${utildir}" || \
err "buildutils: cannot clean ${utildir}"
make -j$(nproc) -C "${utildir}" || \
err "buildutils: cannot build ${utildir}"
cp "${utildir}/${util}" "cbutils/${tree}" || \
err "buildutils: can't cp ${util} cbutils/${tree}/"
make distclean -C "${utildir}" || \
err "buildutils: can't clean ${utildir}"
done
}
main $@