Date: Wed, 25 Jun 2014 11:18:40 GMT From: estaszuk@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r270016 - soc2014/estaszuk/microblaze-head/head/microblaze-gcc Message-ID: <201406251118.s5PBIeNk024973@socsvn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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@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" "" +
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201406251118.s5PBIeNk024973>