#!/bin/sh
# the root of all, but using it is optional.
CROSSTOOLSROOT=~/building
CROSSTOOLSROOT=${CROSSTOOLSROOT%/}/
# Some paths.
# place where the 1.1.x CVS checkout is
FPCCVS=${CROSSTOOLSROOT}cvs/devel/fpc
# place where the script should store the cross-snapshot
DESTDIR=${CROSSTOOLSROOT}/destination
# place where cross archives (.a files) are stored
BASELIBDIR=${CROSSTOOLSROOT}crosslibs
# Place where logs are generated.
LOGDIR=${CROSSTOOLSROOT}logs
# Type of my mainprocessor.
MYINTEL=i686
EXTRAOPT=-gl
# OSes and CPUs
TARGETS_OS="linux freebsd linux win32 go32v2 netbsd openbsd solaris darwin"
TARGETS_CPU="i386 powerpc sparc"
###########################################################################
# don't edit below
#
#
#
#
MYHOSTARCH=`uname -p | tr "[:upper:]" "[:lower:]"`
MYHOSTOS=`uname -s | tr "[:upper:]" "[:lower:]"`
echo HOST platform is ${MYHOSTARCH}-${MYHOSTOS}
#
#
# force slash
#
FPCCVS=${FPCCVS%/}/
DESTDIR=${DESTDIR%/}/
LOGDIR=${LOGDIR%/}/
BASELIBDIR=${BASELIBDIR%/}/
#
# BSD? -> ${MAKE}
#
MAKE=make
case "$MYHOSTOS" in
*BSD*) MAKE=gmake
;;
*bsd*) MAKE=gmake
;;
esac
#
# Setup dirs
#
mkdir -p ${DESTDIR}
mkdir -p ${LOGDIR}
#
# Real build starts here
#
cd ${FPCCVS}
FAILURES=""
for CPU in $TARGETS_CPU; do
# CPU xlat. translate from FPC cpu designation to binutil's;
MCPU=${CPU}
if [ "${CPU}" = "i386" ]; then
MCPU=${MYINTEL}
fi
for OS in $TARGETS_OS; do
# xlat for OS
MOS=${OS}
if [ "${OS}" = "sunos" ]; then
MOS=solaris
fi
if [ "${OS}" = "win32" ]; then
MOS=cygwin
fi
if [ "${OS}" = "go32v2" ]; then
MOS=msdosdjgpp
fi
dothisbuild=1
if [ "${CPU}" = "${MYHOSTARCH}" ]; then
if [ "${OS}" = "${MYHOSTOS}" ]; then
dothisbuild=0
fi
fi
if [ $dothisbuild -eq 1 ]; then
echo Building ${CPU}-${OS}
if [ -f ${CROSSTOOLSROOT}bin/${MCPU}-${MOS}-as ]; then
${MAKE} clean all LIBDIR=${BASELIBDIR}/${MCPU}-${MOS} CROSSBINDIR=${CROSSTOOLSROOT}bin OS_TARGET=${OS} CPU_TARGET=${CPU} BINUTILSPREFIX=${MCPU}-${MOS}- OPT="-Xd -Xt ${EXTRAOPT}" > ${LOGDIR}snapbuild-${CPU}-${OS} 2>&1
else
echo can''t find binutils-${MCPU}-${OS} for FPC-${CPU}-${OS}
fi
if [ ! $? = 0 ]; then
echo ${CPU}-${OS} FAILES
FAILURES="${FAILURES} ${CPU}-${OS}"
else
mkdir -p ${DESTDIR}
${MAKE} install INSTALL_PREFIX=${DESTDIR} LIBDIR=${BASELIBDIR}/${MCPU}-${MOS} CROSSBINDIR=${CROSSTOOLSROOT}bin OS_TARGET=${OS} CPU_TARGET=${CPU} BINUTILSPREFIX=${MCPU}-${MOS}- OPT="-Xd -Xt ${EXTRAOPT}" > ${LOGDIR}snapinstalllog-${CPU}-${OS} 2>&1
fi
fi
done;
done;
if [ -n ${FAILURES} ]; then
echo platforms failed: ${FAILURES}
fi
syntax highlighted by Code2HTML, v. 0.9.1