aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancis Rowe <info@gluglug.org.uk>2016-03-07 16:10:10 +0000
committerFrancis Rowe <info@gluglug.org.uk>2016-03-07 16:10:10 +0000
commit239bfb38a5586047fa8268d1aa0966133fb3ee0b (patch)
tree13903ac357fcd10f1c988b09eb4ccecfa4eaecd4
parentd40b5c7b1a7b16b0c27828f615159c525306adb0 (diff)
downloadlibrebootfr-239bfb38a5586047fa8268d1aa0966133fb3ee0b.tar.gz
librebootfr-239bfb38a5586047fa8268d1aa0966133fb3ee0b.zip
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.
-rwxr-xr-xresources/scripts/helpers/build/clean/coreboot7
-rwxr-xr-xresources/scripts/helpers/build/clean/crossgcc28
-rwxr-xr-xresources/scripts/helpers/build/module/coreboot6
-rwxr-xr-xresources/scripts/helpers/build/module/crossgcc34
-rwxr-xr-xresources/scripts/helpers/download/coreboot25
-rwxr-xr-xresources/scripts/helpers/download/crossgcc54
6 files changed, 117 insertions, 37 deletions
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 <info@gluglug.org.uk>
+# Copyright (C) 2015 Klemens Nanni <contact@autoboot.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 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 <info@gluglug.org.uk>
+#
+# 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
+
+./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 <info@gluglug.org.uk>
+#
+# 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 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
+
+