#!/bin/sh

#  Convenience script for setting up a default buildroot config
#  for Xtensa processor targets..

usage() {
    echo "Usage (invoke from top of buildroot tree):"
    echo "    ./target/xtensa/setup-config <corename>"
   #echo "    ./target/xtensa/setup-config <corename> [<overlaypath>]"
    echo "where:"
    echo "    <corename> is the Xtensa core overlay name, as specified in the -c option"
    echo "    of the ./target/xtensa/xt-buildroot-overlay-install script."
    echo ""
    echo "For example:"
    echo "   ./target/xtensa/setup-config dc232b"
    echo ""
    echo "Currently installed (available) core overlay names are:"
    echo "   " `ls toolchain/binutils/binutils-xtensa_*.tgz | sed -e 's,toolchain\/binutils\/binutils-xtensa_\(.*\)\.tgz,\1,g'`
    exit 1
}

if [ $# -ne 1 ]; then
    usage
fi

core=$1 ; shift

if [ ! -f toolchain/binutils/binutils-xtensa_${core}.tgz \
  -o ! -f toolchain/gcc/gcc-xtensa_${core}.tgz \
  -o ! -f toolchain/gdb/gdb-xtensa_${core}.tgz ]; then
    echo "ERROR: Did not find an installed Xtensa core overlay named '${core}'."
    echo "ERROR: Please install it first with ./target/xtensa/xt-buildroot-overlay-install"
    echo ""
    usage
fi

#  Use preset buildroot config:
cp target/xtensa/defconfig .defconfig-xtensa
#  Set core name:
sed -i -e 's,^BR2_xtensa_\(.*\)=y,BR2_xtensa_custom=y\nBR2_xtensa_custom_name="'${core}'",' .defconfig-xtensa
##  sed -i -e 's,^.*BR2_xtensa_core_name.*,BR_xtensa_core_name="'${core}'",'  .defconfig-xtensa
#  Create full .config with defaults:
make clean defconfig CONFIG_DEFCONFIG=.defconfig-xtensa || exit 1

#  Busybox adjustments:  turn off 'ar' (can't create archives yet overrides real one)
#  and turn on NFS mounting (Xtensa defconfig turns on RPC so this can work):
#
bborig=`grep '^BR2_PACKAGE_BUSYBOX_CONFIG=' .config | sed -e 's,.*"\(.*\)".*,\1,'`
bbconf=target/xtensa/busybox-config
cp $bborig $bbconf
sed -i -e 's,^CONFIG_AR=y,# CONFIG_AR is not set,' $bbconf
sed -i -e 's,^.*CONFIG_FEATURE_MOUNT_NFS.*,CONFIG_FEATURE_MOUNT_NFS=y,' $bbconf
#  Make use of above busybox adjustments:
sed -i -e 's,.*\(BR2_PACKAGE_BUSYBOX_CONFIG\).*,\1="'$bbconf'",' .config

echo "Done."

