summaryrefslogblamecommitdiffstats
path: root/scripts-ada/buildall.in
blob: 8a39025bd89f559c8d5d7ef4b44d2fcdd4f429ee (plain) (tree)































































                                                               
                                                   


























































                                                              
                                             











                                                                         







                                                                                                            







                                                              
                                             
 




                                               
















                                                 
                                             













                                   
#! /bin/sh
#
#  Generate all the specs and then cycle through building them.
#

RTEMS_DIR=`dirname $0`
CFG=./setup.cache
dst=@RPM_SPECSdir@

usage()
{
  echo "$0 [options] <target_alias>"
  echo "  options:"
  echo "    -cfg <setup.cache>"
  echo "    -o <rpm-spec-dir>"
  exit 1 ;
}

while test $# -ge 1; do
  case $1 in
    -cfg)
      test $# -ge 2 || usage
      shift
      CFG=$1
      shift
      ;;
    -o)
      test $# -ge 2 || usage
      shift
      dst=$1
      shift
      ;;
    -*)
      echo "invalid option $1";
      usage
      ;;
    *)
      TARGETS="${TARGETS} $1"
      shift
      ;;
  esac
done

# This is the full list .. hppa1.1 does not build now.
#ALL_TARGETS="hppa1.1-rtems i386-rtems i960-rtems m68k-rtems \
#  m68k-rtemself mips64orion-rtems \
#  powerpc-rtems sh-rtems sh-rtemself sparc-rtems"

# This is the full buildable set.
if [ "X${TARGETS}" = "X" ] ; then
  TARGETS="i386-rtems i960-rtems m68k-rtems \
    mips64orion-rtems powerpc-rtems sh-rtems sparc-rtems"
fi

. $CFG

binutils=${binutils_version}
gcc=${gcc_version}
gdb=${gdb_version}
newlib=${newlib_version}
# also use binutils_rpm_release
buildroot=/tmp

testing=no
do_binutils=no    # binutils included in gnatnewlib
do_gnatnewlib=yes
do_gdb=yes

#
#  Now get started
#
start=`date`

echo PATH=$PATH

if [ ${testing} = yes ] ; then
  ECHO=echo
fi

installed_count=`rpm -qa | grep rtems | wc -l`
if [ ${installed_count} -ne 0 ] ; then
  echo This script should be run with NO rtems RPMs installed.
  echo It appears that the following rtems RPMs are installed:
  echo
  rpm -qa | grep rtems
  echo
  echo Please remove these and restart this script.
  exit 1
fi

echo Copying specs files.
if [ ${testing} = no ] ; then
  cd ${RTEMS_DIR}
  
  # ./configure || exit 1
  make        || exit 1

  #  Now generate all the specs
  for target in ${TARGETS}
  do
    tspecs=`find . -name "${target}*"`
    if [ "X${tspecs}" = "X" ] ; then
      echo RPM specifications were not generated for ${tspec}.
      exit 1
    fi
    ${ECHO} cp -r ${tspecs} ${dst}
  done
fi

# clean up a bit before we start
cd ${dst}
test -d log || mkdir log

#  do all the tools
for target in ${TARGETS}
do
  if [ ${do_binutils} = yes ] ; then
    logfile=log/${target}-binutils
    specfile=${dst}/${target}-binutils-${binutils}.spec
    echo "rpm -ba ${specfile} >${logfile} 2>&1"
    if [ ${testing} = no ] ; then
      rpm -ba ${specfile} >${logfile} 2>&1
    fi
    ${ECHO} rm -rf ${dst}/../BUILD/${target}-binutils*
    ${ECHO} rm -rf ${buildroot}/opt/gnatrtems
  else
    echo Skipping binutils for ${target}
  fi

  #
  #  build gcc/newlib
  #

  if [ ${do_gnatnewlib} = yes ] ; then
    # now build gcc/newlib
    #    NOTE: This requires having binutils installed and we immediately
    #          remove it once finished.
    # base_binutils_rpm=${dst}/../RPMS/i386/rtems-base-binutils-${binutils}-${binutils_rpm_release}.i386.rpm
    # binutils_rpm=${dst}/../RPMS/i386/${target}-binutils-${binutils}-${binutils_rpm_release}.i386.rpm
    # if [ ! -f ${binutils_rpm} ] ; then
    #   echo There is no RPM for binutils for ${target}.
    #   echo Looked for ${binutils_rpm}.
    # fi
    # ${ECHO} rpm -i ${base_binutils_rpm}
    # ${ECHO} rpm -i ${binutils_rpm}

    logfile=log/${target}-gnatnewlib
    specfile=${dst}/${target}-gcc-${gcc}-newlib-${newlib}.spec
    echo "rpm -ba ${specfile} >${logfile} 2>&1"
    if [ ${testing} = no ] ; then
      rpm -ba ${specfile} >${logfile} 2>&1
    fi
    ${ECHO} rm -rf ${dst}/../BUILD/${target}-gcc*
    ${ECHO} rm -rf ${buildroot}/opt/gnatrtems

    # echo uninstalling binutils for ${target} 
    # if [ ${testing} = no ] ; then
    #   rpm -e `rpm -qa | grep rtems`
    #   rm -rf /opt/gnatrtems/*
    # fi
  else
    echo Skipping gcc/newlib for ${target}
  fi

  #
  # build gdb
  #

  if [ ${do_gdb} = yes ] ; then
    # now build gdb
    logfile=log/${target}-gdb
    specfile=${dst}/${target}-gdb-${gdb}.spec
    echo "rpm -ba ${specfile} >${logfile} 2>&1"
    if [ ${testing} = no ] ; then
      rpm -ba ${specfile} >${logfile} 2>&1
    fi
    ${ECHO} rm -rf ${dst}/../BUILD/${target}-gdb*
    ${ECHO} rm -rf ${buildroot}/opt/gnatrtems
  else
    echo Skipping gdb for ${target}
  fi

done

# Now we are done

stop=`date`

echo
echo "Started:  " $start
echo "Finished: " $stop
exit 0