#!/bin/bash -e

BOARDNAME="$1"
BOARDCONFIG="$2"
ARCH_RESTRICTIONS="$3 $4"

armv6_boards="rpi"
armv7_boards="omap3_beagle omap4_panda am335x_evm arndale highbank mx53loco mx6qsabrelite Bananapi Cubieboard Cubieboard2 Cubietruck Mele_A1000 colibri_t20_iris paz00 snow A10-OLinuXino-Lime A20-OLinuXino-Lime2 pcm051_rev3"
aarch64_boards="vexpress_aemv8a"

if [ ! "$1" -o ! "$2" -o ! "$3" ]; then
    # armv6 boards
    for BOARDCONFIG in $armv6_boards; do
        BOARDNAME="$(echo $BOARDCONFIG | tr -d '_' | tr '[:upper:]' '[:lower:]')"
        BOARDCONFIG=${BOARDCONFIG}_defconfig
        ARCH_RESTRICTIONS="armv6l armv6hl"
        bash $0 $BOARDNAME $BOARDCONFIG $ARCH_RESTRICTIONS
    done
    # armv7 boards
    for BOARDCONFIG in $armv7_boards; do
        BOARDNAME="$(echo $BOARDCONFIG | tr -d '_' | tr '[:upper:]' '[:lower:]')"
        BOARDCONFIG=${BOARDCONFIG}_defconfig
        ARCH_RESTRICTIONS="armv7l armv7hl"
        bash $0 $BOARDNAME $BOARDCONFIG $ARCH_RESTRICTIONS
    done
    # aarch64 boards
    for BOARDCONFIG in $aarch64_boards; do
        BOARDNAME="$(echo $BOARDCONFIG | tr -d '_' | tr '[:upper:]' '[:lower:]')"
        BOARDCONFIG=${BOARDCONFIG}_defconfig
        ARCH_RESTRICTIONS="aarch64"
        bash $0 $BOARDNAME $BOARDCONFIG $ARCH_RESTRICTIONS
    done
    exit 0
fi

OMAP_SPL=0
ORIGEN_SPL=0
SUNXI_SPL=0
ARNDALE_SPL=0
CUBOXI_SPL=0
case "$BOARDCONFIG" in
mx53loco*|mx6qsabrelite*|efika*) BINEND=imx ;;
*omap*|*am335x*|pcm051*)  BINEND=img
            OMAP_SPL=1  ;;
*arndale*)  BINEND=bin
            ARNDALE_SPL=1 ;;
*Bananapi*|*Cubieboard*|Cubietruck*|*-OLinuXino-Lime*)   BINEND=img
            SUNXI_SPL=1 ;;
*Mele_A1000*)   BINEND=img
            SUNXI_SPL=1 ;;
*Hyundai_A7HD*)   BINEND=img
            SUNXI_SPL=1 ;;
*snow*)          BINEND=img ;;
mx6_cubox-i*)   BINEND=img
            CUBOXI_SPL=1 ;;
*)          BINEND=bin ;;
esac

sed "s/BOARDCONFIG/$BOARDCONFIG/g
s/BOARDNAME/$BOARDNAME/g
s/ARCH_RESTRICTIONS/$ARCH_RESTRICTIONS/g
s/BINEND/$BINEND/g
s/ORIGEN_SPL/$ORIGEN_SPL/g
s/ARNDALE_SPL/$ARNDALE_SPL/g
s/SUNXI_SPL/$SUNXI_SPL/g
s/TEGRA_SPL/$TEGRA_SPL/g
s/CUBOXI_SPL/$CUBOXI_SPL/g
s/OMAP_SPL/$OMAP_SPL/g" < u-boot.spec.in > u-boot-$BOARDNAME.spec

cp u-boot.changes u-boot-$BOARDNAME.changes