blob: d940381f1395e11053d58b3c0125345f83036f3a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
#!/bin/sh
# args
arch="$1"
cross="$2"
# figure gcc version, set cross build prefix vars
gccver=$(${cross}gcc --version \
| awk '{ print $3; exit}' \
| cut -d. -f1,2 \
| tr -d ".")
case "$gccver" in
4*) # nothing, keep "4x"
;;
5* | 6* | 7*)
gccver=5
;;
esac
toolchain="GCC$gccver"
eval "export GCC${gccver}_IA32_PREFIX=${cross}"
eval "export GCC${gccver}_X64_PREFIX=${cross}"
eval "export GCC${gccver}_ARM_PREFIX=${cross}"
eval "export GCC${gccver}_AARCH64_PREFIX=${cross}"
# what we are going to build?
case "$arch" in
i386)
efiarch="IA32"
project="OvmfPkg/OvmfPkgIa32.dsc"
match="OvmfIa32/*/FV/OVMF*.fd"
;;
x86_64)
efiarch="X64"
project="OvmfPkg/OvmfPkgX64.dsc"
match="OvmfX64/*/FV/OVMF*.fd"
;;
arm | aarch64)
efiarch="$(echo $arch | tr 'a-z' 'A-Z')"
project="ArmVirtPkg/ArmVirtQemu.dsc"
match="ArmVirtQemu-${efiarch}/*/FV/QEMU_*.fd"
;;
esac
# setup edk2 build environment
cd repos/edk2
source ./edksetup.sh --reconfig
bopts=""
bopts="$bopts -t $toolchain"
bopts="$bopts -D HTTP_BOOT_ENABLE"
bopts="$bopts -a $efiarch"
bopts="$bopts -p $project"
# go build everything
make -C BaseTools || exit 1
build $bopts || exit 1
# copy over results
dest="../../blobs/edk2-${arch}"
mkdir -p "$dest"
cp -v Build/${match} "$dest"
|