# U-Boot: sunXi
# Maintainer: André Silva <emulatorman@parabola.nu>
# Contributor: Timothy Redaelli <timothy.redaelli@gmail.com>

buildarch=4

pkgbase=uboot-sunxi
pkgname=('uboot-a10-olinuxino-lime'
         'uboot-a10s-olinuxino-micro'
         'uboot-a13-olinuxino'
         'uboot-a13-olinuxino-micro'
         'uboot-a20-olinuxino-lime'
         'uboot-a20-olinuxino-lime2'
         'uboot-a20-olinuxino-micro'
         'uboot-bananapi'
         'uboot-bananapro'
         'uboot-chip'
         'uboot-cubieboard'
         'uboot-cubieboard2'
         'uboot-cubietruck'
         'uboot-pcduino'
         'uboot-pcduino3'
         'uboot-pcduino3-nano')
pkgver=2016.03
pkgrel=1.parabola1
arch=('armv7h')
url="http://git.denx.de/u-boot.git/"
license=('GPL')
makedepends=('bc' 'dtc')
depends=('linux-libre')
backup=(boot/boot.txt boot/boot.scr)
source=("ftp://ftp.denx.de/pub/u-boot/u-boot-${pkgver}.tar.bz2"
        '0001-parabola-arm-modifications.patch'
        'boot.txt'
        'mkscr')
md5sums=('973c1d896be751321cc3aafa564f64b2'
         'c66a4ef7a5be5622b674a69a9035558a'
         'a149665c52dc30817f98040b77999aeb'
         '021623a04afd29ac3f368977140cfbfd')

boards=('A10-OLinuXino-Lime'
        'A10s-OLinuXino-M'
        'A13-OLinuXino'
        'A13-OLinuXinoM'
        'A20-OLinuXino-Lime'
        'A20-OLinuXino-Lime2'
        'A20-OLinuXino_MICRO'
        'Bananapi'
        'Bananapro'
        'CHIP'
        'Cubieboard'
        'Cubieboard2'
        'Cubietruck'
        'Linksprite_pcDuino'
        'Linksprite_pcDuino3'
        'Linksprite_pcDuino3_Nano')

prepare() {
  cd u-boot-${pkgver}

  patch -Np1 -i ../0001-parabola-arm-modifications.patch
}

build() {
  cd u-boot-${pkgver}

  unset CFLAGS
  unset CXXFLAGS
  unset LDFLAGS

  for i in ${boards[@]}; do
    mkdir ../bin_${i}
    make distclean
    make ${i}_config
    make EXTRAVERSION=-${pkgrel}
    mv u-boot-sunxi-with-spl.bin ../bin_${i}
  done

  tools/mkimage -A arm -O linux -T script -C none -n "U-Boot boot script" -d ../boot.txt ../boot.scr
}

package_uboot-a10-olinuxino-lime() {
  pkgdesc="U-Boot for A10 OLinuXino Lime"
  install=${pkgbase}.install
  provides=('uboot-sunxi')
  conflicts=('uboot-sunxi' 'uboot4extlinux-sunxi' 'uboot4grub-sunxi')
  replaces=('uboot-a10-olinuxino-lime-linux-libre')

  install -d "${pkgdir}"/boot
  install -Dm644 bin_A10-OLinuXino-Lime/u-boot-sunxi-with-spl.bin "${pkgdir}"/boot

  install -Dm644 boot.txt "${pkgdir}"/boot/boot.txt
  install -Dm644 boot.scr "${pkgdir}"/boot/boot.scr
  install -Dm755 mkscr "${pkgdir}"/boot/mkscr
}

package_uboot-a10s-olinuxino-micro() {
  pkgdesc="U-Boot for A10s OLinuXino Micro"
  install=${pkgbase}.install
  provides=('uboot-sunxi')
  conflicts=('uboot-sunxi' 'uboot4extlinux-sunxi' 'uboot4grub-sunxi')
  replaces=('uboot-a10s-olinuxino-micro-linux-libre')

  install -d "${pkgdir}"/boot
  install -Dm644 bin_A10s-OLinuXino-M/u-boot-sunxi-with-spl.bin "${pkgdir}"/boot

  install -Dm644 boot.txt "${pkgdir}"/boot/boot.txt
  install -Dm644 boot.scr "${pkgdir}"/boot/boot.scr
  install -Dm755 mkscr "${pkgdir}"/boot/mkscr
}

package_uboot-a13-olinuxino() {
  pkgdesc="U-Boot for A13 OLinuXino"
  install=${pkgbase}.install
  provides=('uboot-sunxi')
  conflicts=('uboot-sunxi' 'uboot4extlinux-sunxi' 'uboot4grub-sunxi')
  replaces=('uboot-a13-olinuxino-linux-libre')

  install -d "${pkgdir}"/boot
  install -Dm644 bin_A13-OLinuXino/u-boot-sunxi-with-spl.bin "${pkgdir}"/boot

  install -Dm644 boot.txt "${pkgdir}"/boot/boot.txt
  install -Dm644 boot.scr "${pkgdir}"/boot/boot.scr
  install -Dm755 mkscr "${pkgdir}"/boot/mkscr
}

