diff options
Diffstat (limited to 'resources/scripts/build/release')
-rwxr-xr-x | resources/scripts/build/release/roms | 70 | ||||
-rwxr-xr-x | resources/scripts/build/release/src | 120 |
2 files changed, 190 insertions, 0 deletions
diff --git a/resources/scripts/build/release/roms b/resources/scripts/build/release/roms new file mode 100755 index 00000000..a4458f30 --- /dev/null +++ b/resources/scripts/build/release/roms @@ -0,0 +1,70 @@ +#!/bin/bash + +# +# helper script: generate release archive (ROM images) +# +# Copyright (C) 2020,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 + +projectname="$(cat projectname)" + +version="version-unknown" +if [ -f version ]; then + version="$(cat version)" +fi +versiondate="version-date-unknown" +if [ -f versiondate ]; then + versiondate="$(cat versiondate)" +fi + +if [ ! -d "bin/" ]; then + ./build boot roms all +fi + +[ ! -d "release/" ] && \ + mkdir -p release/ +[ ! -d "release/${version}/" ] && \ + mkdir -p "release/${version}/" +[ -d "release/${version}/roms/" ] && \ + rm -Rf "release/${version}/roms/" +[ ! -d "release/${version}/roms/" ] && \ + mkdir -p "release/${version}/roms/" + +printf "Building ROM image archives for version %s\n" "${version}" + +( + cd bin/ + for target in *; do + if [ ! -d "${target}/" ]; then + continue + fi + + printf "Generating release/%s/roms/%s-%s_%s.tar.xz\n" "${projectname}" "${version}" "${version}" "${target##*/}" + printf "%s\n" "${version}" > "${target}/version" + printf "%s\n" "${versiondate}" > "${target}/versiondate" + printf "%s\n" "${projectname}" > "${target}/projectname" + tar -c "${target}/" | xz -9e >"../release/${version}/roms/${projectname}-${version}_${target##*/}.tar.xz" + done +) + +printf "\nROM image release archives available at release/%s/roms/\n\n" "${version}" + diff --git a/resources/scripts/build/release/src b/resources/scripts/build/release/src new file mode 100755 index 00000000..dc8bc75f --- /dev/null +++ b/resources/scripts/build/release/src @@ -0,0 +1,120 @@ +#!/bin/bash + +# +# helper script: generate release archive (source code) +# +# Copyright (C) 2020,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 + +projectname="$(cat projectname)" + +version="version-unknown" +if [ -f version ]; then + version="$(cat version)" +fi +versiondate="version-date-unknown" +if [ -f versiondate ]; then + versiondate="$(cat versiondate)" +fi + +reldir="release/${version}" +dirname="${projectname}-${version}_src" +srcdir="${reldir}/${dirname}" + +printf "Building source code archive, version %s\n" "${version}" + +[ ! -d "release/" ] && mkdir -p release/ +[ ! -d "${reldir}/" ] && mkdir -p "${reldir}/" +[ -d "${srcdir}/" ] && \ + rm -Rf "${srcdir}/" +[ -f "${srcdir}.tar.xz" ] && \ + rm -f "${srcdir}.tar.xz/" + +mkdir -p "${srcdir}/" + +printf "%s" "${version}" > "${srcdir}"/version + +modlist="coreboot flashrom grub memtest86plus seabios ich9utils" +dirlist="resources" +filelist="download build README COPYING Makefile" + +if [ ! -d "coreboot/default/payloads/external/tianocore/tianocore" ]; then + ./download tianocore +fi + +for modname in ${modlist}; do + if [ ! -d "${modname}/" ]; then + ./download ${modname} + fi +done + +for dir in ${modlist} ${dirlist}; do + cp -R "${dir}/" "${srcdir}/" +done + +for i in ${filelist}; do + if [ ! -f "${i}" ]; then + printf "build/release/src: ERROR: file '%s' does not exist.\n" "${i}" + rm -Rf "${srcdir}" + exit 1 + fi + cp ${i} "${srcdir}/" +done + +( + cd "${srcdir}/coreboot/" + for i in *; do + [ ! -d "${i}" ] && continue + ( + cd "${i}/" + make distclean + ) + done +) + +( + cd "${srcdir}/" + ./build clean all + + rm -Rf coreboot/coreboot/ + rm -Rf .git* */.git* coreboot/*/.git* coreboot/*/3rdparty/*/.git* + rm -Rf coreboot/*/util/nvidia/cbootimage/.git* + rm -Rf coreboot/*/payloads/external/tianocore/tianocore/.git* + rm -Rf coreboot/*/payloads/external/tianocore/tianocore/CryptoPkg/Library/OpensslLib/openssl/.git* + rm -Rf coreboot/*/payloads/external/tianocore/tianocore/ArmPkg/Library/ArmSoftFloatLib/"berkeley-softfloat-3"/.git* + rm -Rf coreboot/*/payloads/external/tianocore/tianocore/UnitTestFrameworkPkg/Library/CmockaLib/cmocka/.git* + rm -Rf coreboot/*/payloads/external/tianocore/tianocore/MdeModulePkg/Universal/RegularExpressionDxe/oniguruma/.git* + rm -Rf coreboot/*/payloads/external/tianocore/tianocore/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/.git* + rm -Rf coreboot/*/payloads/external/tianocore/tianocore/BaseTools/Source/C/BrotliCompress/brotli/.git* +) + +( +cd "${reldir}/" +printf "%s\n" "${version}" > "${dirname}/version" +printf "%s\n" "${versiondate}" > "${dirname}/versiondate" +printf "%s\n" "${projectname}" > "${dirname}/projectname" +tar -c "${dirname}/" | xz -9e >"${dirname}.tar.xz" +rm -Rf "${dirname}/" +) + +printf "Source code archive available at %s.tar.xz\n\n" "${srcdir}" + |