Files
lbmk/resources/scripts/build/coreboot/utils
T
Leah Rowe f893a29b22 unify most module build scripts
Some of them weren't even used at all, such as the flashrom
build script. the bios_extract build script existed but was
never used, because we only called (from blobutil) a python
script from in there, without actually compiling anything!

resources/script/build/src/for

Usage, e.g.:

./build src for memtest86plus

It also handles fetch. This script is intended largely for
those codebases that are quite simple, requiring trivial
or no intervention besides running "make".

37 sloc reduction. Not a lot, but the audit continues! These
optimisations add up. I started at 3300 sloc in
resources/scripts and me target is 2k (2000) sloc.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-08-20 17:47:02 +01:00

77 lines
2.0 KiB
Bash
Executable File

#!/usr/bin/env sh
# helper script: build various coreboot utilities
#
# Copyright (C) 2014-2016,2020,2021,2023 Leah Rowe <info@minifree.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
[ "x${DEBUG+set}" = 'xset' ] && set -v
set -u -e
printf "Building coreboot utils\n"
main()
{
if [ $# -gt 0 ]; then
for board in "${@}"; do
build_for_mainboard ${board} || exit 1
done
else
for boarddir in resources/coreboot/*; do
[ ! -d "${boarddir}" ] && continue
build_for_mainboard ${boarddir##*/} || exit 1
done
fi
}
build_for_mainboard() {
board="${1}"
[ ! -d "resources/coreboot/${board}" ] && \
continue
[ ! -f "resources/coreboot/${board}/target.cfg" ] && \
continue
tree="undefined"
. "resources/coreboot/${board}/target.cfg" # source
if [ "${tree}" = "undefined" ]; then
printf "build/cbutils: improper tree definition for '%s'" \
"${board}"
return 1
fi
buildutils "${tree}" || return 1
}
buildutils() {
tree="${1}"
if [ ! -d "coreboot/${tree}/" ]; then
./fetch_trees coreboot $tree || return 1
fi
for util in cbfstool ifdtool; do
[ -f "cbutils/${tree}/${util}" ] \
&& continue
if [ ! -d "cbutils/${tree}" ]; then
mkdir -p "cbutils/${tree}" || return 1
fi
utildir="coreboot/${tree}/util/${util}"
make distclean -C "${utildir}" || return 1
make -j$(nproc) -C "${utildir}" || return 1
mv "${utildir}/${util}" "cbutils/${tree}" || return 1
make distclean -C "${utildir}" || return 1
done
}
main $@