123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- #!/bin/sh
- #
- # A script to build the crossutils for a set of platforms.
- # Note:cygwin seems to like to have all platforms qualified.
- #
- BASE=~
- # where to store the built tree of binutils?
- DESTDIR=${BASE}/cross
- # directory where logs go
- LOGDIR=${BASE}/logs
- # where can I decrunch and build?
- WORKDIR=${BASE}/buildme
- # 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 mingw32 msdosdjgpp"
- 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
- #
- #
- #
- #
- LD_FLAGS="${LD_FLAGS} -static"
- LDFLAGS="${LD_FLAGS} -s"
- CFLAGS="${CFLAGS} -static"
- CPPFLAGS="${CPPFLAGS} -static"
- 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%/}/
- LOGDIR=${LOGDIR%/}/
- BINUTILSPATH=${BINUTILSPATH%/}/
- BINUTILSARCHIVE=${BINUTILSPATH}${BINUTILSBASE}-${BINUTILSVERSION}
- MAKE=make
- #
- # Make sure they exist
- #
-
- mkdir -p $DESTDIR
- mkdir -p $WORKDIR
- mkdir -p $LOGDIR
- #
- # 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
- #
- cd ${WORKDIR}
- if [ ! -d ${WORKDIR}${BINUTILSBASE}-${BINUTILSVERSION} ]; then
- if [ $BINUTILS_GZIP = "no" ]; then
- bzip2 -dc $BINUTILSARCHIVE |tar xvf - > ${LOGDIR}log-extract
- else
- tar xvzf $BINUTILSARCHIVE > ${LOGDIR}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 --disable-nls --disable-shared --target=$a --prefix=${DESTDIR} && ${MAKE} $(EXTRAOPT) && ${MAKE} install && ${MAKE} clean; } > ${LOGDIR}log-${a} 2>&1
- if [ ! $? = 0 ]; then
- echo $a FAILES!
- FAILURES="${FAILURES} ${a}"
- fi
- fi
- done;
- echo Failed targets: ${FAILURES}
|