summaryrefslogblamecommitdiffstats
path: root/rtems/bit_rtems
blob: 2e524f77ff4328c34f871dcf6f5735e6a3807b2e (plain) (tree)
1
2
3
4
5
6
          
 
                                            


                                                  




































































































                                                                 
                                                 


                                                 




                                                                  
             
                                                
                                                          

           




                                                             


                                                                




                                                                  
            
                                                                      
                                                                   
                                                             
                                                             





























































































































                                                                                         

                                             
                                            
      














                                                





                                       
























                                                 
                                                       













                                                       


                                          


























                                                         
                                                                  











                                                              




                                         

              







                                          







                                                      





                                             


                                                   

                                                                  

                                                                    



                                                   

                                                                  

                                                                    























                                                                       
 




                                   













                                                                 
                                            






                                                                           
                                                 

                                     
                                                                           



































                                                                              
                                                                         
                                                                     





                                                  












                                             
                                                              

                                    

                                                                    








                                                                       
                                              
 
                          


                                 

                                 
                                 
                                                     
                                                        




                                 
                             






                                                                       
                         











                                                           










                                                                            
           


                          
                                       
                                        




                                               
                                           




                                                  
                                     










                                                       
                              



















                                                                         

                                                







                                                                         








                                                          









                                                     
      
#! /bin/sh
#
#  Shell script to configure and build rtems
#
#  build-${CPU}-rtems is created as the build tree
#

usage()
{
  echo "usage: $0 CPU [BSP]"
  print_rtems_cpus
}

my_exit()
{
  exit $0
}

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