package_uboot-a13-olinuxino-micro() {
  pkgdesc="U-Boot for A13 OLinuXino Micro"
  install=${pkgbase}.install
  provides=('uboot-sunxi')
  conflicts=('uboot-sunxi' 'uboot4extlinux-sunxi' 'uboot4grub-sunxi')
  replaces=('uboot-a13-olinuxino-micro-linux-libre')

  install -d "${pkgdir}"/boot
  install -Dm644 bin_A13-OLinuXinoM/u-boot-sunxi-with-spl.bin "${pkgdir}"/boot

  install -Dm644 boot.txt "${pkgdir}"/boot/boot.txt
  install -Dm644 boot.scr "${pkgdir}"/boot/boot.scr
  install -Dm755 mkscr "${pkgdir}"/boot/mkscr
}

package_uboot-a20-olinuxino-lime() {
  pkgdesc="U-Boot for A20 OLinuXino Lime"
  install=${pkgbase}.install
  provides=('uboot-sunxi')
  conflicts=('uboot-sunxi' 'uboot4extlinux-sunxi' 'uboot4grub-sunxi')
  replaces=('uboot-a20-olinuxino-lime-linux-libre')

  install -d "${pkgdir}"/boot
  install -Dm644 bin_A20-OLinuXino-Lime/u-boot-sunxi-with-spl.bin "${pkgdir}"/boot

  install -Dm644 boot.txt "${pkgdir}"/boot/boot.txt
  install -Dm644 boot.scr "${pkgdir}"/boot/boot.scr
  install -Dm755 mkscr "${pkgdir}"/boot/mkscr
}

package_uboot-a20-olinuxino-lime2() {
  pkgdesc="U-Boot for A20 OLinuXino Lime2"
  install=${pkgbase}.install
  provides=('uboot-sunxi')
  conflicts=('uboot-sunxi' 'uboot4extlinux-sunxi' 'uboot4grub-sunxi')
  replaces=('uboot-a20-olinuxino-lime2-linux-libre')

  install -d "${pkgdir}"/boot
  install -Dm644 bin_A20-OLinuXino-Lime2/u-boot-sunxi-with-spl.bin "${pkgdir}"/boot

  install -Dm644 boot.txt "${pkgdir}"/boot/boot.txt
  install -Dm644 boot.scr "${pkgdir}"/boot/boot.scr
  install -Dm755 mkscr "${pkgdir}"/boot/mkscr
}

package_uboot-a20-olinuxino-micro() {
  pkgdesc="U-Boot for A20 OLinuXino Micro"
  install=${pkgbase}.install
  provides=('uboot-sunxi')
  conflicts=('uboot-sunxi' 'uboot4extlinux-sunxi' 'uboot4grub-sunxi')
  replaces=('uboot-a20-olinuxino-micro-linux-libre')

  install -d "${pkgdir}"/boot
  install -Dm644 bin_A20-OLinuXino_MICRO/u-boot-sunxi-with-spl.bin "${pkgdir}"/boot

  install -Dm644 boot.txt "${pkgdir}"/boot/boot.txt
  install -Dm644 boot.scr "${pkgdir}"/boot/boot.scr
  install -Dm755 mkscr "${pkgdir}"/boot/mkscr
}

package_uboot-bananapi() {
  pkgdesc="U-Boot for Banana Pi"
  install=${pkgbase}.install
  provides=('uboot-sunxi')
  conflicts=('uboot-sunxi' 'uboot4extlinux-sunxi' 'uboot4grub-sunxi')

  install -d "${pkgdir}"/boot
  install -Dm644 bin_Bananapi/u-boot-sunxi-with-spl.bin "${pkgdir}"/boot/u-boot-sunxi-with-spl.bin

  install -Dm644 boot.txt "${pkgdir}"/boot/boot.txt
  install -Dm644 boot.scr "${pkgdir}"/boot/boot.scr
  install -Dm755 mkscr "${pkgdir}"/boot/mkscr
}

package_uboot-bananapro() {
  pkgdesc="U-Boot for Banana Pro"
  install=${pkgbase}.install
  provides=('uboot-sunxi')
  conflicts=('uboot-sunxi' 'uboot4extlinux-sunxi' 'uboot4grub-sunxi')

  install -d "${pkgdir}"/boot
  install -Dm644 bin_Bananapro/u-boot-sunxi-with-spl.bin "${pkgdir}"/boot/u-boot-sunxi-with-spl.bin

  install -Dm644 boot.txt "${pkgdir}"/boot/boot.txt
  install -Dm644 boot.scr "${pkgdir}"/boot/boot.scr
  install -Dm755 mkscr "${pkgdir}"/boot/mkscr
}

