From owner-svn-soc-all@FreeBSD.ORG Wed Jun 25 11:18:40 2014 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id D8BFCB56 for ; Wed, 25 Jun 2014 11:18:40 +0000 (UTC) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C2A4B2A8E for ; Wed, 25 Jun 2014 11:18:40 +0000 (UTC) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.14.8/8.14.8) with ESMTP id s5PBIeUx025102 for ; Wed, 25 Jun 2014 11:18:40 GMT (envelope-from estaszuk@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.14.8/8.14.8/Submit) id s5PBIeNk024973 for svn-soc-all@FreeBSD.org; Wed, 25 Jun 2014 11:18:40 GMT (envelope-from estaszuk@FreeBSD.org) Date: Wed, 25 Jun 2014 11:18:40 GMT Message-Id: <201406251118.s5PBIeNk024973@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to estaszuk@FreeBSD.org using -f From: estaszuk@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r270016 - soc2014/estaszuk/microblaze-head/head/microblaze-gcc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Jun 2014 11:18:41 -0000 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" "" +