diff options
author | Leah Rowe <leah@libreboot.org> | 2023-08-20 11:00:42 +0100 |
---|---|---|
committer | Leah Rowe <leah@libreboot.org> | 2023-08-20 11:03:56 +0100 |
commit | e076d8934b8407596c91fb63ab69f7c45ba592d8 (patch) | |
tree | 5109d5db576c7d29f89200ccd36cc63eb91c5f26 | |
parent | e25984d781830bc46a20ce67154e0aeb8186286c (diff) |
unify update/modify coreboot/u-boot/seabios script
./update seabios configs? gone
.modify coreboot configs? gone
it's now all 1 script, called e.g.
./modify defconfig options -u coreboot <-- runs make oldconfig
./modify defconfig options -m seabios <-- runs make menuconfig
./modify defconfig options -u u-boot gru_bob <-- oldconfig, and only gru_bob
./modify defconfig options -u coreboot x60 x200_8mb
etc. you get the idea. same behaviour as before with all
the separate scripts, but now its one unified script.
184 sloc reduction in resources/scripts/
Signed-off-by: Leah Rowe <leah@libreboot.org>
-rwxr-xr-x | resources/scripts/modify/coreboot/configs | 75 | ||||
-rwxr-xr-x | resources/scripts/modify/defconfig/options | 107 | ||||
-rwxr-xr-x | resources/scripts/modify/seabios/configs | 56 | ||||
-rwxr-xr-x | resources/scripts/modify/u-boot/configs | 77 | ||||
-rwxr-xr-x | resources/scripts/update/coreboot/configs | 82 | ||||
-rwxr-xr-x | resources/scripts/update/seabios/configs | 64 | ||||
-rwxr-xr-x | resources/scripts/update/u-boot/configs | 83 |
7 files changed, 107 insertions, 437 deletions
diff --git a/resources/scripts/modify/coreboot/configs b/resources/scripts/modify/coreboot/configs deleted file mode 100755 index f6daa2f4..00000000 --- a/resources/scripts/modify/coreboot/configs +++ /dev/null @@ -1,75 +0,0 @@ -#!/usr/bin/env sh - -# helper script: modify coreboot configs (run make menuconfig) -# -# Copyright (C) 2021, 2023 Leah Rowe <info@minifree.org> -# Copyright (C) 2022 Ferass El Hafidi <vitali64pmemail@protonmail.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 - -main() -{ - printf "Modifying coreboot configs\n" - - if [ $# -gt 0 ]; then - for board in ${@}; do - modifyconf "${board}" - done - else - for board in resources/coreboot/*; do - if [ ! -d "${board}" ]; then - continue - fi - modifyconf "${board##*/}" - done - fi -} - -# Build ROM images for supported boards -modifyconf() { - board="$1" - - if [ ! -f "resources/coreboot/${board}/target.cfg" ]; then - printf "\nmodify/config/coreboot: no target.cfg for: %s\n" \ - "${board}" - fi - - tree="" - . "resources/coreboot/${board}/target.cfg" # source - - if [ -z ${tree} ]; then - return 0 - fi - cbdir="coreboot/${tree}" - if [ ! -d "${cbdir}" ]; then - ./fetch_trees coreboot ${tree} - fi - - for cbcfg in resources/coreboot/${board}/config/*; do - if [ ! -f ${cbcfg} ]; then - continue - fi - make distclean -BC "${cbdir}" - mv "${cbcfg}" "${cbdir}/.config" - make menuconfig -BC "${cbdir}" - mv "${cbdir}/.config" "${cbcfg}" - make distclean -BC "${cbdir}" - done -} - -main $@ diff --git a/resources/scripts/modify/defconfig/options b/resources/scripts/modify/defconfig/options new file mode 100755 index 00000000..2f5c2f61 --- /dev/null +++ b/resources/scripts/modify/defconfig/options @@ -0,0 +1,107 @@ +#!/usr/bin/env sh + +# +# helper script: update project configs (based on defconfig) +# +# Copyright (C) 2021, 2023 Leah Rowe <info@minifree.org> +# Copyright (C) 2022 Ferass El Hafidi <vitali64pmemail@protonmail.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 + +cfgsdir="" +mode="" +project="" + +main() +{ + while getopts m:u: option + do + case "${1}" in + -u) + mode="oldconfig" + shift ;; + -m) + mode="menuconfig" + shift ;; + *) + err "Invalid option" ;; + esac + project="${OPTARG}" + shift + done + [ -z "${mode}" ] && err "mode not given (-m menuconfig or -u oldconfig)" + cfgsdir="resources/${project}" + [ -f "${cfgsdir}/build.list" ] || err "Invalid project name given" + + printf "Updating %s configs using: make %s\n\n" "${project}" "${mode}" + + if [ $# -gt 0 ]; then + for target in "${@}"; do + configure_target "${target}" + done + else + for target in ${cfgsdir}/*; do + [ ! -d "${target}" ] && continue + configure_target "${target##*/}" + done + fi +} + +configure_target() +{ + target=${1} + + targetdir="${cfgsdir}/${target}" + + if [ ! -f "${targetdir}/target.cfg" ]; then + printf "\nmodify/defconfig %s: no target.cfg for %s. SKIP!\n" \ + "${project}" "${target}" + return 0 + fi + + tree="undefined" + . "${targetdir}/target.cfg" + [ "${tree}" = "undefined" ] && return 0 + + codedir="${project}/${tree}" + [ -d "${codedir}" ] || ./fetch_trees ${project} ${tree} || \ + err "cant download $project" + + for cfg in "${targetdir}/config/"*; do + [ ! -f "${cfg}" ] && continue + make distclean -BC "${codedir}" + + [ -f "${cfg}_" ] && err "${cfg}_ exists from old run" + cp "${cfg}" "${cfg}_" + + cp "${cfg}_" "${codedir}/.config" + make ${mode} -BC "${codedir}" + mv "${codedir}/.config" "${cfg}" + + make distclean -BC "${codedir}" + rm -f "${cfg}_" + done +} + +err() +{ + printf "ERROR: modify/defconfig: %s\n" "${1}" 1>&2 + exit 1 +} + +main $@ diff --git a/resources/scripts/modify/seabios/configs b/resources/scripts/modify/seabios/configs deleted file mode 100755 index b07dfff8..00000000 --- a/resources/scripts/modify/seabios/configs +++ /dev/null @@ -1,56 +0,0 @@ -#!/usr/bin/env sh - -# helper script: modify coreboot configs (run make menuconfig) -# -# Copyright (C) 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 - -main() -{ - printf "Updating seabios configs\n" - download_seabios - modify_configs -} - -download_seabios() -{ - if [ ! -d "seabios" ]; then - ./fetch_trees seabios - fi - if [ ! -d "seabios" ]; then - printf "error: Failed to download SeaBIOS. " - printf "Check internet connection?\n" - exit 1 - fi -} - -modify_configs() -{ - for config in resources/seabios/config/*; do - if [ ! -f "${config}" ]; then - continue - fi - make distclean -BC seabios - mv "${config}" seabios/.config - make menuconfig -BC seabios - cp seabios/.config "${config}" - make distclean -BC seabios - done -} - -main $@ diff --git a/resources/scripts/modify/u-boot/configs b/resources/scripts/modify/u-boot/configs deleted file mode 100755 index 4e16f353..00000000 --- a/resources/scripts/modify/u-boot/configs +++ /dev/null @@ -1,77 +0,0 @@ -#!/usr/bin/env sh - -# helper script: modify U-Boot configs (run make menuconfig) -# -# Copyright (C) 2022 Alper Nebi Yasak <alpernebiyasak@gmail.com> -# Copyright (C) 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com> -# Copyright (C) 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 - -main() -{ - printf "Modifying U-Boot configs\n" - - if [ $# -gt 0 ]; then - for board in "${@}"; do - modifyconf "${board}" - done - else - for board in resources/u-boot/*; do - if [ ! -d "${board}" ]; then - continue - fi - modifyconf "${board##*/}" - done - fi -} - -# Build ROM images for supported boards -modifyconf() -{ - board="$1" - if [ ! -f "resources/u-boot/${board}/target.cfg" ]; then - printf "\nmodify/config/u-boot: no target.cfg for: %s\n" \ - "${board}" - return 0 - fi - - tree="undefined" - . "resources/u-boot/${board}/target.cfg" # source - - if [ "${tree}" = "undefined" ]; then - return 0 - fi - ubdir="u-boot/${tree}" - - if [ ! -d "${ubdir}" ]; then - ./fetch_trees u-boot ${tree} - fi - - for ubcfg in resources/u-boot/${board}/config/*; do - if [ ! -f ${ubcfg} ]; then - continue - fi - make distclean -BC "${ubdir}" - mv "${ubcfg}" "${ubdir}/.config" - make menuconfig -BC "${ubdir}" - mv "${ubdir}/.config" "${ubcfg}" - make distclean -BC "${ubdir}" - done -} - -main $@ diff --git a/resources/scripts/update/coreboot/configs b/resources/scripts/update/coreboot/configs deleted file mode 100755 index c17a21bb..00000000 --- a/resources/scripts/update/coreboot/configs +++ /dev/null @@ -1,82 +0,0 @@ -#!/usr/bin/env sh - -# -# helper script: update coreboot configs (run make oldconfig) -# -# Copyright (C) 2021 Leah Rowe <info@minifree.org> -# Copyright (C) 2022 Ferass El Hafidi <vitali64pmemail@protonmail.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/>. -# - -# This script assumes that the working directory is the root -# of git or release archive - -[ "x${DEBUG+set}" = 'xset' ] && set -v -set -u -e - -cbcfgsdir="resources/coreboot" - -main() -{ - printf "Updating coreboot configs\n" - - if [ $# -gt 0 ]; then - for board in "${@}"; do - updateconf "${board}" - done - else - for board in ${cbcfgsdir}/*; do - if [ ! -d "${board}" ]; then - continue - fi - updateconf "${board##*/}" - done - fi -} - -# Build ROM images for supported boards -updateconf() -{ - board=${1} - - boarddir="${cbcfgsdir}/${board}" - - if [ -f "${boarddir}/target.cfg" ]; then - tree="undefined" - . "${boarddir}/target.cfg" # source - if [ "${tree}" = "undefined" ]; then - return 0 - fi - cbdir="coreboot/${tree}" - if [ ! -d "${cbdir}" ]; then - ./fetch_trees coreboot ${tree} - fi - for cbcfg in "${boarddir}/config/"*; do - if [ ! -f "${cbcfg}" ]; then - continue - fi - make distclean -BC "${cbdir}" - mv $cbcfg ${cbdir}/.config - make oldconfig -BC "${cbdir}" - mv ${cbdir}/.config $cbcfg - make distclean -BC "${cbdir}" - done - else - printf "\nupdate/config/coreboot: no target.cfg for: %s\n" \ - ${board} - fi -} - -main $@ diff --git a/resources/scripts/update/seabios/configs b/resources/scripts/update/seabios/configs deleted file mode 100755 index 91002502..00000000 --- a/resources/scripts/update/seabios/configs +++ /dev/null @@ -1,64 +0,0 @@ -#!/usr/bin/env sh - -# -# helper script: update coreboot configs (run make oldconfig) -# -# Copyright (C) 2021 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/>. -# - -# This script assumes that the working directory is the root -# of git or release archive - -[ "x${DEBUG+set}" = 'xset' ] && set -v -set -u -e - -printf "Updating seabios configs\n" - -if [ ! -d "seabios" ]; then - ./fetch_trees seabios -fi - -if [ ! -d "seabios" ]; then - printf "error: Failed to download SeaBIOS. check internet connection?\n" - exit 1 -fi - -for config in resources/seabios/config/*; do - - if [ ! -f "${config}" ]; then continue; fi - - ( - cd seabios - make distclean - ) - - mv "${config}" seabios/.config - ( - cd seabios - make oldconfig - ) - - cp seabios/.config "${config}" - - ( - cd seabios - make distclean - ) - -done - -printf "\n\n" - diff --git a/resources/scripts/update/u-boot/configs b/resources/scripts/update/u-boot/configs deleted file mode 100755 index 4dbb05bc..00000000 --- a/resources/scripts/update/u-boot/configs +++ /dev/null @@ -1,83 +0,0 @@ -#!/usr/bin/env sh - -# -# helper script: update U-Boot configs (run make oldconfig) -# -# Copyright (C) 2022 Alper Nebi Yasak <alpernebiyasak@gmail.com> -# Copyright (C) 2022 Ferass El Hafidi <vitali64pmemail@protonmail.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/>. -# - -# This script assumes that the working directory is the root -# of git or release archive - -[ "x${DEBUG+set}" = 'xset' ] && set -v -set -u -e - -printf "Updating U-Boot configs\n" - -# Build ROM images for supported boards -updateconf() { - board="$1" - if [ -f "resources/u-boot/${board}/target.cfg" ]; then - tree="undefined" - . "resources/u-boot/${board}/target.cfg" # source - if [ "${tree}" = "undefined" ]; then - return 0 - fi - if [ ! -d "u-boot/${tree}" ]; then - ./fetch_trees u-boot ${tree} - fi - for ubcfg in resources/u-boot/${board}/config/*; do - if [ ! -f ${ubcfg} ]; then - continue - fi - ( - cd u-boot/${tree}/ - rm -f .config* - make distclean - ) - mv $ubcfg u-boot/${tree}/.config - ( - cd u-boot/${tree}/ - make oldconfig - ) - mv u-boot/${tree}/.config $ubcfg - rm -f u-boot/${tree}/.config* - ( - cd u-boot/${tree}/ - make distclean - ) - done - else - printf "\nupdate/config/u-boot: no target.cfg for: %s\n" "${board}" - fi -} - -if [ $# -gt 0 ]; then - for board in "${@}"; do - updateconf "${board}" - done -else - for board in resources/u-boot/*; do - if [ ! -d "${board}" ]; then - continue - fi - updateconf "${board##*/}" - done -fi - -printf "\n\n" - |