# Fetch, build and install RTEMS 4.10.2, GNU Tools and SSRL extensions # # This may look like a C-shell-script, but it isn't intended to be used # as one. This is a record of the commands I used to build the RTEMS # 4.10.2 installation. Some of the configure arguments may be unnecessary # for Linux-hosted compilers; I was following Eric Norum's tutorial, but # that documented the process for RTEMS 4.9.2 and some things have changed # since then. # The mpfr code is only needed because I'm building this using an older # RHEL 5.8 system which doesn't have a new enough version of the libmpfr # needed for building gcc 4.4.7. # - Andrew Johnson, 2012/12/13 cd ~/rtems mkdir -p archive/4.10.2 # GNU Tools and Newlib mkdir tools cd tools wget ftp://www.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1.tar.bz2 wget ftp://www.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.7.tar.bz2 wget ftp://www.rtems.org/pub/rtems/SOURCES/4.10/gcc-g++-4.4.7.tar.bz2 wget ftp://www.rtems.org/pub/rtems/SOURCES/4.10/gdb-7.3.1.tar.bz2 wget ftp://www.rtems.org/pub/rtems/SOURCES/4.10/mpfr-2.4.2.tar.bz2 wget ftp://www.rtems.org/pub/rtems/SOURCES/4.10/newlib-1.18.0.tar.gz wget ftp://www.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100826.diff wget ftp://www.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.7-rtems4.10-20120314.diff wget ftp://www.rtems.org/pub/rtems/SOURCES/4.10/gcc-g++-4.4.7-rtems4.10-20120314.diff wget ftp://www.rtems.org/pub/rtems/SOURCES/4.10/gdb-7.3.1-rtems4.10-20120918.diff wget ftp://www.rtems.org/pub/rtems/SOURCES/4.10/newlib-1.18.0-rtems4.10-20110518.diff tar xfj binutils-2.20.1.tar.bz2 tar xfj gcc-core-4.4.7.tar.bz2 tar xfj gcc-g++-4.4.7.tar.bz2 tar xfj gdb-7.3.1.tar.bz2 tar xfj mpfr-2.4.2.tar.bz2 tar xfz newlib-1.18.0.tar.gz (cd binutils-2.20.1 && patch -p1 <../binutils-2.20.1-rtems4.10-20100826.diff ) (cd gcc-4.4.7 && patch -p1 <../gcc-core-4.4.7-rtems4.10-20120314.diff ) (cd gcc-4.4.7 && patch -p1 <../gcc-g++-4.4.7-rtems4.10-20120314.diff ) (cd gdb-7.3.1 && patch -p1 <../gdb-7.3.1-rtems4.10-20120918.diff ) (cd newlib-1.18.0 && patch -p1 <../newlib-1.18.0-rtems4.10-20110518.diff ) (cd gcc-4.4.7 && ln -s ../newlib-1.18.0/newlib ) mv *.bz2 *.gz *.diff ../archive/4.10.2 # On the machine with the earliest OS version that will need to run the compilers: set path = ( $path /usr/local/rtems/rtems-4.10.2/bin ) mkdir build cd build ../binutils-2.20.1/configure --target=m68k-rtems4.10.2 --prefix=/usr/local/rtems/rtems-4.10.2 --disable-nls --without-included-gettext --disable-win32-registry --disable-werror make all install rm -rf * ../binutils-2.20.1/configure --target=i386-rtems4.10.2 --prefix=/usr/local/rtems/rtems-4.10.2 --disable-nls --without-included-gettext --disable-win32-registry --disable-werror make all install rm -rf * ../mpfr-2.4.2/configure --prefix=/usr/local/rtems/rtems-4.10.2 make all install rm -rf * setenv LD_LIBRARY_PATH /usr/local/rtems/rtems-4.10.2/lib ../gcc-4.4.7/configure --target=m68k-rtems4.10.2 --prefix=/usr/local/rtems/rtems-4.10.2 --disable-libstdcxx-pch --with-gnu-as --with-gnu-ld --with-newlib --with-mpfr=/usr/local/rtems/rtems-4.10.2 --with-system-zlib --disable-nls --without-included-gettext --disable-win32-registry --enable-version-specific-runtime-libs --enable-threads --enable-newlib-io-c99-formats --enable-languages="c,c++" make all install rm -rf * ../gcc-4.4.7/configure --target=i386-rtems4.10.2 --prefix=/usr/local/rtems/rtems-4.10.2 --disable-libstdcxx-pch --with-gnu-as --with-gnu-ld --with-newlib --with-mpfr=/usr/local/rtems/rtems-4.10.2 --with-system-zlib --disable-nls --without-included-gettext --disable-win32-registry --enable-version-specific-runtime-libs --enable-threads --enable-newlib-io-c99-formats --enable-languages="c,c++" make all install rm -rf * ../gdb-7.3.1/configure --target=m68k-rtems4.10.2 --prefix=/usr/local/rtems/rtems-4.10.2 make all install rm -rf * ../gdb-7.3.1/configure --target=i386-rtems4.10.2 --prefix=/usr/local/rtems/rtems-4.10.2 make all install rm -rf * cd .. rmdir build # RTEMS cd ~/rtems wget ftp://www.rtems.org/pub/rtems/4.10.2/rtems-4.10.2.tar.bz2 wget ftp://www.rtems.org/pub/rtems/4.10.2/rtems-addon-packages-4.10.2.tar.bz2 tar xfj rtems-4.10.2.tar.bz2 tar xfj rtems-addon-packages-4.10.2.tar.bz2 mkdir build cd build ../rtems-4.10.2/configure --target=m68k-rtems4.10.2 --prefix=/usr/local/rtems/rtems-4.10.2 --enable-cxx --disable-rdbg --disable-tests --enable-networking --enable-posix --enable-rtemsbsp=uC5282 make all install rm -rf * ../rtems-4.10.2/configure --target=i386-rtems4.10.2 --prefix=/usr/local/rtems/rtems-4.10.2 --enable-cxx --enable-rdbg --disable-tests --enable-networking --enable-posix --enable-rtemsbsp=pc386 make all install rm -rf * cd .. cd rtems-addon-packages-4.10.2 setenv RTEMS_MAKEFILE_PATH /usr/local/rtems/rtems-4.10.2/m68k-rtems4.10.2/uC5282 sh bit setenv RTEMS_MAKEFILE_PATH /usr/local/rtems/rtems-4.10.2/i386-rtems4.10.2/pc386 sh bit cd .. # Extended BSP Routines # See http://www.slac.stanford.edu/~strauman/rtems/software.html wget http://www.slac.stanford.edu/~strauman/rtems/ssrlapps-R_libbspExt_1_6.tgz tar xfz ssrlapps-R_libbspExt_1_6.tgz cd build ../ssrlapps-R_libbspExt_1_6/configure --with-rtems-top=/usr/local/rtems/rtems-4.10.2 --enable-std-rtems-installdirs make all install rm -rf * cd .. rmdir build