#!/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