unify build/clean scripts: use handle/make instead
The -c option is added for distclean, and -x for crossgcc-clean, in handle/make/config about 100 sloc removed from lbmk Signed-off-by: Leah Rowe <leah@libreboot.org>btrfsvols
parent
cec37747b7
commit
7c6b35cf95
|
@ -1,2 +1,3 @@
|
|||
tree="default"
|
||||
rev="62e2ad1ceafbfdf2c44d3dc1b6efc81e768a96b9" # v2023.01
|
||||
arch="AArch64"
|
||||
|
|
|
@ -1,59 +0,0 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
# helper script: clean the dependencies that were built in coreboot
|
||||
#
|
||||
# Copyright (C) 2014-2016, 2020, 2023 Leah Rowe <info@minifree.org>
|
||||
# Copyright (C) 2015 Klemens Nanni <contact@autoboot.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/>.
|
||||
#
|
||||
|
||||
# This script assumes that the current working directory is the root
|
||||
|
||||
[ "x${DEBUG+set}" = 'xset' ] && set -v
|
||||
set -u -e
|
||||
|
||||
. "include/err.sh"
|
||||
|
||||
main()
|
||||
{
|
||||
printf "Cleaning the previous build of coreboot and its utilities\n"
|
||||
|
||||
rm -Rf cbutils || err "cannot remove cbutils/"
|
||||
[ ! -d "coreboot/" ] && exit 0
|
||||
|
||||
clean_cbutils
|
||||
}
|
||||
|
||||
clean_cbutils()
|
||||
{
|
||||
for tree in coreboot/*; do
|
||||
[ "${tree##*/}" = "coreboot" ] && continue
|
||||
[ -d "${tree}" ] || continue
|
||||
|
||||
# Clean coreboot, of course
|
||||
make -C "${tree}/" distclean || \
|
||||
err "clean_cbutils: ${tree}: cannot distclean"
|
||||
|
||||
# Clean its utilities as well
|
||||
for util in cbfstool ifdtool nvramtool cbmem; do
|
||||
make distclean -C "${tree}/util/${util}/" || \
|
||||
err "clean_cbutils: ${cbtree} ${util}: can't clean"
|
||||
done
|
||||
make distclean -C "${tree}/payloads/libpayload/" || \
|
||||
err "clean_cbutils: ${tree}: can't distclean libpayload"
|
||||
done
|
||||
}
|
||||
|
||||
main $@
|
|
@ -1,45 +0,0 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
# helper script: clean the crossgcc builds
|
||||
#
|
||||
# Copyright (C) 2014-2016, 2020, 2023 Leah Rowe <info@minifree.org>
|
||||
# Copyright (C) 2015 Klemens Nanni <contact@autoboot.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
|
||||
|
||||
. "include/err.sh"
|
||||
|
||||
main()
|
||||
{
|
||||
printf "Cleaning crossgcc builds in all coreboot archives\n"
|
||||
[ ! -d "coreboot/" ] && exit 0
|
||||
|
||||
clean_crossgcc
|
||||
}
|
||||
|
||||
clean_crossgcc()
|
||||
{
|
||||
for board in coreboot/*; do
|
||||
[ -d "${board}" ] || continue
|
||||
[ "${board##*/}" = "coreboot" ] && continue
|
||||
make -C "${board}/" crossgcc-clean || \
|
||||
err "clean_crossgcc: ${board}: !make crossgcc-clean"
|
||||
done
|
||||
}
|
||||
|
||||
main $@
|
|
@ -1,48 +0,0 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
# helper script: clean the dependencies that were built in seabios
|
||||
#
|
||||
# Copyright (C) 2015,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
|
||||
|
||||
. "include/err.sh"
|
||||
|
||||
# clean bucts
|
||||
# --------------------------------------------------------
|
||||
|
||||
main()
|
||||
{
|
||||
[ ! -d "elf/seabios" ] || rm -Rf elf/seabios || \
|
||||
err "cannot remove elf/seabios"
|
||||
[ ! -d "seabios/" ] && exit 0
|
||||
|
||||
clean_seabios
|
||||
}
|
||||
|
||||
clean_seabios()
|
||||
{
|
||||
for x in seabios/*; do
|
||||
[ ! -d "${x}" ] && continue
|
||||
[ "${x}" = "seabios/seabios" ] && continue
|
||||
make -C "${x}" distclean || \
|
||||
err "clean_seabios: cannot distclean tree, ${x}"
|
||||
done
|
||||
}
|
||||
|
||||
main $@
|
|
@ -1,51 +0,0 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
# helper script: clean the u-boot builds
|
||||
#
|
||||
# Copyright (C) 2014-2016, 2020, 2023 Leah Rowe <info@minifree.org>
|
||||
# Copyright (C) 2015 Klemens Nanni <contact@autoboot.org>
|
||||
# Copyright (C) 2022 Alper Nebi Yasak <alpernebiyasak@gmail.com>
|
||||
#
|
||||
# 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
|
||||
|
||||
. "include/err.sh"
|
||||
|
||||
main()
|
||||
{
|
||||
printf "Cleaning u-boot builds for all boards\n"
|
||||
clean_uboot
|
||||
}
|
||||
|
||||
clean_uboot()
|
||||
{
|
||||
for board in u-boot/*; do
|
||||
if [ "${board##*/}" = "u-boot" ] || [ ! -d "${board}" ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
make -C "${board}/" distclean || \
|
||||
err "clean_uboot: cannot distclean ${board}"
|
||||
|
||||
if [ -e "${board}/.git" ]; then
|
||||
git -C "${board}" clean -fdx || \
|
||||
err "clean_uboot: ${board}: cannot clean git files"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
main $@
|
|
@ -152,16 +152,14 @@ purge_files()
|
|||
cd "${srcdir}/" || \
|
||||
err "purge_files 3: !cd ${srcdir}/"
|
||||
|
||||
for p in coreboot/*; do
|
||||
[ -d "${p}" ] || continue
|
||||
./handle make file -c "${p}" || \
|
||||
err "purge_files 1: ${p}: !make distclean"
|
||||
done
|
||||
|
||||
./handle make file -c coreboot/default/util/kbc1126 || \
|
||||
err "purge_files 1: default/util/kbc1126: ! make clean"
|
||||
./build clean all || \
|
||||
err "purge_files 1: ! ./build clean all"
|
||||
./handle make config -x coreboot || \
|
||||
err "purge_files: coreboot: cannot clean crossgcc files"
|
||||
for p in u-boot seabios coreboot; do
|
||||
./handle make config -c "${p}" || \
|
||||
err "purge_files: ${p}: cannot clean the source trees"
|
||||
done
|
||||
|
||||
for p in bios_extract flashrom grub ich9utils uefitool; do
|
||||
./handle make file -c "${p}" || \
|
||||
|
|
|
@ -49,7 +49,7 @@ cbfstool=""
|
|||
|
||||
main()
|
||||
{
|
||||
while getopts b:m:u: option
|
||||
while getopts b:m:u:c:x: option
|
||||
do
|
||||
case "${1}" in
|
||||
-b)
|
||||
|
@ -61,6 +61,12 @@ main()
|
|||
-m)
|
||||
mode="menuconfig"
|
||||
shift ;;
|
||||
-c)
|
||||
mode="distclean"
|
||||
shift ;;
|
||||
-x)
|
||||
mode="crossgcc-clean"
|
||||
shift ;;
|
||||
*)
|
||||
fail "Invalid option" ;;
|
||||
esac
|
||||
|
@ -139,9 +145,16 @@ handle_dependencies()
|
|||
fail "handle_dependencies: ${target_dir}: undefined cpu type"
|
||||
|
||||
codedir="${project}/${tree}"
|
||||
[ -d "${codedir}" ] || \
|
||||
if [ ! -d "${codedir}" ]; then
|
||||
if [ "${mode}" = "distclean" ] || \
|
||||
[ "${mode}" = "crossgcc-clean" ]; then
|
||||
printf "Directory '%s' does not exist; skipping clean" \
|
||||
"${codedir}" 1>&2
|
||||
exit 0
|
||||
fi
|
||||
./update project trees "${project}" "${target}" || \
|
||||
fail "handle_dependencies: can't fetch ${project}/${target}"
|
||||
fi
|
||||
|
||||
# u-boot and coreboot are both compiled with coreboot's crossgcc
|
||||
if [ "${project}" = "coreboot" ] || [ "${project}" = "u-boot" ]; then
|
||||
|
@ -239,8 +252,12 @@ run_make_command()
|
|||
|| fail "run_make_command: ${codedir}: can't set version"
|
||||
fi
|
||||
make -C "${codedir}" -j$(nproc) ${mode} || \
|
||||
fail "run_make_command: make-all: ${codedir} (${project}/${target})"
|
||||
if [ "${mode}" = "oldconfig" ] || [ "${mode}" = "menuconfig" ]; then
|
||||
fail "run_make: !make-${mode}: ${codedir} (${project}/${target})"
|
||||
if [ -e "${codedir}/.git" ] && [ "${project}" = "u-boot" ] && \
|
||||
[ "${mode}" = "distclean" ]; then
|
||||
git -C "${codedir}" clean -fdx || \
|
||||
err "run_make_command: ${codedir}: cannot clean u-boot git"
|
||||
elif [ "${mode}" = "oldconfig" ] || [ "${mode}" = "menuconfig" ]; then
|
||||
cp "${codedir}/.config" "${config}" || \
|
||||
fail "run_make: can't edit config: ${project}/${target}"
|
||||
fi
|
||||
|
|
Loading…
Reference in New Issue