summaryrefslogtreecommitdiffstats
path: root/scripts-ada/buildall.in
diff options
context:
space:
mode:
Diffstat (limited to 'scripts-ada/buildall.in')
-rw-r--r--scripts-ada/buildall.in192
1 files changed, 192 insertions, 0 deletions
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] <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=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