#!/bin/sh

TARGET_ARCH=arm
BINUTILS=`\ls -1 gnu | grep binutils- | sed -e "s/\.t.*//g" | uniq`
GCC=`\ls -1 gnu | grep gcc- | sed -e "s/\.t.*//g" | uniq`

echo "======================================================================================" 
echo "This shell script compiles GNU ${BINUTILS} and GNU ${GCC}" 
echo "to produce a working Soclib GCC cross-compiler tool chain for the \"${TARGET_ARCH}\" architecture."
echo "======================================================================================" 
echo ""

srcdir=`pwd`
prefix=${srcdir}/obj
prefixbin=${srcdir}/obj/bin
objects=${srcdir}/objects
target="${TARGET_ARCH}-soclib-elf"

echo "The current working directory is set to : ${srcdir}"
echo "The prefix for GNU toolchain is set to  : ${prefix}"
echo "The path for GNU objects is set to      : ${objects}"
echo "The target is set to                    : ${target}"

echo "Adding ${prefixbin} to current path"
PATH=${PATH}:${prefixbin}
echo "PATH is now : ${PATH}"

#echo "Press <RET> to compile and install the GNU toolchain"
#read dummy

bobjects=${objects}/gnu/${target}/${BINUTILS}
gobjects=${objects}/gnu/${target}/${GCC}

#First, the binutils
if [ -f ${srcdir}/gnu/${BINUTILS}/configure ] ; then 
      (mkdir -p ${bobjects};                                  \
       cd ${bobjects};                                        \
       ${srcdir}/gnu/${BINUTILS}/configure --prefix=${prefix} \
				 --disable-nls                \
                                 --target=${target} ;         \
        cd ${bobjects}; $MAKE ;               \
       cd ${bobjects}/libiberty; $MAKE install;                \
       cd ${bobjects}/bfd; $MAKE install;                      \
       cd ${bobjects}; $MAKE install)
fi 

echo "${BINUTILS} have been installed." 

#Second, the compiler
if [ -f ${srcdir}/gnu/${GCC}/configure ] ; then 
      (mkdir -p ${gobjects}; cd ${gobjects}; ${srcdir}/gnu/${GCC}/configure \
          --prefix=${prefix} \
          --target=${target} \
          --enable-languages=c,c++ --with-gnu-as --with-gnu-ld \
          --disable-shared --disable-multilib --disable-threads \
          --disable-libgcj --disable-nls --without-newlib ; \
          export ALL_TARGET_MODULES=""; \
          export CONFIGURE_TARGET_MODULES=""; \
          export INSTALL_TARGET_MODULES=""; \
          $MAKE -e; $MAKE -e install)
fi

#Build target independant bdf and libiberty needed to load the program
#memories within Soclib
 
#(mkdir -p ${objects}/gnu/libiberty; \
#cd ${objects}/gnu/libiberty; \
#${srcdir}/gnu/${BINUTILS}/libiberty/configure \
#                          --prefix=${prefix} \
#			  --disable-nls      \
#                          --enable-targets=all; \
#$MAKE install; \
#mkdir -p ${objects}/gnu/bfd; \
#cd ${objects}/gnu/bfd; \
#${srcdir}/gnu/${BINUTILS}/bfd/configure \
#                          --prefix=${prefix} \
#			  --disable-nls      \
#                          --enable-targets=all; \
#$MAKE install)

exit 0
