summaryrefslogtreecommitdiffstats
path: root/resources/scripts/helpers/build/module/coreboot
diff options
context:
space:
mode:
Diffstat (limited to 'resources/scripts/helpers/build/module/coreboot')
-rwxr-xr-xresources/scripts/helpers/build/module/coreboot33
1 files changed, 24 insertions, 9 deletions
diff --git a/resources/scripts/helpers/build/module/coreboot b/resources/scripts/helpers/build/module/coreboot
index eb99c25..07659cd 100755
--- a/resources/scripts/helpers/build/module/coreboot
+++ b/resources/scripts/helpers/build/module/coreboot
@@ -2,7 +2,7 @@
# helper script: builds the dependencies that coreboot needs before building a ROM image
#
-# Copyright (C) 2014, 2015 Francis Rowe <info@gluglug.org.uk>
+# 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
@@ -30,13 +30,28 @@ set -u -e
printf "Building the utilities in coreboot\n"
-# crossgcc
-# coreboot on x86 is 32-bit, so only build for i386. Also build for ARM
-for architecture in i386 arm; do
- make -j$(nproc) -BC coreboot crossgcc-${architecture}
-done
+# clean coreboot and crossgcc (source archives preserved)
+for payload in coreboot/*; do
+ for board in "${payload}/"*; do
+
+ if [ "${payload##*/}" = "crossgcc" ]; then # build crossgcc
+
+ for architecture in i386 arm; do
+ make -j$(nproc) -BC "${board}/" crossgcc-${architecture}
+ done
+ else # build other utils
+ # cbfstool, cbmem, nvramtool
+ for util in {cbfs,nvram}tool cbmem; do
+ make -BC "${board}/util/${util}"
+ done
+ # create symlink to crossgcc
+ (
+ boardconfig_path="resources/libreboot/config/${payload##*/}/${board##*/}"
+ cbrevision="$(cat "${boardconfig_path}/cbrevision")"
+ cd "${board}/util/"
+ ln -s "../../../crossgcc/${cbrevision}/util/crossgcc/" crossgcc
+ )
+ fi
-# cbfstool, cbmem, nvramtool
-for util in {cbfs,nvram}tool cbmem; do
- make -BC coreboot/util/${util}
+ done
done