CPU=$1
shift
if [ $# -eq 1 ] ; then
  BSP_ARG=$1
  BSP_TO_TEST=$1
  shift
fi

args=$*

# The argument to the "--target" argument of configure.
BUILD_PIECE=rtems

# Include shared setup
if [ ! -r ./common.sh ] ; then
  echo "Cannot find shared shell script support (common.sh)"
  exit 1
fi
. `echo $0 | sed -e 's/bit_rtems/common.sh/'`

# Include user configurable information
test -r ./user.cfg || \
  check_fatal 1 "Cannot find user configuration (user.cfg)"
. ./user.cfg

# Now set some internal variables based on the user configuration
verbose=yes
testing=no
if [ "X${INSTALL_RTEMS}" = "Xno" ] ; then
  do_install=no
else
  do_install=yes
fi

export PATH=$PATH:${INSTALL_POINT}/bin
echo $PATH

#
# Remove the build directory
#
BUILDDIR=build-${CPU}-${BSP_TO_TEST}-rtems
echo "Removing build directory ${BUILDDIR} ..."
if [ ${testing} = no ] ; then
  rm -rf ${BUILDDIR}
  mkdir ${BUILDDIR}
  cd ${BUILDDIR}
fi

#
# Configure_rtems
#

conf_rtems()
{
echo "../${RTEMS}/configure $* ${BARE_CPU}${BARE_MODEL_ARG} \
    ${BARE_CFLAGS}${BARE_CFLAGS_ARG}"
if [ ${testing} = no ] ; then
  if [ "X${BARE_MODEL_ARG}" != "X" ] ; then
    ../${RTEMS}/configure $* ${BARE_CPU}"${BARE_MODEL_ARG}" \
      ${BARE_CFLAGS}"${BARE_CFLAGS_ARG}"
  else
    ../${RTEMS}/configure $*
  fi
else
  echo "In test mode: Not actually configuring"
echo
fi

if [ $? -eq 0 ] ; then
  echo "${BUILDDIR} has been successfully prepared"
else
  echo "Could not successfully configure into ${BUILDDIR}!"
  exit 1
fi

}

# enable-gcc28
# --enable-libcdir=${INSTALL_POINT}

doing_bare_bsp=no
if [ x${BSP_TO_TEST} != x ] ; then
 
  if [ `echo ${BSP_TO_TEST} | cut -d'-' -f1` != bare ]; then
    ENABLE_BSP=--enable-rtemsbsp="${BSP_TO_TEST}"
    case ${BSP_TO_TEST} in
      all) ;;
      multilib) ENABLE_BSP="--enable-multilib" ;;
      bf537Stamp) ENABLE_BSP="${ENABLE_BSP} BFIN_ON_SKYEYE=1" ;;
      eZKit533)   ENABLE_BSP="${ENABLE_BSP} BFIN_ON_SKYEYE=1"   ;;
      edb7312)    ENABLE_BSP="${ENABLE_BSP} ON_SKYEYE=1" ;;
      gumstix)    ENABLE_BSP="${ENABLE_BSP} ON_SKYEYE=1" ;;
      lm32_evr)   ENABLE_BSP="${ENABLE_BSP} ON_SIMULATOR=1" ;;
      csb637)
         ENABLE_BSP="${ENABLE_BSP} ENABLE_LCD=1"
         ENABLE_BSP="${ENABLE_BSP} ENABLE_LCD_MIRRORING=1"
         ;;
      qemu)
         ENABLE_BSP="--enable-rtemsbsp=pc386"
         ENABLE_BSP="${ENABLE_BSP} USE_COM1_AS_CONSOLE=1"
         ENABLE_BSP="${ENABLE_BSP} BSP_PRESS_KEY_FOR_RESET=0"
         BSP_TO_TEST=pc386
         ;;
      psim | *qemu)
         ENABLE_BSP="${ENABLE_BSP} CLOCK_DRIVER_USE_FAST_IDLE=1"
         ;;
      #pc386)
      #   ENABLE_BSP="--enable-rtemsbsp=pc386"
      #   ENABLE_BSP="${ENABLE_BSP} USE_COM1_AS_CONSOLE=1"
      #   ENABLE_BSP="${ENABLE_BSP} IDE_USE_SECONDARY_INTERFACE=1"
      #   ENABLE_BSP="${ENABLE_BSP} BSP_VIDEO_80x50=1"
      #   ;;
      pc386) ENABLE_BSP="--enable-rtemsbsp=pc386 BSP_VIDEO_80x50=1" ;;
      # sis) ENABLE_BSP="${ENABLE_BSP} CONSOLE_USE_INTERRUPTS=1" ;;
      sis) ENABLE_BSP="${ENABLE_BSP} SIMSPARC_FAST_IDLE=1" ;;
      *)     ENABLE_BSP=--enable-rtemsbsp="${BSP_TO_TEST}" ;;
    esac

  else
    doing_bare_bsp=yes
    ENABLE_BSP=--enable-rtemsbsp="bare"
    BARE_CPU="--enable-bare-cpu-model="
    BARE_CFLAGS="--enable-bare-cpu-cflags="
    case ${BSP_TO_TEST} in
       # Hitachi SH family
         bare-sh7032)
           BARE_MODEL_ARG=sh7032
           BARE_CFLAGS_ARG="-Wall -m1 -DMHZ=20 -DCPU_CONSOLE_DEVNAME="\\\"/dev/null\\\"""
           ;;

       # Intel i386 family
         bare-i386_fp)
           BARE_MODEL_ARG=i386_fp
           BARE_CFLAGS_ARG="-m386"
           ;;
         bare-i386_nofp)
           BARE_MODEL_ARG=i386_nofp
           BARE_CFLAGS_ARG="-m386 -msoft-float"
           ;;
         bare-i486dx)
           BARE_MODEL_ARG=i486dx
           BARE_CFLAGS_ARG="-m486"
           ;;
         bare-i486sx)
           BARE_MODEL_ARG=i486sx
           BARE_CFLAGS_ARG="-m486 -msoft-float"
           ;;
         bare-pentium)
           BARE_MODEL_ARG=pentium
           BARE_CFLAGS_ARG="-mpentium"
           ;;
       
       # Motorola m68xxx and Coldfire family
         bare-m68000)
           BARE_MODEL_ARG=m68000
           BARE_CFLAGS_ARG="-m68000 -msoft-float"
           ;;
         bare-m68020)
           BARE_MODEL_ARG=m68020
           BARE_CFLAGS_ARG="-m68020"
           ;;
         bare-m68020nofp)
           BARE_MODEL_ARG=m68020
           BARE_CFLAGS_ARG="-m68020 -msoft-float"
           ;;
         bare-m68040)
           BARE_MODEL_ARG=m68040
           BARE_CFLAGS_ARG="-m68040"
           ;;
         bare-m68040nofp)
           BARE_MODEL_ARG=m68040
           BARE_CFLAGS_ARG="-m68040 -msoft-float"
           ;;
         bare-m68060)
           BARE_MODEL_ARG=m68060
           BARE_CFLAGS_ARG="-m68060"
           ;;
         bare-m68060nofp)
           BARE_MODEL_ARG=m68060
           BARE_CFLAGS_ARG="-m68060 -msoft-float"
           ;;
         bare-m68302)
           BARE_MODEL_ARG=m68302
           BARE_CFLAGS_ARG="-m68302 -msoft-float"
           ;;
         bare-cpu32)
           BARE_MODEL_ARG=cpu32
           BARE_CFLAGS_ARG="-mcpu32"
           ;;
         bare-cpu32+)
           BARE_MODEL_ARG=cpu32+
           BARE_CFLAGS_ARG="-mcpu32 -DRTEMS__mcpu32p__"
           ;;
         bare-m5200)
           BARE_MODEL_ARG=m5200
           BARE_CFLAGS_ARG="-m5200"
           ;;

       # Motorola PowerPC Family
         bare-ppc403)
           BARE_MODEL_ARG=ppc403
           BARE_CFLAGS_ARG="-mcpu=403"
           ;;
         bare-ppc603e)
           BARE_MODEL_ARG=ppc603e
           BARE_CFLAGS_ARG="-m60e"
           ;;

       # ARM Family
         bare-arm9tdmi)
           BARE_MODEL_ARG=arm9tdmi
           BARE_CFLAGS_ARG="-mcpu=arm9tdmi"
           ;;

       # Unknown CPU family
         *)
           echo This script does not know how to build ${BSP_TO_TEST} yet.
           echo
           usage
           exit 1
           ;;
    esac
    BSP_TO_TEST=bare
  fi
