mirror of
https://codeberg.org/libreboot/lbmk.git
synced 2026-03-28 06:59:03 +02:00
Just one script. Just one! Well, two, but the 2nd one already existed: logic in update/project/trees and update/project/repo was merged into include/git.sh and update/project/build was renamed to update/project/trees; an -f option was added, which calls the functions under git.sh so git clones are now handled by the main build script (for handling makefiles and defconfigs) but the logic there is a stub, where git.sh does all the actual heavy lifting this cuts the file count down by two, and reduces sloccount a reasonable amount because much of the logic already exists in the build script, when it comes to handling targets. git.sh was adjusted to integrate with this, rather than act standalone Signed-off-by: Leah Rowe <leah@libreboot.org>
112 lines
2.5 KiB
Bash
Executable File
112 lines
2.5 KiB
Bash
Executable File
#!/usr/bin/env sh
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
# SPDX-FileCopyrightText: 2020,2021,2023 Leah Rowe <leah@libreboot.org>
|
|
|
|
[ "x${DEBUG+set}" = 'xset' ] && set -v
|
|
set -u -e
|
|
|
|
. "include/err.sh"
|
|
|
|
trees_fetch_list="coreboot u-boot seabios"
|
|
simple_fetch_list="flashrom grub memtest86plus me_cleaner uefitool"
|
|
simple_fetch_list="${simple_fetch_list} bios_extract biosutilities"
|
|
download_only_list="pico-serprog stm32-vserprog"
|
|
|
|
dirlist="config util script include"
|
|
linklist="update" # symlinks in main directory, to script: lbmk
|
|
filelist="build README.md COPYING version versiondate projectname .gitignore"
|
|
|
|
eval "$(setvars "" reldir dirname srcdir)"
|
|
|
|
printf "Building source code archive, version %s\n" "${version}"
|
|
|
|
main()
|
|
{
|
|
create_release_directory
|
|
download_modules
|
|
copy_files
|
|
purge_files
|
|
|
|
create_release_archive
|
|
printf "Source code archive available at %s.tar.xz\n\n" "${srcdir}"
|
|
}
|
|
|
|
create_release_directory()
|
|
{
|
|
reldir="release/${version}"
|
|
dirname="${projectname}-${version}_src"
|
|
srcdir="${reldir}/${dirname}"
|
|
|
|
xx_ mkdir -p "${reldir}"
|
|
xx_ rm -Rf "${srcdir}" "${srcdir}.tar.xz"
|
|
xx_ mkdir -p "${srcdir}"
|
|
}
|
|
|
|
download_modules()
|
|
{
|
|
for modname in ${trees_fetch_list} ${simple_fetch_list} \
|
|
${download_only_list}; do
|
|
[ -d "src/${modname}/" ] || \
|
|
xx_ ./update project trees -f ${modname}
|
|
done
|
|
}
|
|
|
|
copy_files()
|
|
{
|
|
xx_ cp -R "src" "${srcdir}/src"
|
|
for dir in ${trees_fetch_list}; do
|
|
xx_ rm -Rf "${srcdir}/src/${dir}/${dir}"
|
|
done
|
|
for dir in ${dirlist}; do
|
|
xx_ cp -R "${dir}/" "${srcdir}/"
|
|
done
|
|
|
|
for i in ${filelist}; do
|
|
[ -f "${i}" ] || fail "copy_files: '${i}' does not exist"
|
|
xx_ cp "${i}" "${srcdir}/"
|
|
done
|
|
(
|
|
xx_ cd "${srcdir}/"
|
|
for i in ${linklist}; do
|
|
xx_ ln -s build "${i}"
|
|
done
|
|
)
|
|
}
|
|
|
|
purge_files()
|
|
{
|
|
(
|
|
xx_ cd "${srcdir}"
|
|
[ ! -d "src/coreboot/default/util/kbc1126" ] || \
|
|
xx_ ./update project trees -c "src/coreboot/default/util/kbc1126"
|
|
xx_ ./update project trees -x coreboot
|
|
for p in u-boot seabios coreboot; do
|
|
xx_ ./update project trees -c "${p}"
|
|
done
|
|
xx_ ./update project trees -c bios_extract flashrom grub uefitool \
|
|
stm32-vserprog stm32-vserprog/libopencm3 util/* memtest86plus
|
|
|
|
xx_ rm -Rf .git */.git* */*/.git* */*/*/.git* */*/*/*/.git* \
|
|
*/*/*/*/*/.git* */*/*/*/*/*/.git* */*/*/*/*/*/*/.git* \
|
|
*/*/*/*/*/*/*/*/.git*
|
|
xx_ rm -Rf cbutils elf src/pico-serprog/build
|
|
)
|
|
}
|
|
|
|
create_release_archive()
|
|
{
|
|
(
|
|
xx_ cd "${reldir}/"
|
|
xx_ tar -c "${dirname}/" | xz -T0 -9e >"${dirname}.tar.xz"
|
|
xx_ rm -Rf "${dirname}/"
|
|
)
|
|
}
|
|
|
|
fail()
|
|
{
|
|
[ -z "${srcdir}" ] || rm -Rf "${srcdir}" 1>/dev/null 2>/dev/null || :
|
|
fail "${1}"
|
|
}
|
|
|
|
main $@
|