summaryrefslogtreecommitdiffstats
path: root/scripts/buildalltar.in
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2002-01-22 15:38:43 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2002-01-22 15:38:43 +0000
commit08f224b0d041902be56c1ac251c0c37e8881e9ad (patch)
tree44e8e217f3717f30844dd28e0aa0705026995fc4 /scripts/buildalltar.in
parentregenerated (diff)
downloadrtems-08f224b0d041902be56c1ac251c0c37e8881e9ad.tar.bz2
2001-01-22 Joel Sherrill <joel@OARcorp.com>
* buildalltar.in: Modified to support Canadian cross builds. It was testing using a RedHat 7.2 host to build *-rtems tools that run on an i386-cygwin host.
Diffstat (limited to 'scripts/buildalltar.in')
-rw-r--r--scripts/buildalltar.in239
1 files changed, 143 insertions, 96 deletions
diff --git a/scripts/buildalltar.in b/scripts/buildalltar.in
index f72c7fd1c1..5ee08a7307 100644
--- a/scripts/buildalltar.in
+++ b/scripts/buildalltar.in
@@ -17,16 +17,35 @@ usage()
echo " -b -- build binutils"
echo " -g -- build gcc/newlib"
echo " -d -- build gdb"
+ echo " -C HOST -- build canadian cross for HOST "
echo " -t -- enable test/debug mode"
echo " -cfg <setup.cache>"
echo " -o <rpm-spec-dir>"
exit 1 ;
}
+#
+# Checks the status returned by executables and exits if it is non-zero.
+#
+check_fatal()
+{
+ if [ $1 -ne 0 ] ; then
+ shift
+ echo "ERROR: $*" >&2
+ exit 1
+ fi
+ #echo
+ #echo "End of $*"
+ #echo -n "Press return to continue> "
+ #echo
+ #read line
+}
+
testing=no
do_binutils=no
do_gccnewlib=no
do_gdb=no
+cdn_cross=no
while test $# -ge 1; do
case $1 in
@@ -46,6 +65,18 @@ while test $# -ge 1; do
dst=$1
shift
;;
+ -C)
+ test $# -ge 2 || usage
+ shift
+ build=$1
+ shift
+ if ! test -x ${RTEMS_DIR}/../config.guess ; then
+ echo "Missing ${RTEMS_DIR}/../config.guess!"
+ exit 1
+ fi
+ CDN_ARGS="--build=`${RTEMS_DIR}/../config.guess` --host=${build}"
+ cdn_cross=yes
+ ;;
-*)
echo "invalid option $1";
usage
@@ -130,38 +161,54 @@ fi
cd ${dst}
test -d log || mkdir log
+if [ "X${rpm_build_root}" = "X" ] ; then
+ echo rpm_build_root NOT set!
+ exit 1
+fi
+
+CWD=`pwd`
+test -d tarballs || mkdir tarballs
+
+OUT=${CWD}/tarballs
+
# do all the tools
for target in ${TARGETS}
do
- bintarfile=${PWD}/${target}-binutils-${binutils}-${binutils_rpm_release}.tar
+ bintarfile=${OUT}/${target}-binutils-${binutils}-${binutils_rpm_release}.tar
if [ ${do_binutils} = yes ] ; then
- # this part is for RPMS
- 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*
-
-
+ logfile=${CWD}/log/${target}-binutils
# this part is for tar.bz2
- PWD=`pwd`
- mkdir b-${target}
- cd b-${target}
- ../binutils-${binutils}/configure --target=${target} \
- --verbose --prefix=/opt/rtems
- make all
- make info
- make prefix=${rpm_build_root}/opt/rtems install
- make prefix=${rpm_build_root}/opt/rtems install-info
+ cd ${CWD}
+ if [ ! -d binutils-${binutils} ] ; then
+ echo Could not find binutils-${binutils}!
+ exit 1
+ fi
+ rm -rf b-${target}-bin
+ mkdir b-${target}-bin
+ cd b-${target}-bin
+ echo "Building binutils-${binutils} for ${target}"
+ ../binutils-${binutils}/configure ${CDN_ARGS} --target=${target} \
+ --verbose --prefix=/opt/rtems >${logfile} 2>&1
+ check_fatal $? "binutils configure"
+
+ make all >>${logfile} 2>&1
+ check_fatal $? "make all"
+
+ make info >>${logfile} 2>&1
+ check_fatal $? "make info"
+
+ make prefix=${rpm_build_root}/opt/rtems install >>${logfile} 2>&1
+ check_fatal $? "make install"
+
+ make prefix=${rpm_build_root}/opt/rtems install-info >>${logfile} 2>&1
+ check_fatal $? "make install-info"
+
cd ${buildroot}
- tar cf ${PWD}/${target}-binutils-${binutils}-${binutils_rpm_release}.tar opt
- cd ${PWD}
- bzip2 -9 ${target}-binutils-${binutils}.tar
+ tar cjf ${bintarfile}.bz2 opt
+ cd ${CWD}
+ rm -rf b-${target}-bin
${ECHO} rm -rf ${rpm_build_root}/opt
- rm -rf ${rpm_build_root}/opt/rtems
- rm -rf b-${target}
+ #rm -rf ${rpm_build_root}/opt
else
echo Skipping binutils for ${target}
fi
@@ -171,62 +218,55 @@ do
#
if [ ${do_gccnewlib} = yes ] ; then
+ logfile=${CWD}/log/${target}-gccnewlib
# now build gcc/newlib
- # NOTE: This requires having binutils installed and we immediately
- # remove it once finished.
- #base_binutils_rpm=${dst}/../RPMS/${rpm_cpu}/rtems-base-binutils-${binutils}-${binutils_rpm_release}.${rpm_cpu}.rpm
- #binutils_rpm=${dst}/../RPMS/${rpm_cpu}/${target}-binutils-${binutils}-${binutils_rpm_release}.${rpm_cpu}.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}-gccnewlib
- #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
-
# this part is for tar.bz2
- PWD=`pwd`
-
- gcctarfile=${PWD}/${target}-gcc-${gcc}-newlib-${newlib}-${gccnewlib_rpm_release}.tar
- bintarfile=${dst}/binaries/binutils-${binutils}-${binutils_rpm_release}/${target}-binutils-${binutils}-${binutils_rpm_release}.tar
- cd /
- rm -rf /opt/*
- bzcat ${bintarfile}.bz2 | tar xf -
-
- cd ${PWD}
- rm -rf b-${target}
- mkdir b-${target}
- cd b-${target}
- ../gcc-${gcc}/configure --target=${target} \
- --with-gnu-as --with-gnu-ld --with-newlib --verbose \
- --enable-threads --prefix=/opt/rtems '--enable-languages=c,c++'
- make all
- make info
- make prefix=${rpm_build_root}/opt/rtems install
- make prefix=${rpm_build_root}/opt/rtems install-info
+
+ gcctarfile=${OUT}/${target}-gcc-${gcc}-newlib-${newlib}-${gccnewlib_rpm_release}.tar
+ if [ ${cdn_cross} = "no" ] ; then
+ bintarfile=${dst}/binaries/binutils-${binutils}-${binutils_rpm_release}/${target}-binutils-${binutils}-${binutils_rpm_release}.tar
+ cd /
+ rm -rf /opt/*
+ tar xjf ${bintarfile}.bz2
+ fi
+
+ cd ${CWD}
+ if [ ! -d gcc-${gcc} ] ; then
+ echo Could not find gcc-${gcc}!
+ exit 1
+ fi
+ if [ ! -d gcc-${gcc}/newlib ] ; then
+ echo Could not find gcc-${gcc}/newlib!
+ exit 1
+ fi
+ rm -rf b-${target}-gccnewlib
+ mkdir b-${target}-gccnewlib
+ cd b-${target}-gccnewlib
+ echo "Building gcc-${gcc} for ${target}"
+ ../gcc-${gcc}/configure ${CDN_ARGS} --target=${target} \
+ --with-gnu-as --with-gnu-ld --with-newlib --verbose --enable-threads \
+ --prefix=/opt/rtems '--enable-languages=c,c++' >${logfile} 2>&1
+ check_fatal $? "gcc configure"
+
+ make all >>${logfile} 2>&1
+ check_fatal $? "make all"
+
+ make info >>${logfile} 2>&1
+ check_fatal $? "make info"
+
+ make prefix=${rpm_build_root}/opt/rtems install >>${logfile} 2>&1
+ check_fatal $? "make install"
+
cd ${target}/newlib
- make prefix=${rpm_build_root}/opt/rtems install-info
+ make prefix=${rpm_build_root}/opt/rtems install-info >>${logfile} 2>&1
+ check_fatal $? "newlib make install-info"
+
cd ${buildroot}
- tar cf ${gcctarfile} opt
- cd ${PWD}
- bzip2 -9 ${gcctarfile}
+ tar cjf ${gcctarfile}.bz2 opt
+ cd ${CWD}
rm -rf ${rpm_build_root}/opt
rm -rf ${rpm_build_root}/opt/rtems
- rm -rf b-${target}
+ rm -rf b-${target}-gccnewlib
else
echo Skipping gcc/newlib for ${target}
fi
@@ -237,20 +277,17 @@ do
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
+ gdbtarfile=${OUT}/${target}-gdb-${gdb}-${gdb_rpm_release}.tar
+ logfile=${CWD}/log/${target}-gdb
# this part is for tar.bz2
- PWD=`pwd`
- mkdir b-${target}
- cd b-${target}
+ if [ ! -d gdb-${gdb} ] ; then
+ echo Could not find gdb-${gdb}!
+ exit 1
+ fi
+ mkdir b-${target}-gdb
+ cd b-${target}-gdb
case ${target} in
arm* | d10v* | d30v* | erc32* | fr30* | h8300* | h8500* | i960* | \
m32r* | mcore* | mips* | mn10200* | mn10300* | sh* | sparc*| v850* | \
@@ -266,19 +303,29 @@ do
*)
;;
esac
- ../gdb-${gdb}/configure --target=${target} \
- ${extra_configure_arguments} --verbose --prefix=/opt/rtems
- make all
- make info
- make prefix=${rpm_build_root}/opt/rtems install
- make prefix=${rpm_build_root}/opt/rtems install-info
+ echo "Building gdb-${gdb}/configure ${CDN_ARGS} --target=${target}"
+ ../gdb-${gdb}/configure ${CDN_ARGS} --target=${target} \
+ ${extra_configure_arguments} --verbose --prefix=/opt/rtems >${logfile} 2>&1
+ check_fatal $? "make info"
+
+ make all >>${logfile} 2>&1
+ check_fatal $? "make all"
+
+ make info >>${logfile} 2>&1
+ check_fatal $? "make info"
+
+ make prefix=${rpm_build_root}/opt/rtems install >>${logfile} 2>&1
+ check_fatal $? "make install"
+
+ make prefix=${rpm_build_root}/opt/rtems install-info >>${logfile} 2>&1
+ check_fatal $? "make install-info"
+
cd ${buildroot}
- tar cf ${PWD}/${target}-gdb-${gdb}-${gdb_rpm_release}.tar opt
- cd ${PWD}
- bzip2 -9 ${target}-gdb-${gdb}.tar
+ tar cjf ${gdbtarfile}.bz2 opt
+ cd ${CWD}
${ECHO} rm -rf ${rpm_build_root}/opt
rm -rf ${rpm_build_root}/opt/rtems
- rm -rf b-${target}
+ rm -rf b-${target}-gdb
else
echo Skipping gdb for ${target}
fi