From 64ab2e9eeb87a3ea1c48cea6d74647155f5e0e44 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Wed, 26 Jan 2000 19:56:54 +0000 Subject: First cut at adding RPM scripts for building GNAT/RTEMS RPMs. --- scripts-ada/buildall.in | 192 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 192 insertions(+) create mode 100644 scripts-ada/buildall.in (limited to 'scripts-ada/buildall.in') diff --git a/scripts-ada/buildall.in b/scripts-ada/buildall.in new file mode 100644 index 0000000000..845c493caa --- /dev/null +++ b/scripts-ada/buildall.in @@ -0,0 +1,192 @@ +#! /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] " + echo " options:" + echo " -cfg " + echo " -o " + 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=yes +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/rtems + 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/rtems + + echo uninstalling binutils for ${target} + if [ ${testing} = no ] ; then + rpm -e `rpm -qa | grep rtems` + rm -rf /opt/rtems/* + 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/rtems + else + echo Skipping gdb for ${target} + fi + +done + +# Now we are done + +stop=`date` + +echo +echo "Started: " $start +echo "Finished: " $stop +exit 0 -- cgit v1.2.3