mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-23 07:11:29 +02:00
* First version.
This commit is contained in:
parent
d97075a245
commit
178372c982
158
install/cross/buildcrossbinutils
Normal file
158
install/cross/buildcrossbinutils
Normal file
@ -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}
|
Loading…
Reference in New Issue
Block a user