# Maintainer: Tobias Powalowski <tpowa@archlinux.org>

pkgname=seabios
pkgver=1.14.0
pkgrel=1
pkgdesc="A 16-bit x86 bios"
arch=('any')
url="https://www.coreboot.org/SeaBIOS"
license=('GPL3' 'LGPL3')
makedepends=('iasl' 'python' 'inetutils')
options=('!makeflags' '!strip')
_tag=rel-$pkgver
source=(seabios-$pkgver.zip::https://github.com/coreboot/seabios/archive/$_tag.zip
        config.coreboot
        config.seabios-128k
        config.seabios-256k
        config.vga.isavga
        config.vga.stdvga
        config.csm
        config.vga.cirrus
        config.vga.qxl
        config.vga.vmware
        config.vga.bochs-display
        config.vga.ramfb
        config.vga.virtio
        reproducible-version.patch)
sha1sums=('610800ddb6e8abe62e4802e47cbc0e6cf9f80b20'
          '5f2adb09c9006def1719b8cbd4792f14a7c7f7c9'
          '7a4ec70237476c7cdd78589b069d0d39dfeaa8eb'
          '05b912a291994226049103cbe6754976cc03532d'
          'd56482f6ee0bf9633c551b10e99e24c74d9ece1e'
          '54d4edf6eccf30883aedca348b9d2f125502fcdb'
          '590739c1d5dc6cb63bdf311ee1cfbcde6c0ccc0f'
          '84a44c04e74a09affae0d1a6e50800d10997108f'
          '5a1316a0081f91acc300f57372de18fa9c67415e'
          '5b017b16aec445df873618aaebd154aa97107148'
          'c7c730ade7a63e1efc7de81c7536632e0617e808'
          'c2f4a7708befd6a0763dd4a5a4f8b5168db30340'
          'a2b3d09f944e3d6857ceee272b733075a7edc52e'
          '352aa180d17642d1230391e5a1a26389a9629c47')

# build routine from fedora
build_bios() {
  make clean distclean
  cp $1 .config
  make oldnoconfig V=1

  make V=1 $4

  cp out/$2 binaries/$3
}

prepare() {
  cd seabios-$_tag

  patch -p1 < ../reproducible-version.patch # FS#67178

  rm -rf binaries
  mkdir binaries

  echo "ArchLinux ${pkgver}-${pkgrel}" > .version
}

build() {
  cd seabios-$_tag
  # seabios
  build_bios ${srcdir}/config.csm Csm16.bin bios-csm.bin
  build_bios ${srcdir}/config.coreboot bios.bin.elf bios-coreboot.bin
  build_bios ${srcdir}/config.seabios-128k bios.bin bios.bin
  build_bios ${srcdir}/config.seabios-256k bios.bin bios-256k.bin
  # seavgabios
  for config in ${srcdir}/{config.vga.isavga,config.vga.stdvga,config.vga.cirrus,config.vga.qxl,config.vga.vmware,config.vga.ramfb,config.vga.virtio,config.vga.bochs-display}; do
    name=${config#*config.vga.}
    build_bios ${config} vgabios.bin vgabios-${name}.bin out/vgabios.bin
  done
}

package() {
  cd seabios-$_tag
  install -Dm644 -t "${pkgdir}/usr/share/qemu" binaries/*.bin
}

