From 178372c982b3cb2d72db3a6053056fc2f0436f4f Mon Sep 17 00:00:00 2001 From: marco Date: Fri, 3 Oct 2003 21:51:26 +0000 Subject: [PATCH] * First version. --- install/cross/buildcrossbinutils | 158 +++++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 install/cross/buildcrossbinutils diff --git a/install/cross/buildcrossbinutils b/install/cross/buildcrossbinutils new file mode 100644 index 0000000000..c474a1829f --- /dev/null +++ b/install/cross/buildcrossbinutils @@ -0,0 +1,158 @@ +#!/bin/sh + +# +# A script to build the crossutils for a set of platforms. +# + +# where to store the built tree of binutils? +DESTDIR=~/cross + +# where can I decrunch and build? +WORKDIR=~/bintst1 + +# where is the binutils archive? +BINUTILSPATH=~/ + +# what is it's base name? +BINUTILSBASE=binutils + +# what is the version part of the archive? +BINUTILSVERSION=2.14 + +# is binutils archive gz or bz2? +BINUTILS_GZIP=no + +# what i6868 platform do you want/need to build for? +MYINTEL=i686 + +# target info, OSes per processor with "WIN" as special case + +BSD="freebsd netbsd openbsd" +TARGETS_WIN="cygwin mingw" +TARGETS_I386="${BSD} linux solaris darwin" +TARGETS_POWERPC="${BSD} linux darwin" +TARGETS_SPARC="${BSD} linux solaris" +#TARGETS_M68k= + +# I use the below because my default system is dual proc. +#EXTRAOPT=j 4 + +########################################################################### +# don't edit below +# +# +# +# + +export LD_FLAGS="${LD_FLAGS} -static" +export CFLAGS="${CFLAGS} -static" +export CPPFLAGS="${CPPFLAGS} -static" +export CXXFLAGS="${CXXFLAGS} -static" + + +# +# Make a list of targets +# + +TARGETS="" + +for OS in ${TARGETS_WIN}; do +TARGETS="${TARGETS} ${MYINTEL}-${OS}" +done; + +for OS in ${TARGETS_I386}; do +TARGETS="${TARGETS} ${MYINTEL}-${OS}" +done; + + +for OS in ${TARGETS_POWERPC}; do +TARGETS="${TARGETS} powerpc-${OS}" +done; + +for OS in ${TARGETS_SPARC}; do +TARGETS="${TARGETS} sparc-${OS}" +done; + +for OS in ${TARGETS_M68K}; do +TARGETS="${TARGETS} m68k-${OS}" +done; + +# +# force slash +# + +DESTDIR=${DESTDIR%/}/ +WORKDIR=${WORKDIR%/}/ +BINUTILSPATH=${BINUTILSPATH%/}/ +BINUTILSARCHIVE=${BINUTILSPATH}${BINUTILSBASE}-${BINUTILSVERSION} +MAKE=make + +# +# BSD? -> gmake +# + +SYSTEM=`uname -s` + +case "$SYSTEM" in + *BSD*) MAKE=gmake + ;; + *bsd*) MAKE=gmake + ;; +esac + +# +# tar.gz or .tar.bz2 ? +# + +if [ $BINUTILS_GZIP = "no" ] ; then +BINUTILSARCHIVE=${BINUTILSARCHIVE}.tar.bz2 +else +BINUTILSARCHIVE=${BINUTILSARCHIVE}.tar.gz +fi + +# +# depack or clean dir +# + +mkdir -p $DESTDIR +mkdir -p $WORKDIR +cd ${WORKDIR} + +if [ ! -d ${WORKDIR}${BINUTILSBASE}-${BINUTILSVERSION} ]; then +if [ $BINUTILS_GZIP = "no" ]; then +bzip2 -dc $BINUTILSARCHIVE |tar xvf - > ~/log-extract +else +tar xvzf $BINUTILSARCHIVE > ~/log-extract +fi + +if [ ! $? = 0 ]; then +echo DECRUNCHING OF ${BINUTILSARCHIVE} failed +exit +fi +else +echo It seams that you already have a build directory. Skipping. +cd ${WORKDIR}${BINUTILSBASE}-${BINUTILSVERSION} +${MAKE} clean >/dev/null +fi + + +cd ${WORKDIR}${BINUTILSBASE}-${BINUTILSVERSION} + +# +# build loop. +# + +FAILURES="" +for a in $TARGETS; do +if [ ! -f ${DESTDIR}bin/${a}-as ] ; then +echo Building $a +{ ./configure --target=$a --prefix=${DESTDIR} && ${MAKE} $(EXTRAOPT) && ${MAKE} install && ${MAKE} clean; } > ${WORKDIR}log-${a} 2>&1 + +if [ ! $? = 0 ]; then +echo $a FAILES! +FAILURES="${FAILURES} ${a}" +fi +fi +done; + +echo Failed targets: ${FAILURES}