summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 7d15868b7fdb92f41a90c15d4b8c7356d4efcb5c (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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# Maintainer: Felix Singer <felixsinger@posteo.net>

_targets="i386 x64 arm aarch64 riscv ppc64 nds32le clang"
_commit='e29dcdcdd8bc04e9c54aca4e341d0b8168763000'

pkgbase='coreboot-toolchain'
pkgname=()
pkgver=4.18
pkgrel=1
pkgdesc='Used to build coreboot'
url='https://www.coreboot.org'
license=(BSD2 BSD3 GPL2 LGPL2Plus GPL3Plus)
arch=(x86_64 aarch64 riscv)
depends=() # TODO
makedepends=() # TODO
options=('buildflags')
source=("git+https://review.coreboot.org/coreboot#commit=${_commit}")
sha256sums=('SKIP')


for target in ${_targets}; do
  pkgname+=("${pkgbase}-${target}")
done


build() {
  cd coreboot
  export CFLAGS=${CFLAGS/-Werror=format-security/}
  export CXXFLAGS=${CXXFLAGS/-Werror=format-security/}

  is_clang_enabled=0

  for target in ${_targets}; do
    [ "${target}" = "clang" ] && is_clang_enabled=1 && continue
    make crossgcc-${target} CPUS=$(nproc) DEST="${srcdir}/${target}"
  done

  if [ ${is_clang_enabled} -eq 1 ]; then
    for component in "clang iasl nasm"; do
      make ${component} CPUS=$(nproc) DEST="${srcdir}/${target}"
    done
  fi
}

do_package_gcc() {
  target="$(echo ${pkgname} | cut -d '-' -f 3)"

  toolchain_dir="usr/${target}-coreboot-gnu"
  dest_path="${pkgdir}/${toolchain_dir}"
  mkdir -p ${dest_path}
  mv ${srcdir}/${target}/* "${dest_path}"
}

do_package_clang() {
  toolchain_dir="usr/multiarch-coreboot-clang"
  dest_path="${pkgdir}/${toolchain_dir}"
  mkdir -p ${dest_path}
  mv ${srcdir}/clang/* "${dest_path}"/
}

package_coreboot-toolchain-i386() {
  do_package_gcc
}

package_coreboot-toolchain-x64() {
  do_package_gcc
}

package_coreboot-toolchain-arm() {
  do_package_gcc
}

package_coreboot-toolchain-aarch64() {
  do_package_gcc
}

package_coreboot-toolchain-riscv() {
  do_package_gcc
}

package_coreboot-toolchain-ppc64() {
  do_package_gcc
}

package_coreboot-toolchain-nds32le() {
  do_package_gcc
}

package_coreboot-toolchain-clang() {
  do_package_clang
}