#!/bin/sh

Usage() {
   cat <<EOF
${0##*/} buildroot-dir arch output [confd]

  build the buildroot dir in buildroot-dir
  put output in output. confd defaults to topdir/conf
EOF
}

error() { echo "$@" 1>&2; }
fail() { [ $# -eq 0 ] || error "$@"; exit 1; }

[ $# -eq 3 -o $# -eq 4 ] ||
   { Usage 1>&2; exit 1; }
[ "$1" = "-h" -o "$1" = "--help" ] && { Usage; exit 0; }


bdir=${1}
arch=${2}
out=${3}
shift 3
confd=""
[ $# -eq 0 ] && set -- make

[ -n "$confd" ] || confd=$( cd "${0%/*}/../conf" && pwd) ||
   fail "failed to find conf dir"

mkdir -p "$out" || fail "failed to make outdir $out"
out=$(cd "${out}" && pwd)
[ -e "$confd/.config" ] ||
    cp "$confd/buildroot-$arch.config" "$confd/.config" ||
    fail "failed to copy buildroot config"
[ -e "$confd/busybox.config" ] ||
    cp "$confd/busybox.config" "$out/busybox.config" ||
    fail "failed to copy busybox config"

cd "$bdir" 
make "O=$BR_OUT" "BUSYBOX_CONFIG_FILE=$out/busybox.config" "$@"