package_uboot-chip() {
  pkgdesc="U-Boot for C.H.I.P"
  install=${pkgbase}.install
  provides=('uboot-sunxi')
  conflicts=('uboot-sunxi' 'uboot4extlinux-sunxi' 'uboot4grub-sunxi')

  install -d "${pkgdir}"/boot
  install -Dm644 bin_CHIP/u-boot-sunxi-with-spl.bin "${pkgdir}"/boot/u-boot-sunxi-with-spl.bin

  install -Dm644 boot.txt "${pkgdir}"/boot/boot.txt
  install -Dm644 boot.scr "${pkgdir}"/boot/boot.scr
  install -Dm755 mkscr "${pkgdir}"/boot/mkscr
}

package_uboot-cubieboard() {
  pkgdesc="U-Boot for Cubieboard"
  install=${pkgbase}.install
  provides=('uboot-sunxi')
  conflicts=('uboot-sunxi' 'uboot4extlinux-sunxi' 'uboot4grub-sunxi')
  replaces=('uboot-cubieboard-linux-libre')

  install -d "${pkgdir}"/boot
  install -Dm644 bin_Cubieboard/u-boot-sunxi-with-spl.bin "${pkgdir}"/boot/u-boot-sunxi-with-spl.bin

  install -Dm644 boot.txt "${pkgdir}"/boot/boot.txt
  install -Dm644 boot.scr "${pkgdir}"/boot/boot.scr
  install -Dm755 mkscr "${pkgdir}"/boot/mkscr
}

package_uboot-cubieboard2() {
  pkgdesc="U-Boot for Cubieboard 2"
  install=${pkgbase}.install
  provides=('uboot-sunxi')
  conflicts=('uboot-sunxi' 'uboot4extlinux-sunxi' 'uboot4grub-sunxi')
  replaces=('uboot-cubieboard2-linux-libre')

  install -d "${pkgdir}"/boot
  install -Dm644 bin_Cubieboard2/u-boot-sunxi-with-spl.bin "${pkgdir}"/boot/u-boot-sunxi-with-spl.bin

  install -Dm644 boot.txt "${pkgdir}"/boot/boot.txt
  install -Dm644 boot.scr "${pkgdir}"/boot/boot.scr
  install -Dm755 mkscr "${pkgdir}"/boot/mkscr
}

package_uboot-cubietruck() {
  pkgdesc="U-Boot for Cubietruck"
  install=${pkgbase}.install
  provides=('uboot-sunxi')
  conflicts=('uboot-sunxi' 'uboot4extlinux-sunxi' 'uboot4grub-sunxi')
  replaces=('uboot-cubietruck-linux-libre')

  install -d "${pkgdir}"/boot
  install -Dm644 bin_Cubietruck/u-boot-sunxi-with-spl.bin "${pkgdir}"/boot/u-boot-sunxi-with-spl.bin

  install -Dm644 boot.txt "${pkgdir}"/boot/boot.txt
  install -Dm644 boot.scr "${pkgdir}"/boot/boot.scr
  install -Dm755 mkscr "${pkgdir}"/boot/mkscr
}

package_uboot-pcduino() {
  pkgdesc="U-Boot for pcDuino"
  install=${pkgbase}.install
  provides=('uboot-sunxi')
  conflicts=('uboot-sunxi' 'uboot4extlinux-sunxi' 'uboot4grub-sunxi')
  replaces=('uboot-pcduino-linux-libre')

  install -d "${pkgdir}"/boot
  install -Dm644 bin_Linksprite_pcDuino/u-boot-sunxi-with-spl.bin "${pkgdir}"/boot

  install -Dm644 boot.txt "${pkgdir}"/boot/boot.txt
  install -Dm644 boot.scr "${pkgdir}"/boot/boot.scr
  install -Dm755 mkscr "${pkgdir}"/boot/mkscr
}

package_uboot-pcduino3() {
  pkgdesc="U-Boot for pcDuino3"
  install=${pkgbase}.install
  provides=('uboot-sunxi')
  conflicts=('uboot-sunxi' 'uboot4extlinux-sunxi' 'uboot4grub-sunxi')
  replaces=('uboot-pcduino3-linux-libre')

  install -d "${pkgdir}"/boot
  install -Dm644 bin_Linksprite_pcDuino3/u-boot-sunxi-with-spl.bin "${pkgdir}"/boot

  install -Dm644 boot.txt "${pkgdir}"/boot/boot.txt
  install -Dm644 boot.scr "${pkgdir}"/boot/boot.scr
  install -Dm755 mkscr "${pkgdir}"/boot/mkscr
}

package_uboot-pcduino3-nano() {
  pkgdesc="U-Boot for pcDuino3 Nano"
  install=${pkgbase}.install
  provides=('uboot-sunxi')
  conflicts=('uboot-sunxi' 'uboot4extlinux-sunxi' 'uboot4grub-sunxi')
  replaces=('uboot-pcduino3-nano-linux-libre')

  install -d "${pkgdir}"/boot
  install -Dm644 bin_Linksprite_pcDuino3_Nano/u-boot-sunxi-with-spl.bin "${pkgdir}"/boot

  install -Dm644 boot.txt "${pkgdir}"/boot/boot.txt
  install -Dm644 boot.scr "${pkgdir}"/boot/boot.scr
  install -Dm755 mkscr "${pkgdir}"/boot/mkscr
}