Browse Source

* First version.

marco 22 years ago
parent
commit
178372c982
1 changed files with 158 additions and 0 deletions
  1. 158 0
      install/cross/buildcrossbinutils

+ 158 - 0
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}