socsvn commit: r270016 - soc2014/estaszuk/microblaze-head/head/microblaze-gcc
estaszuk at FreeBSD.org
estaszuk at FreeBSD.org
Wed Jun 25 11:18:41 UTC 2014
Author: estaszuk
Date: Wed Jun 25 11:18:39 2014
New Revision: 270016
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=270016
Log:
Script for building crosscompiler
Added:
soc2014/estaszuk/microblaze-head/head/microblaze-gcc/
soc2014/estaszuk/microblaze-head/head/microblaze-gcc/build-toolchain.sh (contents, props changed)
Added: soc2014/estaszuk/microblaze-head/head/microblaze-gcc/build-toolchain.sh
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ soc2014/estaszuk/microblaze-head/head/microblaze-gcc/build-toolchain.sh Wed Jun 25 11:18:39 2014 (r270016)
@@ -0,0 +1,155 @@
+#!/usr/local/bin/bash
+
+##
+# Script to build GCC for microblaze.
+# Written by Martijn Koedam (m.l.p.j.koedam at tue.nl)
+#
+# Current version is testing on ubuntu 11.04, 11.10 and 12.04
+##
+
+TARGET=microblaze-xilinx-elf
+PROGRAM_PREFIX=mb-
+
+BUILD_DIR=build
+INSTALL_DIR=$PWD/install
+
+CORES=2
+
+GCC_URL=ftp://ftp.nluug.nl/mirror/languages/gcc/releases/gcc-4.9.0/gcc-4.9.0.tar.bz2
+NEWLIB_URL=ftp://sources.redhat.com/pub/newlib/newlib-2.1.0.tar.gz
+BINUTILS_URL=http://ftp.gnu.org/gnu/binutils/binutils-2.24.tar.bz2
+
+GCC_FILE=$(basename $GCC_URL)
+NEWLIB_FILE=$(basename $NEWLIB_URL)
+BINUTILS_FILE=$(basename $BINUTILS_URL)
+
+GCC=${GCC_FILE%.tar.*}
+BINUTILS=${BINUTILS_FILE%.tar.*}
+NEWLIB=${NEWLIB_FILE%.tar.*}
+
+
+
+# target
+# needed for newlib, because of non-standard PROGRAM_PREFIX.
+export CC_FOR_TARGET="$PROGRAM_PREFIX"gcc
+export CXX_FOR_TARGET="$PROGRAM_PREFIX"g++
+export GCC_FOR_TARGET="$PROGRAM_PREFIX"gcc
+export AR_FOR_TARGET="$PROGRAM_PREFIX"ar
+export AS_FOR_TARGET="$PROGRAM_PREFIX"as
+export LD_FOR_TARGET="$PROGRAM_PREFIX"ld
+export NM_FOR_TARGET="$PROGRAM_PREFIX"nm
+export RANLIB_FOR_TARGET="$PROGRAM_PREFIX"ranlib
+export STRIP_FOR_TARGET="$PROGRAM_PREFIX"strip
+
+
+function download()
+{
+ if [ ! -f $1 ]
+ then
+ wget -O $1 $2
+ else
+ echo "$1 exists"
+ fi
+}
+
+function extract()
+{
+ if [ ! -d "$BUILD_DIR/$2" ]
+ then
+ tar xf $1 -C $BUILD_DIR
+ fi
+
+ if [ ! -d "$BUILD_DIR/$2" ]
+ then
+ echo "Failed to extract $2 to $1"
+ exit 1
+ fi
+}
+
+function build()
+{
+ pushd $BUILD_DIR
+ pushd $1
+
+ if [ ! -d "build" ]
+ then
+ mkdir "build"
+ pushd "build"
+ else
+ pushd "build"
+ gmake distclean
+ fi
+
+ ../configure --target=$TARGET --program-prefix=$PROGRAM_PREFIX --prefix=$INSTALL_DIR $2
+ if [ $? != 0 ]
+ then
+ echo "Failed to configure"
+ exit 1;
+ fi
+ env
+ gmake -j"$CORES" all$3
+ if [ $? != 0 ]
+ then
+ echo "Failed to build"
+ exit 1;
+ fi
+ gmake install$3
+ if [ $? != 0 ]
+ then
+ echo "Failed to install"
+ exit 1;
+ fi
+
+ popd
+ popd
+ popd
+}
+
+function gcc_dependencies()
+{
+
+ pushd $BUILD_DIR
+ pushd $1
+ ./contrib/download_prerequisites
+ popd
+ popd
+}
+
+if [ ! -d $BUILD_DIR ]
+then
+ mkdir $BUILD_DIR
+fi
+
+if [ ! -d $INSTALL_DIR ]
+then
+ mkdir $INSTALL_DIR
+fi
+
+
+#download files.
+echo "Downloading"
+download "$GCC_FILE" "$GCC_URL"
+download "$NEWLIB_FILE" "$NEWLIB_URL"
+download "$BINUTILS_FILE" "$BINUTILS_URL"
+
+echo "Building binutils"
+extract "$BINUTILS_FILE" "$BINUTILS"
+build $BINUTILS "" ""
+
+# put results into PATH.
+export PATH=$PATH:$INSTALL_DIR/bin/
+
+echo "Building gcc-stage1"
+extract "$GCC_FILE" "$GCC"
+gcc_dependencies "$GCC"
+build $GCC "--enable-languages=c --disable-nls --without-headers --disable-multilib --disable-libssp --with-newlib" "-host"
+
+echo "Building newlib"
+extract "$NEWLIB_FILE" "$NEWLIB"
+build $NEWLIB "--enable-newlib-hw-fp" ""
+
+
+echo "Building gcc,g++ stage2"
+extract "$GCC_FILE" "$GCC"
+build $GCC "--enable-languages=c,c++ --disable-nls --without-headers --disable-multilib --disable-libssp --with-newlib" ""
+
More information about the svn-soc-all
mailing list