fi

#
#  Convert user.cfg variables into RTEMS configuration options
#

case ${ENABLE_RTEMS_TESTS} in
  samples) RTEMS_TESTS_FLAG="--enable-tests=samples" ;;
  yes)     RTEMS_TESTS_FLAG="--enable-tests" ;;
  *)       RTEMS_TESTS_FLAG="--disable-tests" ;;
esac
  
if [ ${ENABLE_BSP_DIRTY_MEMORY} = yes ] ; then
 # Not all BSPs support this
 ENABLE_BSP="${ENABLE_BSP} BSP_DIRTY_MEMORY=1"
fi

if [ ${ENABLE_RTEMS_TCPIP} = yes ] ; then
  case ${CPU} in
    avr) TCPIP_FLAG="--disable-networking" ;;
    *)   TCPIP_FLAG="--enable-networking" ;;
  esac
else
  TCPIP_FLAG="--disable-networking"
fi

#    --disable-rtems-inlines
if [ x${DISABLE_INLINES} = xyes ] ; then
  DISABLE_INLINES_FLAG="--disable-rtems-inlines"
fi

if [ ${ENABLE_RTEMS_POSIX} = yes ] ; then
  POSIX_FLAG="--enable-posix"
else
  POSIX_FLAG="--disable-posix"
fi

if [ ${ENABLE_RTEMS_SMP} = yes ] ; then
  SMP_FLAG="--enable-smp"
else
  SMP_FLAG="--disable-smp"
fi

if [ ${ENABLE_RTEMS_ITRON} = yes ] ; then
  ITRON_FLAG="--enable-itron"
else
  ITRON_FLAG="--disable-itron"
fi

ADA_FLAG="--disable-ada"
ADA_TESTS_FLAG="--disable-expada"
case ${target} in 
  sparc*|powerpc*|i386*)
    if [ ${ENABLE_RTEMS_ADA} = yes ] ; then
      ADA_FLAG="--enable-ada"
    fi

    if [ ${ENABLE_RTEMS_ADA_TESTS} = yes ] ; then
      ADA_TESTS_FLAG="--enable-expada"
    fi
    ;;
  *)
    ;;
esac

# Only a few BSPs really support MP
if [ ${ENABLE_RTEMS_MP} = yes ] ; then
  case ${BSP_TO_TEST} in
    simhppa|cvme961|mvme147s|psim|posix|multilib|leon3)
      ENABLE_MP_FLAG="--enable-multiprocessing"
      ;;
    *)
      echo "AUTOMATICALLY DISABLING MULTIPROCESSING!!!"
      ENABLE_MP_FLAG="--disable-multiprocessing"
      ;;
  esac
else
  ENABLE_MP_FLAG="--disable-multiprocessing"
fi

# Some CPUs do not have C++ support
if [ ${ENABLE_RTEMS_CXX} = yes ] ; then
  case ${CPU} in
    avr|bfin|m32c|m32r|tic4x)
       ENABLE_RTEMS_CXX="--disable-cxx" ;;
    *) ENABLE_RTEMS_CXX="--enable-cxx" ;;
  esac
else
  ENABLE_RTEMS_CXX="--disable-cxx"
