1*36ac495dSmrg#! /bin/sh 2*36ac495dSmrg 3*36ac495dSmrg# Build a GCC compiler, using environment variables defined by several 4*36ac495dSmrg# reghunt scripts and config files. 5*36ac495dSmrg# 6*36ac495dSmrg# This doesn't work for sources earlier than about 2003-02-25. 7*36ac495dSmrg# 8*36ac495dSmrg# Copyright (C) 2007 Free Software Foundation. 9*36ac495dSmrg# 10*36ac495dSmrg# This file is free software; you can redistribute it and/or modify 11*36ac495dSmrg# it under the terms of the GNU General Public License as published by 12*36ac495dSmrg# the Free Software Foundation; either version 3 of the License, or 13*36ac495dSmrg# (at your option) any later version. 14*36ac495dSmrg# 15*36ac495dSmrg# This program is distributed in the hope that it will be useful, 16*36ac495dSmrg# but WITHOUT ANY WARRANTY; without even the implied warranty of 17*36ac495dSmrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*36ac495dSmrg# GNU General Public License for more details. 19*36ac495dSmrg# 20*36ac495dSmrg# For a copy of the GNU General Public License, write the the 21*36ac495dSmrg# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 22*36ac495dSmrg# Boston, MA 02111-1301, USA. 23*36ac495dSmrg 24*36ac495dSmrgID="${1}" 25*36ac495dSmrgLOGDIR=${REG_BUILDDIR}/logs/${BUGID}/${ID} 26*36ac495dSmrgmkdir -p $LOGDIR 27*36ac495dSmrg 28*36ac495dSmrgmsg() { 29*36ac495dSmrg echo "`date` ${1}" 30*36ac495dSmrg} 31*36ac495dSmrg 32*36ac495dSmrgabort() { 33*36ac495dSmrg msg "${1}" 34*36ac495dSmrg exit 1 35*36ac495dSmrg} 36*36ac495dSmrg 37*36ac495dSmrgmsg "building $REG_COMPILER for id $ID" 38*36ac495dSmrg 39*36ac495dSmrgrm -rf $REG_OBJDIR 40*36ac495dSmrgmkdir $REG_OBJDIR 41*36ac495dSmrgcd $REG_OBJDIR 42*36ac495dSmrg 43*36ac495dSmrg#msg "configure" 44*36ac495dSmrg${REG_GCCSRC}/configure \ 45*36ac495dSmrg --prefix=$REG_PREFIX \ 46*36ac495dSmrg --enable-languages=$REG_LANGS \ 47*36ac495dSmrg $REG_CONFOPTS \ 48*36ac495dSmrg > configure.log 2>&1 || abort " configure failed" 49*36ac495dSmrg 50*36ac495dSmrg#msg "make libraries" 51*36ac495dSmrgmake all-build-libiberty > ${LOGDIR}/make.all-build-libiberty.log 2>&1 || true 52*36ac495dSmrgmake all-libcpp > ${LOGDIR}/make.all-libcpp.log 2>&1 || true 53*36ac495dSmrgmake all-libdecnumber > ${LOGDIR}/make.all-libdecnumber.log 2>&1 || true 54*36ac495dSmrgmake all-intl > ${LOGDIR}/make.all-intl.log 2>&1 || true 55*36ac495dSmrgmake all-libbanshee > ${LOGDIR}/make.all-libbanshee.log 2>&1 || true 56*36ac495dSmrgmake configure-gcc > ${LOGDIR}/make.configure-gcc.log 2>&1 || true 57*36ac495dSmrg 58*36ac495dSmrg# hack for 3.3 branch 59*36ac495dSmrgif [ ! -f libiberty/libiberty.a ]; then 60*36ac495dSmrg if [ -d libiberty ]; then 61*36ac495dSmrg # another hack for 3.2! 62*36ac495dSmrg cd libiberty 63*36ac495dSmrg make > ${LOGDIR}/make.libiberty.log 2>&1 || true 64*36ac495dSmrg cd .. 65*36ac495dSmrg else 66*36ac495dSmrg mkdir -p libiberty 67*36ac495dSmrg cd libiberty 68*36ac495dSmrg ln -s ../build-${REG_BLD}/libiberty/libiberty.a . 69*36ac495dSmrg cd .. 70*36ac495dSmrg fi 71*36ac495dSmrgfi 72*36ac495dSmrg 73*36ac495dSmrgcd gcc 74*36ac495dSmrg# REG_COMPILER is cc1, cc1plus, or f951 75*36ac495dSmrg#msg "make $REG_COMPILER" 76*36ac495dSmrgmake $REG_MAKE_J $REG_COMPILER > ${LOGDIR}/make.${REG_COMPILER}.log 2>&1 \ 77*36ac495dSmrg || abort " make failed" 78*36ac495dSmrgmsg "build completed" 79*36ac495dSmrgexit 0 80