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"
|
tree="default"
|
||||||
rev="62e2ad1ceafbfdf2c44d3dc1b6efc81e768a96b9" # v2023.01
|
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}/" || \
|
cd "${srcdir}/" || \
|
||||||
err "purge_files 3: !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 || \
|
./handle make file -c coreboot/default/util/kbc1126 || \
|
||||||
err "purge_files 1: default/util/kbc1126: ! make clean"
|
err "purge_files 1: default/util/kbc1126: ! make clean"
|
||||||
./build clean all || \
|
./handle make config -x coreboot || \
|
||||||
err "purge_files 1: ! ./build clean all"
|
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
|
for p in bios_extract flashrom grub ich9utils uefitool; do
|
||||||
./handle make file -c "${p}" || \
|
./handle make file -c "${p}" || \
|
||||||
|
|
|
@ -49,7 +49,7 @@ cbfstool=""
|
||||||
|
|
||||||
main()
|
main()
|
||||||
{
|
{
|
||||||
while getopts b:m:u: option
|
while getopts b:m:u:c:x: option
|
||||||
do
|
do
|
||||||
case "${1}" in
|
case "${1}" in
|
||||||
-b)
|
-b)
|
||||||
|
@ -61,6 +61,12 @@ main()
|
||||||
-m)
|
-m)
|
||||||
mode="menuconfig"
|
mode="menuconfig"
|
||||||
shift ;;
|
shift ;;
|
||||||
|
-c)
|
||||||
|
mode="distclean"
|
||||||
|
shift ;;
|
||||||
|
-x)
|
||||||
|
mode="crossgcc-clean"
|
||||||
|
shift ;;
|
||||||
*)
|
*)
|
||||||
fail "Invalid option" ;;
|
fail "Invalid option" ;;
|
||||||
esac
|
esac
|
||||||
|
@ -139,9 +145,16 @@ handle_dependencies()
|
||||||
fail "handle_dependencies: ${target_dir}: undefined cpu type"
|
fail "handle_dependencies: ${target_dir}: undefined cpu type"
|
||||||
|
|
||||||
codedir="${project}/${tree}"
|
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}" || \
|
./update project trees "${project}" "${target}" || \
|
||||||
fail "handle_dependencies: can't fetch ${project}/${target}"
|
fail "handle_dependencies: can't fetch ${project}/${target}"
|
||||||
|
fi
|
||||||
|
|
||||||
# u-boot and coreboot are both compiled with coreboot's crossgcc
|
# u-boot and coreboot are both compiled with coreboot's crossgcc
|
||||||
if [ "${project}" = "coreboot" ] || [ "${project}" = "u-boot" ]; then
|
if [ "${project}" = "coreboot" ] || [ "${project}" = "u-boot" ]; then
|
||||||
|
@ -239,8 +252,12 @@ run_make_command()
|
||||||
|| fail "run_make_command: ${codedir}: can't set version"
|
|| fail "run_make_command: ${codedir}: can't set version"
|
||||||
fi
|
fi
|
||||||
make -C "${codedir}" -j$(nproc) ${mode} || \
|
make -C "${codedir}" -j$(nproc) ${mode} || \
|
||||||
fail "run_make_command: make-all: ${codedir} (${project}/${target})"
|
fail "run_make: !make-${mode}: ${codedir} (${project}/${target})"
|
||||||
if [ "${mode}" = "oldconfig" ] || [ "${mode}" = "menuconfig" ]; then
|
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}" || \
|
cp "${codedir}/.config" "${config}" || \
|
||||||
fail "run_make: can't edit config: ${project}/${target}"
|
fail "run_make: can't edit config: ${project}/${target}"
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in New Issue