Files
lbmk/script/handle/make/file
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.2 KiB
Bash
Executable File

#!/usr/bin/env sh
# SPDX-License-Identifier: GPL-3.0-or-later
# SPDX-FileCopyrightText: 2023 Leah Rowe <info@minifree.org>
[ "x${DEBUG+set}" = 'xset' ] && set -v
set -u -e
. "include/err.sh"
mode=""
project=""
main()
{
while getopts b:c: option
do
case "${1}" in
-b)
shift ;;
-c)
mode="distclean"
shift ;;
*)
err "Invalid option" ;;
esac
project="${OPTARG}"
shift
done
[ -z "${project}" ] && err "project name not specified"
handle_dependencies
run_make_command
}
handle_dependencies()
{
[ -d "${project}" ] || ./update project repo "${project%/*}" || \
err "handle_dependencies: can't fetch ${project%/*}"
[ -d "${project}" ] || \
err "handle_dependencies: ${project%/*} not downloaded"
if [ "${project}" = "uefitool" ]; then
(
cd uefitool || err "handle_dependencies: !cd uefitool"
cmake UEFIExtract/ || [ -f Makefile ] || \
err "handle_dependencies: !cmake UEFIExtract/"
)
fi
}
run_make_command()
{
if [ -z "${mode}" ]; then
make -C "${project}" -j$(nproc) || \
err "run_make_command: !make -C ${project}"
else
make -C "${project}" clean || \
err "run_make_command: ${project}: make-clean failed"
make -C "${project}" distclean || :
fi
}
main $@