From 239bfb38a5586047fa8268d1aa0966133fb3ee0b Mon Sep 17 00:00:00 2001 From: Francis Rowe Date: Mon, 7 Mar 2016 16:10:10 +0000 Subject: Download, compile and clean crossgcc separately to coreboot This means that coreboot can be re-downloaded and re-built without affecting crossgcc. The crossgcc directory also now only contains crossgcc; previously, it contained the entire coreboot source code too, which was unneeded because that directory was just for crossgcc, where the real coreboot directories symlink to it during the build process. --- resources/scripts/helpers/build/clean/coreboot | 7 ---- resources/scripts/helpers/build/clean/crossgcc | 28 +++++++++++++ resources/scripts/helpers/build/module/coreboot | 6 --- resources/scripts/helpers/build/module/crossgcc | 34 ++++++++++++++++ resources/scripts/helpers/download/coreboot | 25 +----------- resources/scripts/helpers/download/crossgcc | 54 +++++++++++++++++++++++++ 6 files changed, 117 insertions(+), 37 deletions(-) create mode 100755 resources/scripts/helpers/build/clean/crossgcc create mode 100755 resources/scripts/helpers/build/module/crossgcc create mode 100755 resources/scripts/helpers/download/crossgcc diff --git a/resources/scripts/helpers/build/clean/coreboot b/resources/scripts/helpers/build/clean/coreboot index baaabbd4..ac9c6f08 100755 --- a/resources/scripts/helpers/build/clean/coreboot +++ b/resources/scripts/helpers/build/clean/coreboot @@ -45,11 +45,4 @@ for payload in coreboot/*; do done done -# Also do the same for the crossgcc version of coreboot -make -C "crossgcc/" crossgcc-clean -for util in {cbfs,ifd,nvram}tool cbmem; do - make -C "crossgcc/util/${util}/" clean -done -make -C "crosgcc/" distclean - printf "\n\n" diff --git a/resources/scripts/helpers/build/clean/crossgcc b/resources/scripts/helpers/build/clean/crossgcc new file mode 100755 index 00000000..e0a52924 --- /dev/null +++ b/resources/scripts/helpers/build/clean/crossgcc @@ -0,0 +1,28 @@ +#!/bin/bash + +# helper script: clean the dependencies that were built in coreboot +# +# Copyright (C) 2014, 2015, 2016 Francis Rowe +# Copyright (C) 2015 Klemens Nanni +# +# 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 . +# + +# This script assumes that the current working directory is the root + +[ "x${DEBUG+set}" = 'xset' ] && set -v +set -u -e + +make -C "crossgcc/util/crossgcc/" distclean + diff --git a/resources/scripts/helpers/build/module/coreboot b/resources/scripts/helpers/build/module/coreboot index 5788343a..990de31a 100755 --- a/resources/scripts/helpers/build/module/coreboot +++ b/resources/scripts/helpers/build/module/coreboot @@ -200,9 +200,3 @@ for payload in coreboot/*; do done done -# Now build crossgcc -( -cd "crossgcc/" -make crossgcc-i386 -make crossgcc-arm -) diff --git a/resources/scripts/helpers/build/module/crossgcc b/resources/scripts/helpers/build/module/crossgcc new file mode 100755 index 00000000..17eaa64f --- /dev/null +++ b/resources/scripts/helpers/build/module/crossgcc @@ -0,0 +1,34 @@ +#!/bin/bash + +# helper script: builds crossgcc, needed by coreboot's build system +# +# Copyright (C) 2016 Francis Rowe +# +# 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 . +# + +# This script assumes that the working directory is the root +# of git or release archive + +[ "x${DEBUG+set}" = 'xset' ] && set -v +set -u -e + +./build clean crossgcc + +# Now build crossgcc +( +cd "crossgcc/util/crossgcc" +make build-i386 +make build-arm +) diff --git a/resources/scripts/helpers/download/coreboot b/resources/scripts/helpers/download/coreboot index 93af2884..047f8391 100755 --- a/resources/scripts/helpers/download/coreboot +++ b/resources/scripts/helpers/download/coreboot @@ -60,10 +60,6 @@ make_coreboot_src_directory() { ) } - -# coreboot revisios used for crossgcc -crossgccrevision="4351ace145c4069f9c93ca7541d6dfaf8300b53b" - printf "Downloading coreboot, patching coreboot and deblobbing coreboot\n" # This grabs current base used, and applies patches @@ -130,25 +126,6 @@ for payloads in ../../resources/libreboot/config/*; do done done - - -# prepare directory for crossgcc -rm -Rf "../../crossgcc/" -make_coreboot_src_directory crossgcc ${crossgccrevision} "no_vboot_revision" .. -( - cd "../crossgcc/${crossgccrevision}/" - git reset --hard ${crossgccrevision} - rm -Rf "3rdparty/" - - # Put this in its own separate directory - rm -Rf "../../../crossgcc" - cd ../ - mv "${crossgccrevision}/" "crossgcc/" - mv "crossgcc/" ../../ - cd ../ - rm -Rf "crossgcc/" -) - # go back to _src/coreboot/ (containing all coreboot directories) cd "../" # delete the gitted one (not needed anymore) @@ -158,7 +135,7 @@ rm -Rf "coreboot/" # ------------------------------------------------------------------------------ printf "Deleting .git* in coreboot/ (history inside .git contains the blobs that were deleted)\n" -rm -Rf */*/.git* ../crossgcc/.git* +rm -Rf */*/.git* rm -Rf */*/3rdparty/*/.git* # Delete crossgcc from non-crossgcc coreboot archives diff --git a/resources/scripts/helpers/download/crossgcc b/resources/scripts/helpers/download/crossgcc new file mode 100755 index 00000000..853e3fdc --- /dev/null +++ b/resources/scripts/helpers/download/crossgcc @@ -0,0 +1,54 @@ +#!/bin/bash + +# helper script: downloads crossgcc, for building coreboot +# +# Copyright (C) 2016 Francis Rowe +# +# 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 . +# + +# This script assumes that the working directory is the +# root of libreboot_src or libreboot git. + +[ "x${DEBUG+set}" = 'xset' ] && set -v +set -u -e + +if [ -f "version" ]; then + # _src release archive is being used + version="libreboot-$(cat version)" +else + # git repo is being used + version="libreboot-$(git describe --tags HEAD)" +fi + +# coreboot revisios used for crossgcc +crossgccrevision="4351ace145c4069f9c93ca7541d6dfaf8300b53b" + +rm -Rf "crossgcc/" +mkdir -p "crossgcc/" +( + cd "crossgcc/" + git clone https://review.coreboot.org/coreboot || git clone https://github.com/coreboot/coreboot.git + cd "coreboot/" + git reset --hard ${crossgccrevision} + mkdir -p "../util/" + mv "util/crossgcc/" "../util/" + cd "../" + rm -Rf "coreboot/" +) + +printf "Deblobbing coreboot\n" +./resources/utilities/coreboot-libre/deblob + + -- cgit v1.2.3-70-g09d2