fi

if [ ${ENABLE_RTEMS_RDBG} = yes ] ; then
  ENABLE_RTEMS_RDBG="--enable-rdbg"
else
  ENABLE_RTEMS_RDBG="--disable-rdbg"
fi

if [ ${ENABLE_RTEMS_MAINTAINER_MODE} = yes ] ; then
  ENABLE_RTEMS_MAINTAINER_MODE="--enable-maintainer-mode"
else
  ENABLE_RTEMS_MAINTAINER_MODE=""
fi

ENABLE_DEPRECATED_HEADERS="--disable-deprecated"

if [ ${BUILD_RTEMS_DEBUG} = "yes" ] ; then
  ENABLE_RTEMS_DEBUG="--enable-rtems-debug"
else
  ENABLE_RTEMS_DEBUG=""
fi

ENABLE_ARGS="\
    --prefix=${INSTALL_POINT} \
    ${DISABLE_INLINES_FLAG} ${ENABLE_MP_FLAG} ${ENABLE_SMP_FLAG} \
    ${ENABLE_RTEMS_DEBUG} ${ENABLE_RTEMS_CXX} \
    ${ENABLE_RTEMS_RDBG} ${ENABLE_RTEMS_MAINTAINER_MODE} \
    ${RTEMS_TESTS_FLAG} ${TCPIP_FLAG} \
    ${POSIX_FLAG} ${ITRON_FLAG} ${ENABLE_DEPRECATED_HEADERS} \
    ${ADA_FLAG} ${ADA_TESTS_FLAG}"

if [ $CPU != unix ] ; then
  TARGET_ARG=--target=${target}
  #ENABLE_BSP=
fi

conf_rtems ${TARGET_ARG} ${ENABLE_ARGS} ${ENABLE_BSP} $args
if [ $? -ne 0 ] ; then
  echo "Unable to configure successfully"
  exit 1
fi

build_status=0

if [ ${verbose} = yes ]; then
  echo "Initiating ${MAKE} .."
fi

if [ ${BUILD_RTEMS_DEBUG} = "yes" ] ; then
 MAKE_DEBUG_ARG="VARIANT=DEBUG"
fi

# Calculate number of jobs as 1.5*ncpus + 1
ncpus=`/usr/bin/getconf _NPROCESSORS_ONLN 2>/dev/null`
if [ $? -ne 0 ] ; then
  ncpus=2
fi
njobs=`expr ${ncpus} / 2 + 1 + ${ncpus}`
echo "Using make ${njobs} parallel jobs"

if [ ${ENABLE_KEEP_BUILDING} = "yes" ] ; then
  MAKE_KEEP_GOING_ARG="-k"
else
  MAKE_KEEP_GOING_ARG=""
fi

case ${BSP_TO_TEST} in
  multilib)
     echo "Executing ${MAKE} ${MAKE_DEBUG_ARG} ..."
     ${MAKE} -j${njobs} ${MAKE_KEEP_GOING_ARG} ${MAKE_DEBUG_ARG} \
             RTEMS_BSP=
     build_status=$?
     check_fatal ${build_status} "failed ${MAKE} ${MAKE_DEBUG_ARG}."
     BSP_TO_TEST=
     ;;
  *)
     echo "Executing ${MAKE} ${MAKE_DEBUG_ARG} ..."
     ${MAKE} -j${njobs} ${MAKE_KEEP_GOING_ARG} ${MAKE_DEBUG_ARG} \
             RTEMS_BSP=${BSP_TO_TEST}
     build_status=$?
     check_fatal ${build_status} "failed ${MAKE} ${MAKE_DEBUG_ARG}."
     ;;
esac

case $CPU in
  unix) ;;
  *)
     if [ ${do_install} = "yes" ] ; then
       echo "Executing ${MAKE} install ..."
       if [ X${BSP_TO_TEST} = X ] ; then
	 ${MAKE} RTEMS_BSP= ${MAKE_DEBUG_ARG} install
       else
	 find ${INSTALL_POINT}/${target} -name "*.h" -o -name "*.a" | \
	   while read f
	   do
	     rpm -qf $f >/dev/null 2>&1
	     test $? -eq 1 && (echo $f ; rm -f $f)
	   done

	 ${MAKE} RTEMS_BSP=${BSP_TO_TEST} ${MAKE_DEBUG_ARG} install
       fi
       check_fatal $? "failed ${MAKE} ${MAKE_DEBUG_ARG} install."
     fi
     ;;
esac

