X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=contrib%2Fgcc_build;h=b36685eeea3f08a5db3ab1d089b01c51ec9ec042;hb=47378effb1f5d67a692a5c56272c4bce1d8eb1ae;hp=27d7f007b328b9fce69bb9b769686623cf1f269e;hpb=931ced768a14ab77a066fbfbcb69b8c95fd0a04e;p=pf3gnuchains%2Fgcc-fork.git diff --git a/contrib/gcc_build b/contrib/gcc_build index 27d7f007b32..b36685eeea3 100755 --- a/contrib/gcc_build +++ b/contrib/gcc_build @@ -2,29 +2,29 @@ ######################################################################## # -# File: build-gcc.sh +# File: gcc_build # Author: Mark Mitchell # Date: 07/10/2000 # # Contents: # Script to automatically download and build GCC. # -# Copyright (c) 2000 Free Software Foundation. +# Copyright (c) 2000, 2001, 2003 Free Software Foundation. # -# This file is part of GNU CC. +# This file is part of GCC. # -# GNU CC is free software; you can redistribute it and/or modify +# GCC is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # -# GNU CC is distributed in the hope that it will be useful, +# GCC is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNU CC; see the file COPYING. If not, write to +# along with GCC; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # @@ -37,6 +37,12 @@ # If you are using password-based CVS, you must manually log in, and # not log out from, the CVS server before running this script. +# You can set the following variables in the environment. They +# have no corresponding command-line options because they should +# only be needed infrequently: +# +# MAKE The path to `make'. + ######################################################################## # Functions ######################################################################## @@ -55,12 +61,16 @@ usage() { cat <&1 || \ + echo "Configuring: ${DESTINATION}/configure ${CONFIGURE_OPTIONS}" + eval ${DESTINATION}/configure ${CONFIGURE_OPTIONS} || \ error "Could not configure the compiler" +} + +# Bootstrap GCC. Assume configuration has already occurred. + +bootstrap_gcc() { + # Go to the source directory. + changedir ${DESTINATION} + # Go to the object directory. + changedir ${OBJDIR} # Bootstrap the compiler - (eval make ${MAKE_OPTIONS} bootstrap | - tee -a ${LOGFILE}) 2>&1 || \ - error "Could not build the compiler" + echo "Building: ${MAKE} ${MAKE_BOOTSTRAP_OPTIONS} bootstrap" + eval ${MAKE} ${MAKE_BOOTSTRAP_OPTIONS} bootstrap || \ + error "Could not bootstrap the compiler" } # Test GCC. @@ -156,8 +175,8 @@ test_gcc() { changedir ${OBJDIR} echo "Running tests... This will take a while." - (make -k check | tee -a ${LOGFILE}) 2>&1 - (${DESTINATION}/contrib/test_summary | tee -a ${LOGFILE}) + eval \${MAKE} -k ${MAKE_CHECK_OPTIONS} check + ${DESTINATION}/contrib/test_summary } # Export the GCC source tree. @@ -167,7 +186,7 @@ export_gcc() { changedir ${DESTINATION} # Go up one level. changedir .. - # Build a tarbal off the source directory. + # Build a tarball of the source directory. tar czf ${TARFILE} \ --exclude=${OBJDIR} \ --exclude=CVS \ @@ -184,14 +203,15 @@ install_gcc() { # Go to the object directory. changedir ${OBJDIR} - make install > ${LOGFILE} 2>&1 || \ - error "Installation failed" + ${MAKE} install || error "Installation failed" } ######################################################################## # Initialization ######################################################################## +# CVS command +GCC_CVS=${GCC_CVS-${CVS-cvs}} # The CVS server containing the GCC repository. CVS_SERVER="gcc.gnu.org" # The path to the repository on that server. @@ -207,19 +227,22 @@ DESTINATION="${HOME}/dev/gcc" # object directory. OBJDIR="objdir" -# The file where information will be logged. -LOGFILE=${HOME}/build-gcc.$$.log # The file where the tarred up sources will be placed. TARFILE="${HOME}/dev/gcc.tgz" # Options to pass to configure. CONFIGURE_OPTIONS= -# Options to pass to make. -MAKE_OPTIONS= +# The `make' program. +MAKE=${MAKE:-make} +# Options to pass to "make bootstrap". +MAKE_BOOTSTRAP_OPTIONS= +# Options to pass to "make check". +MAKE_CHECK_OPTIONS= # Modes of operation -BUILD=0 +BOOTSTRAP=0 CHECKOUT=0 +CONFIGURE=0 EXPORT=0 INSTALL=0 TEST=0 @@ -230,14 +253,16 @@ UPDATE=0 ######################################################################## # Parse the options. -while getopts "c:d:m:t:" ARG; do +while getopts "c:d:m:o:p:t:u:x:" ARG; do case $ARG in c) CONFIGURE_OPTIONS="${OPTARG}";; d) DESTINATION="${OPTARG}";; - m) MAKE_OPTIONS="${OPTARG}";; - u) CVS_USERNAME="${OPTARG}";; + m) MAKE_BOOTSTRAP_OPTIONS="${OPTARG}";; + o) OBJDIR="${OPTARG}";; p) CVS_PROTOCOL="${OPTARG}";; - t) CVS_TARGFILE="${OPTARG}";; + t) TARFILE="${OPTARG}";; + x) MAKE_CHECK_OPTIONS="${OPTARG}";; + u) CVS_USERNAME="${OPTARG}";; \?) usage;; esac done @@ -246,8 +271,10 @@ shift `expr ${OPTIND} - 1` # Handle the major modes. while [ $# -ne 0 ]; do case $1 in - build) BUILD=1;; + bootstrap) BOOTSTRAP=1;; + build) CONFIGURE=1; BOOTSTRAP=1;; checkout) CHECKOUT=1;; + configure) CONFIGURE=1;; export) EXPORT=1;; install) INSTALL=1;; test) TEST=1;; @@ -262,11 +289,6 @@ if [ ${CHECKOUT} -ne 0 ] && [ ${UPDATE} -ne 0 ]; then error "Cannot checkout and update simultaneously" fi -# Remove any old logfiles. -rm -f ${LOGFILE} -# Tell the user where to find the logfile. -echo "gcc_build: The logfile for this run is ${LOGFILE}" - # Checkout the tree. if [ ${CHECKOUT} -ne 0 ]; then checkout_gcc @@ -274,9 +296,14 @@ elif [ ${UPDATE} -ne 0 ]; then update_gcc fi -# Build the compiler. -if [ ${BUILD} -ne 0 ]; then - build_gcc +# Configure to build the tree. +if [ ${CONFIGURE} -ne 0 ]; then + configure_gcc +fi + +# Bootstrap the compiler. +if [ ${BOOTSTRAP} -ne 0 ]; then + bootstrap_gcc fi # Test the compiler