#!/bin/bash

# Tweak these for each branch.
PREFIX=/opt/redhat/frv-040820-3
PFX=`pwd`
DEVO=$PFX/sources/tools-src
BUILD=$PFX/X-tools-build
UCLIBC=$PFX/X-uclibc-build
ABIHEADERS=$PFX/sources/header-src
UCLIBCSRC=$PFX/sources/libc-src
HOST=i686-pc-linux-gnulibc2.2
EXECPREFIX=$PREFIX/H-$HOST
SYSROOT=$EXECPREFIX/frv-uclinux/sys-root



# $Id: eBuild-uCLinux,v 1.1.2.13 2004/08/31 21:56:36 release Exp $

# Our UTF-8 support sucks hard. Make the build not take three years
export LANG=C

function xterm-title () {
    if [ $TERM = xterm ]; then
        echo -e "\033]2;$@\007"
    fi
}

function check_make()
{
    # It's OK if it's empty
#    rmdir $1 2>/dev/null

#    if [ -d $1 ]; then 
#        echo "$1 already exists. Abort."
#	exit 1
#    fi

    mkdir -p $1

    if [ ! -d $1 ]; then
	echo "Cannot create $1. Abort."
	exit 1
    fi
}

check_make $PREFIX
check_make $SYSROOT
check_make $UCLIBC


# Configure uClibc so it builds its headers

xterm-title "Building uClibc generated headers"

mkdir -p $UCLIBC
rm -rf $UCLIBC
cp -al $UCLIBCSRC/uClibc $UCLIBC
cd $UCLIBC
cp extra/Configs/Config.frv.default .config
make TARGET_ARCH=frv KERNEL_SOURCE=$ABIHEADERS/usr oldconfig
make TARGET_ARCH=frv KERNEL_SOURCE=$ABIHEADERS/usr headers

# Set up the sysroot
xterm-title "Copying header files into sysroot $SYSROOT"

mkdir -p $SYSROOT/usr
make PREFIX=$SYSROOT TARGET_ARCH=frv KERNEL_SOURCE=$ABIHEADERS/usr install_dev

# Build toolchain basics...

xterm-title "Configuring toolchain"

mkdir -p $BUILD
cd $BUILD
$DEVO/configure --host=$HOST --build=$HOST --target=frv-uclinux --with-cpu=fr400  --with-sysroot=$SYSROOT  --prefix=$PREFIX --exec-prefix=$EXECPREFIX --enable-languages=c,c++

xterm-title "Building binutils"
make all-binutils all-gas all-ld 

xterm-title "Building GCC and static libgcc"
make configure-gcc
make -C gcc SHLIB_LINK= all

xterm-title "Installing binutils and GCC into $PREFIX"

make install-binutils install-gas install-ld
make -C gcc SHLIB_LINK= install

# Build uClibc

xterm-title "Building uClibc"

cd $UCLIBC
make CROSS=$EXECPREFIX/bin/frv-uclinux- CC="$EXECPREFIX/bin/frv-uclinux-gcc" KERNEL_SOURCE=$ABIHEADERS/usr

xterm-title "Installing uClibc into $SYSROOT"

rm -rf $SYSROOT
make PREFIX=$SYSROOT CROSS=$EXECPREFIX/bin/frv-uclinux- KERNEL_SOURCE=$ABIHEADERS/usr install

# Now the rest...

xterm-title "Building shared libgcc and remainder of toolchain"

cd $BUILD
rm -f gcc/libgcc.mk
make -C gcc clean
make

xterm-title "Final install of toolchain"
make install

# Rebuild uClibc

xterm-title "Building uClibc"

cd $UCLIBC
make clean
cp extra/Configs/Config.frv.default .config
make TARGET_ARCH=frv KERNEL_SOURCE=$ABIHEADERS/usr oldconfig
make CROSS=$EXECPREFIX/bin/frv-uclinux- CC="$EXECPREFIX/bin/frv-uclinux-gcc" KERNEL_SOURCE=$ABIHEADERS/usr

xterm-title "Installing final uClibc into $SYSROOT"

rm -rf $SYSROOT
make PREFIX=$SYSROOT CROSS=$EXECPREFIX/bin/frv-uclinux- KERNEL_SOURCE=$ABIHEADERS/usr install
