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>btrfsvols
parent
e25984d781
commit
e076d8934b
|
@ -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 $@
|
|
@ -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 $@
|
|
@ -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 $@
|
|
@ -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 $@
|
|
@ -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 $@
|
|
@ -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"
|
||||
|
|
@ -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"
|
||||
|
Loading…
Reference in New Issue