case ${target} in
  *4.6*|*4.7*|*4.8*) exeext=exe ;;
  *)                 exeext=ralf ;;
esac

case ${BSP_ARG} in
  multilib)
     # should be in build-CPU-multilib-rtems
     pwd
     cd ..
     rm -rf ${BUILDDIR}-bsps
     mkdir ${BUILDDIR}-bsps
     cd ${BUILDDIR}-bsps
     
     # same configure but this time we build the BSPs 
     conf_rtems ${TARGET_ARG} ${ENABLE_ARGS} $args
     check_fatal $? "Unable to configure BSP step successfully"

     echo "Executing multilib BSP: ${MAKE} ${MAKE_DEBUG_ARG} ..."
     ${MAKE} -k -j${njobs} ${MAKE_DEBUG_ARG}
     status=$?

     # clean up install point
     find ${INSTALL_POINT}/${target}/lib -name "*rtems*.a" | xargs -e rm -f
     rm -rf ${INSTALL_POINT}/${target}/lib/include

     mkdir -p ../ticker-executables
     find . -name ticker.${exeext} | while read f
     do
        bsp=`echo $f | cut -d'/' -f4`
        cp $f ../ticker-executables/${CPU}-${bsp}-multilib-ticker.${exeext}
     done

     check_fatal $status "failed BSP ${MAKE} ${MAKE_DEBUG_ARG}."
     exit 0
     ;;
  *)
     ;;
esac

# If we were installing a bare BSP, then we must fix the install point
if [ ${do_install} = yes -a ${doing_bare_bsp} = yes ] ; then
  echo "Moving the RTEMS bare bsp directory to ${BSP_TO_TEST} ... "
  test -d ${INSTALL_POINT}/${target}/bare
  check_fatal $? "${INSTALL_POINT}/${target}/bare does not exist"
  mv ${INSTALL_POINT}/${target}/bare ${INSTALL_POINT}/${target}/${BSP_TO_TEST}
  check_fatal $? "failed to move the bare bsp directory to ${BSP_TO_TEST}."
fi

# gather size info of executables
case ${target} in
  unix) sizecmd=size           ; searchtestdir="NOT_SET";;
  *)    sizecmd=${target}-size ; searchtestdir=${target}/${BSP_TO_TEST} ;;
esac
ext=exe
count=`find . -name "*.nxe" | wc -l`
if [ ${count} -ne 0 ] ; then
  ext=nxe
fi
${sizecmd} `find . -name "*.${ext}"` | sed -e '1,1d' -e 's/^/SIZE:/'

# Can we run the tests on a simulator?
if [ ${ENABLE_RTEMS_TESTS} = "samples" -o \
     ${ENABLE_RTEMS_TESTS} = "yes" ] ; then

  if [ ${RUN_RTEMS_TESTS} = yes ] ; then
    case ${BSP_TO_TEST} in
      realview_pbx_a9_qemu*) testable=yes ;;  # arm/realview_pbx_a9_qemu*
      xilinx_zynq_a9_qemu) testable=yes ;;  # arm/xilinx_zynq_a9_qemu
      edb7312) testable=yes ;;  # arm/edb7312
      rtl22xx) testable=yes ;;  # arm/rtl22xx
      jmr3904) testable=yes ;;  # mips/jmr3904
      psim)    testable=yes ;;  # powerpc/psim
      sis)     testable=yes ;;  # sparc/sis
      erc32|leon2|leon3)        # sparc using tsim
        case `uname -n` in
          england*|iceland*) testable=yes ;; 
          *)                 testable=no ;;
        esac
        ;;
      posix)   testable=yes ;;  # unix/posix
      *)       testable=no  ;;
    esac
  else
    # Running tests disabled by user
    testable=no
  fi

  # If not multilib, grab the ticker.${exeext} and save it out
  if [ X${BSP_TO_TEST} != X ] ; then
    mkdir -p ../ticker-executables
    cp `find . -name ticker.${exeext}` \
        ../ticker-executables/${CPU}-${BSP_TO_TEST}-ticker.${exeext}
  fi

  if [ ${testable} = yes ] ; then
    echo TESTING BSP
    testdir=${target}-${BSP_TO_TEST}
    rm -rf ${testdir}

    mkdir ${testdir}
    check_fatal $? "failed to mkdir test directory for ${BSP_TO_TEST}."
    cp `find . -name "*.${exeext}"` ${testdir}

    case ${BSP_TO_TEST} in
      jmr3904)  runner=jmr3904 ;;
      psim)     runner=psim ;;
      posix)    runner="" ;;
      # ARM
      edb7312)  runner=edb7312 ;;
      gumstix)  runner=gumstix ;;
      realview_pbx_a9_qemu*) runner=${BSP_TO_TEST} ;;
      xilinx_zynq_a9_qemu) runner=xilinx_zynq_a9_qemu ;;
      rtl22xx)  runner=rtl22xx ;;
      # SPARC
      erc32)    runner=erc32 ;;
      leon2)    runner=leon  ;;
      leon3)    runner=leon3 ;;
      sis)      runner=sis ;;
      *) ;;
    esac

    cd ${testdir}
    check_fatal $? "failed to enter test directory for ${BSP_TO_TEST}."

    # This should run the tests
    ${runner} *.${exeext}

    # Check Logs
    echo "Checking Logs for Proper Test Completion ..."
    check_endof

    cd ..

    # Do not gather test executables as they are very large
    
    # gather results as best we can
    tar cjf ../log/${target}-${BSP_TO_TEST}-logs.tar.bz2 \
        ${target}-${BSP_TO_TEST}/log
