summaryrefslogtreecommitdiff
path: root/resources/scripts
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2023-08-20 11:00:42 +0100
committerLeah Rowe <leah@libreboot.org>2023-08-20 11:03:56 +0100
commite076d8934b8407596c91fb63ab69f7c45ba592d8 (patch)
tree5109d5db576c7d29f89200ccd36cc63eb91c5f26 /resources/scripts
parente25984d781830bc46a20ce67154e0aeb8186286c (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>
Diffstat (limited to 'resources/scripts')
-rwxr-xr-xresources/scripts/modify/coreboot/configs75
-rwxr-xr-xresources/scripts/modify/defconfig/options107
-rwxr-xr-xresources/scripts/modify/seabios/configs56
-rwxr-xr-xresources/scripts/modify/u-boot/configs77
-rwxr-xr-xresources/scripts/update/coreboot/configs82
-rwxr-xr-xresources/scripts/update/seabios/configs64
-rwxr-xr-xresources/scripts/update/u-boot/configs83
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"
-