fi

pwd

# if we installed it, then try to build hello world
if [ ${do_install} = yes -a ${doing_bare_bsp} = no ] ; then
  # if this is a multilib, then handle it specially
  if [ X${BSP_TO_TEST} = X ] ; then
      find ${INSTALL_POINT}/${target}/lib -name "*rtems*.a" | xargs -e rm -f
      rm -rf ${INSTALL_POINT}/${target}/lib/include
  else
    SUITES=
    case ${BSP_TO_TEST} in
      posix|bare*) ;;
      *)
        if [ -d ../examples-v2 ] ; then
          SUITES="${SUITES} examples-v2"
        else 
          echo "WARNING! examples-v2 not found"
        fi

        if [ -d ../class-examples ] ; then
          SUITES="${SUITES} class-examples"
        else 
          echo "WARNING! class-examples not found"
        fi

        if [ -d ../examples ] ; then
          SUITES="${SUITES} examples"
        else 
          echo "WARNING! examples not found"
        fi

        if [ ${ENABLE_RTEMS_TCPIP} = yes ] ; then
          if [ -d ../network-demos ] ; then
            SUITES="${SUITES} network-demos"
          fi
        fi

        # Build application level tests that use "make"
        for suite in ${SUITES}
        do
          cd ..
          cd ${suite}
          check_fatal $? "failed cd to ${suite}."

          RTEMS_MAKEFILE_PATH=${INSTALL_POINT}/${target}/${BSP_TO_TEST} \
             ${MAKE} ${MAKE_DEBUG_ARG} clean
          check_fatal $? "failed 1st clean ${suite} on ${BSP_TO_TEST}."

          RTEMS_MAKEFILE_PATH=${INSTALL_POINT}/${target}/${BSP_TO_TEST} \
             ${MAKE} ${MAKE_DEBUG_ARG} 
          check_fatal $? "failed ${suite} on ${BSP_TO_TEST}."

          RTEMS_MAKEFILE_PATH=${INSTALL_POINT}/${target}/${BSP_TO_TEST} \
             ${MAKE} ${MAKE_DEBUG_ARG} clean
          check_fatal $? "failed clean ${suite} on ${BSP_TO_TEST}."
        done

        # Build TCP/IP demos and addons
        if [ ${ENABLE_RTEMS_POSIX} = yes -a  \
             ${ENABLE_RTEMS_TCPIP} = yes -a \
             -d ../rtems-addon-packages ] ; then

          cd ../rtems-addon-packages
          check_fatal $? "failed cd to rtems-addon-packages."

          RTEMS_MAKEFILE_PATH=${INSTALL_POINT}/${target}/${BSP_TO_TEST} \
             sh ./bit
          check_fatal $? "failed to build add on on ${BSP_TO_TEST}."

        fi

        # now clean up the install image
        du -s -k ${INSTALL_POINT}/${target}/${BSP_TO_TEST}
        rm -rf ${INSTALL_POINT}/${target}/${BSP_TO_TEST}
        ;;
    esac
  fi
fi

# Should be back at the top of the build tree
if [ ${build_status} -eq 0 -a \
     ${ENABLE_CLEAN_ON_BUILD_PASSED} = "yes" ] ; then
  echo "Build OK - Removing ${BUILDDIR}"
  cd ..
  rm -rf ${BUILDDIR}
fi
fi

exit 0