#!/bin/sh # Configuration script for GNU CC # Copyright (C) 1988, 90, 91, 92, 93, 94, 1995 Free Software Foundation, Inc. #This file is part of GNU CC. #GNU CC 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, #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 #the Free Software Foundation, 59 Temple Place - Suite 330, #Boston, MA 02111-1307, USA. # # Shell script to create proper links to machine-dependent files in # preparation for compiling gcc. # # Options: --srcdir=DIR specifies directory where sources are. # --host=HOST specifies host configuration. # --target=TARGET specifies target configuration. # --build=TARGET specifies configuration of machine you are # using to compile GCC. # --prefix=DIR specifies directory to install in. # --local-prefix=DIR specifies directory to put local ./include in. # --gxx-include-dir=DIR specifies directory to put g++ header files in. # --exec-prefix=DIR specifies directory to install executables in. # --with-gnu-ld arrange to work with GNU ld. # --with-gnu-as arrange to work with GAS. # --with-stabs arrange to use stabs instead of host debug format. # --with-elf arrange to use elf instead of host debug format. # --enable-FOO, --enable-FOO=BAR include feature FOO (parameter BAR) # --disable-FOO do not include feature FOO # --nfp assume system has no FPU. # --program-prefix=PREFIX specifies prefix for executable names. # --program-suffix=SUFFIX specifies suffix for executable names. # --program-transform-name=SED-EXPR specifies `sed' expression to # apply to executable names. # # If configure succeeds, it leaves its status in config.status. # If configure fails after disturbing the status quo, # config.status is removed. # progname=$0 # Default --srcdir to the directory where the script is found, # if a directory was specified. # The second sed call is to convert `.//configure' to `./configure'. srcdir=`echo $0 | sed 's|//|/|' | sed 's|/[^/]*$||'` if [ x$srcdir = x$0 ] then srcdir= fi host= # Default prefix to /usr/local. prefix=/usr/local # On systems where GCC is the native compiler, $prefix should be # /usr. But the user can change it with configure --prefix=/foo/bar native_prefix=/usr # local_prefix specifies where to find the directory /usr/local/include # We don't use $(prefix) for this # because we always want GCC to search /usr/local/include # even if GCC is installed somewhere other than /usr/local. # Think THREE TIMES before specifying any other value for this! # DO NOT make this use $prefix! local_prefix=/usr/local # Default is to let the Makefile set exec_prefix from $(prefix) exec_prefix='$(prefix)' # # The default g++ include directory is $(libdir)/g++-include. gxx_include_dir='$(libdir)/g++-include' # Default --program-transform-name to nothing. program_transform_name= program_transform_set= remove=rm hard_link=ln symbolic_link='ln -s' copy=cp # Record all the arguments, to write them in config.status. arguments=$* #for Test #remove="echo rm" #hard_link="echo ln" #symbolic_link="echo ln -s" target= host= build= name1= name2= for arg in $*; do case $next_arg in --srcdir) srcdir=$arg next_arg= ;; --host) host=$arg next_arg= ;; --target) target=$arg next_arg= ;; --build) build=$arg next_arg= ;; --prefix) prefix=$arg native_prefix=$prefix next_arg= ;; --local-prefix) local_prefix=$arg next_arg= ;; --gxx-include-dir) gxx_include_dir=$arg next_arg= ;; --exec-prefix) exec_prefix=$arg next_arg= ;; --program-transform-name) # Double any backslashes or dollar signs in the argument. if [ -n "${arg}" ] ; then program_transform_name="${program_transform_name} -e `echo ${arg} | sed -e 's/\\\\/\\\\\\\\/g' -e 's/\\\$/$$/g'`" fi program_transform_set=yes next_arg= ;; --program-prefix) if [ -n "${arg}" ]; then program_transform_name="${program_transform_name} -e s,^,`echo ${arg} | sed -e 's/\\\\/\\\\\\\\/g' -e 's/\\\$/$$/g'`," fi program_transform_set=yes next_arg= ;; --program-suffix) if [ -n "${arg}" ]; then program_transform_name="${program_transform_name} -e s,\$\$,`echo ${arg} | sed -e 's/\\\\/\\\\\\\\/g' -e 's/\\\$/$$/g'`," fi program_transform_set=yes next_arg= ;; --x-*) next_arg= ;; *) case $arg in -*) if [ x$name1 != x ] then echo "Positional arguments must be last." 1>&2 exit 1 fi ;; esac case $arg in -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) next_arg=--srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=`echo $arg | sed 's/-*s[a-z]*=//'` ;; -host | --host | --hos | --ho) next_arg=--host ;; -host=* | --host=* | --hos=* | --ho=*) host=`echo $arg | sed 's/-*h[a-z]*=//'` ;; -target | --target | --targe | --targ | --tar | --ta | --t) next_arg=--target ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target=`echo $arg | sed 's/-*t[a-z]*=//'` ;; -build | --build | --buil | --bui | --bu | --b) next_arg=--build ;; -build=* | --build=* | --buil=* | --bui=* | --bu=* | --b=*) build=`echo $arg | sed 's/-*b[a-z]*=//'` ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) next_arg=--prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=`echo $arg | sed 's/-*p[a-z]*=//'` native_prefix=$prefix ;; -local-prefix | --local-prefix | --local-prefi | --local-pref | --local-pre \ | --local-pr | --local-p | --local- | --local | --loc | --lo | --l) next_arg=--local-prefix ;; -local-prefix=* | --local-prefix=* | --local-prefi=* | --local-pref=* \ | --local-pre=* | --local-pr=* | --local-p=* | --local-=* | --local=* \ | --loc=* | --lo=* | --l=*) local_prefix=`echo $arg | sed 's/-*l[-a-z]*=//'` ;; -gxx-include-dir | --gxx-include-dir | --gxx-include \ | --gxx-incl | --gxx-inc | --gxx-in | --gxx-i | --gxx- \ | --gxx | --gxx | --gx | --g) next_arg=--gxx-include-dir ;; -gxx-include-dir=* | --gxx-include-dir=* | --gxx-include=* \ | --gxx-incl=* | --gxx-inc=* | --gxx-in=* | --gxx-i=* \ | --gxx-=* | --gxx=* | --gxx=* | --gxx=* | --g=*) gxx_include_dir=`echo $arg | sed 's/-*g[-a-z]*=//'` ;; -exec-prefix | --exec-prefix | --exec-prefi | --exec-pref | --exec-pre \ | --exec-pr | --exec-p | --exec- | --exec | --exe | --ex | --e) next_arg=--exec-prefix ;; -exec-prefix=* | --exec-prefix=* | --exec-prefi=* | --exec-pref=* \ | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* | --exec=* \ | --exe=* | --ex=* | --e=*) exec_prefix=`echo $arg | sed 's/-*e[-a-z]*=//'` ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- | --program-transform \ | --program-transfor | --program-transfo | --program-transf \ | --program-trans | --program-tran | --program-tra \ | --program-tr | --program-t) next_arg=--program-transform-name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* | --program-transfo=* \ | --program-transf=* | --program-trans=* | --program-tran=* \ | --program-tra=* | --program-tr=* | --program-t=*) arg=`echo ${arg} | sed -e 's/^[-a-z_]*=//'` # Double any \ or $ in the argument. if [ -n "${arg}" ] ; then program_transform_name="${program_transform_name} -e `echo ${arg} | sed -e 's/\\\\/\\\\\\\\/g' -e 's/\\\$/$$/g'`" fi program_transform_set=yes ;; -program-prefix | --program-prefix | --program-prefi \ | --program-pref | --program-pre | --program-pr \ | --program-p) next_arg=--program-prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* \ | --program-p=*) arg=`echo ${arg} | sed -e 's/^[-a-z_]*=//'` if [ -n "${arg}" ]; then program_transform_name="${program_transform_name} -e s,^,`echo ${arg} | sed -e 's/\\\\/\\\\\\\\/g' -e 's/\\\$/$$/g'`," fi program_transform_set=yes ;; -program-suffix | --program-suffix | --program-suffi \ | --program-suff | --program-suf | --program-su \ | --program-s) next_arg=--program-suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* \ | --program-s=*) arg=`echo ${arg} | sed -e 's/^[-a-z_]*=//'` if [ -n "${arg}" ]; then program_transform_name="${program_transform_name} -e s,\$\$,`echo ${arg} | sed -e 's/\\\\/\\\\\\\\/g' -e 's/\\\$/$$/g'`," fi program_transform_set=yes ;; -with-gnu-ld | --with-gnu-ld | --with-gnu-l) gnu_ld=yes ;; -gas | --gas | --ga | --g | -with-gnu-as | --with-gnu-as | -with-gnu-a) gas=yes ;; -nfp | --nfp | --nf | --n) nfp=yes ;; -with-stabs | -with-stab | -with-sta | -with-st | -with-s \ | --with-stabs | --with-stab | --with-sta | --with-st | --with-s \ | -stabs | -stab | -sta | -st \ | --stabs | --stab | --sta | --st) stabs=yes ;; -with-elf | -with-el | -with-se \ | --with-elf | --with-el | --with-e \ | -elf | -el | -e \ |--elf | --el | --e) elf=yes ;; -with-* | --with-*) ;; #ignored -without-* | --without-*) ;; #ignored -disable-* | --disable-*) enableopt=`echo ${arg} | sed 's:^-*disable-:enable_:;s:-:_:g'` eval $enableopt=no ;; -enable-* | --enable-*) case "$arg" in *=*) optarg=`echo $arg | sed 's:^[^=]*=::;s:-:_:g'` ;; *) optarg=yes ;; esac enableopt=`echo ${arg} | sed 's:^-*::;s:=.*$::;s:-:_:g'` eval $enableopt="$optarg" ;; -x | --x) ;; # ignored -x-*=* | --x-*=*) ;; # ignored -x-* | --x-*) next_arg=--x-ignored # ignored ;; --he*) ;; # ignored for now (--help) --vers*) ;; # ignored for now (--version) -v | -verb* | --verb*) ;; # ignored for now (--verbose) --program-*) ;; #ignored (--program-prefix, --program-suffix) --c*) ;; #ignored (--cache-file) --q*) ;; #ignored (--quiet) --si*) ;; #ignored (--silent) -*) echo "Invalid option \`$arg'" 1>&2 exit 1 ;; *) # Allow configure HOST TARGET. If just one name is given, it is used # as both unless a host was previously given, in which case it is # just the target. if [ x$name1 != x ] then if [ x$name2 != x ] then echo "More than two configuration names." 1>&2 exit 1 fi name2=$arg elif [ x$host != x ] then name1=$host name2=$arg host= else name1=$arg fi ;; esac esac done if [ x$name1 != x ] then if [ x$name2 = x ] then name2=$name1 fi if [ x$host != x ] then echo "Duplicate specification of host." 1>&2 exit 1 fi if [ x$target != x ] then echo "Duplicate specification of target." 1>&2 exit 1 fi host=$name1 build=$name1 target=$name2 fi # Find the source files, if location was not specified. if [ x$srcdir = x ] then srcdirdefaulted=1 srcdir=. if [ ! -r tree.c ] then srcdir=.. fi fi if [ ! -r ${srcdir}/tree.c ] then if [ x$srcdirdefaulted = x ] then echo "$progname: Can't find compiler sources in \`${srcdir}'" 1>&2 else echo "$progname: Can't find compiler sources in \`.' or \`..'" 1>&2 fi exit 1 fi if [ -r ${srcdir}/config.status ] && [ x$srcdir != x. ] then echo "$progname: \`configure' has been run in \`${srcdir}'" 1>&2 exit 1 fi # Complain if an arg is missing if [ x$build = x ] then # If host was specified, always use it for build also to avoid # confusion. If someone wants a cross compiler where build != host, # then they must specify build explicitly. Since this case is # extremely rare, it does not matter that it is slightly inconvenient. if [ x$host != x ] then build=$host # This way of testing the result of a command substitution is # defined by Posix.2 (section 3.9.1) as well as traditional shells. elif build=`${srcdir}/config.guess` then echo "This appears to be a ${build} system." 1>&2 elif [ x$target != x ] then echo 'Config.guess failed to determine the host type. Defaulting to target.' build=$target else echo 'Config.guess failed to determine the host type. You need to specify one.' 1>&2 echo "\ Usage: `basename $progname` [--host=HOST] [--build=BUILD] [--prefix=DIR] [--gxx-include-dir=DIR] [--local-pref=DIR] [--exec-pref=DIR] [--with-gnu-as] [--with-gnu-ld] [--with-stabs] [--with-elf] [--nfp] TARGET" 1>&2 echo "Where HOST, TARGET and BUILD are three-part configuration names " 1>&2 if [ -r config.status ] then tail +2 config.status 1>&2 fi exit 1 fi fi # If $host was not specified, use $build. if [ x$host = x ] then host=$build fi # If $target was not specified, use $host. if [ x$target = x ] then target=$host fi build_xm_file= host_xm_file= host_xmake_file= host_broken_install= host_install_headers_dir=install-headers-tar host_truncate_target= # Validate the specs, and canonicalize them. canon_build=`/bin/sh $srcdir/config.sub $build` || exit 1 canon_host=`/bin/sh $srcdir/config.sub $host` || exit 1 canon_target=`/bin/sh $srcdir/config.sub $target` || exit 1 # Decode the host machine, then the target machine. # For the host machine, we save the xm_file variable as host_xm_file; # then we decode the target machine and forget everything else # that came from the host machine. for machine in $canon_build $canon_host $canon_target; do cpu_type= xm_file= tm_file= out_file= xmake_file= tmake_file= extra_headers= extra_passes= extra_parts= extra_programs= extra_objs= extra_gcc_objs= # Set this to force installation and use of collect2. use_collect2= # Set this to override the default target model. target_cpu_default= # Set this to force use of install.sh. broken_install= # Set this to control which fixincludes program to use. fixincludes=fixincludes # Set this to control how the header file directory is installed. install_headers_dir=install-headers-tar # Set this to a non-empty list of args to pass to cpp if the target # wants its .md file passed through cpp. md_cppflags= # Set this if directory names should be truncated to 14 characters. truncate_target= # Set this if gdb needs a dir command with `dirname $out_file` gdb_needs_out_file_path= case $machine in # Support site-specific machine types. *local*) cpu_type=`echo $machine | sed -e 's/-.*//'` rest=`echo $machine | sed -e "s/$cpu_type-//"` xm_file=${cpu_type}/xm-$rest.h tm_file=${cpu_type}/$rest.h if [ -f $srcdir/config/${cpu_type}/x-$rest ] ; \ then xmake_file=${cpu_type}/x-$rest; \ else true; \ fi if [ -f $srcdir/config/${cpu_type}/t-$rest ] ; \ then tmake_file=${cpu_type}/t-$rest; \ else true; \ fi ;; 1750a-*-*) ;; a29k-*-bsd* | a29k-*-sym1*) tm_file=a29k/unix.h xm_file=a29k/xm-unix.h xmake_file=a29k/x-unix tmake_file=a29k/t-a29k use_collect2=yes ;; a29k-*-udi | a29k-*-coff) tmake_file=a29k/t-a29kbare tm_file=a29k/a29k-udi.h ;; a29k-*-vxworks*) tmake_file=a29k/t-vx29k tm_file=a29k/vx29k.h extra_parts="crtbegin.o crtend.o" ;; a29k-*-*) # Default a29k environment. use_collect2=yes ;; alpha-*-openbsd*) tm_file=alpha/openbsd.h xm_file=alpha/xm-openbsd.h # On OpenBSD, the headers are already okay. fixincludes=Makefile.in tmake_file=t-libc-ok xmake_file=x-openbsd ;; alpha-dec-osf[23456789]*) tm_file=alpha/osf2.h if [ x$stabs = xyes ] then tm_file=alpha/gdb-osf2.h fi if [ x$gas != xyes ] then extra_passes="mips-tfile mips-tdump" fi broken_install=yes use_collect2=yes ;; alpha-dec-osf1.2) tm_file=alpha/osf12.h if [ x$stabs = xyes ] then tm_file=alpha/gdb-osf12.h fi if [ x$gas != xyes ] then extra_passes="mips-tfile mips-tdump" fi broken_install=yes use_collect2=yes ;; alpha-*-osf*) if [ x$stabs = xyes ] then tm_file=alpha/gdb.h fi if [ x$gas != xyes ] then extra_passes="mips-tfile mips-tdump" fi broken_install=yes use_collect2=yes ;; alpha-*-winnt3*) tm_file=alpha/win-nt.h xm_file=alpha/xm-winnt.h tmake_file=t-libc-ok xmake_file=winnt/x-winnt extra_objs=oldnames.o extra_gcc_objs="spawnv.o oldnames.o" fixincludes=fixinc.winnt if [ x$gnu_ld != xyes ] then extra_programs=ld.exe fi ;; arm-*-riscix1.[01]*) # Acorn RISC machine (early versions) tm_file=arm/riscix1-1.h use_collect2=yes ;; arm-*-riscix*) # Acorn RISC machine if [ x$gas = xyes ] then tm_file=arm/rix-gas.h else tm_file=arm/riscix.h fi xmake_file=arm/x-riscix tmake_file=arm/t-riscix use_collect2=yes ;; arm-semi-aout | armel-semi-aout) cpu_type=arm tm_file=arm/semi.h tmake_file=arm/t-semi fixincludes=Makefile.in # There is nothing to fix ;; arm-*-*) # generic version ;; c1-convex-*) # Convex C1 cpu_type=convex tm_file=convex/convex1.h use_collect2=yes fixincludes=Makefile.in ;; c2-convex-*) # Convex C2 cpu_type=convex tm_file=convex/convex2.h use_collect2=yes fixincludes=Makefile.in ;; c32-convex-*) cpu_type=convex tm_file=convex/convex32.h # Convex C32xx use_collect2=yes fixincludes=Makefile.in ;; c34-convex-*) cpu_type=convex tm_file=convex/convex34.h # Convex C34xx use_collect2=yes fixincludes=Makefile.in ;; c38-convex-*) cpu_type=convex tm_file=convex/convex38.h # Convex C38xx use_collect2=yes fixincludes=Makefile.in ;; clipper-intergraph-clix*) broken_install=yes cpu_type=clipper xm_file=clipper/xm-clix.h tm_file=clipper/clix.h extra_headers=va-clipper.h extra_parts="crtbegin.o crtend.o" xmake_file=clipper/x-clix install_headers_dir=install-headers-cpio ;; dsp16xx-*) ;; elxsi-elxsi-*) use_collect2=yes ;; # This hasn't been upgraded to GCC 2. # fx80-alliant-*) # Alliant FX/80 # ;; h8300-*-*) cpu_type=h8300 ;; hppa1.1-*-osf*) cpu_type=pa tm_file=pa/pa1-osf.h use_collect2=yes fixincludes=Makefile.in ;; hppa1.0-*-osf*) cpu_type=pa tm_file=pa/pa-osf.h use_collect2=yes fixincludes=Makefile.in ;; hppa1.1-*-bsd*) cpu_type=pa tm_file=pa/pa1.h use_collect2=yes fixincludes=Makefile.in ;; hppa1.0-*-bsd*) cpu_type=pa use_collect2=yes fixincludes=Makefile.in ;; hppa1.0-*-hpux7*) cpu_type=pa xm_file=pa/xm-pahpux.h xmake_file=pa/x-pa-hpux tmake_file=pa/t-pa if [ x$gas = xyes ] then tm_file=pa/pa-gux7.h else tm_file=pa/pa-hpux7.h fi broken_install=yes install_headers_dir=install-headers-cpio use_collect2=yes ;; hppa1.0-*-hpux8.0[0-2]*) cpu_type=pa xm_file=pa/xm-pahpux.h xmake_file=pa/x-pa-hpux tmake_file=pa/t-pa if [ x$gas = xyes ] then tm_file=pa/pa-ghpux.h else tm_file=pa/pa-oldas.h fi broken_install=yes install_headers_dir=install-headers-cpio use_collect2=yes ;; hppa1.1-*-hpux8.0[0-2]*) cpu_type=pa xm_file=pa/xm-pahpux.h xmake_file=pa/x-pa-hpux tmake_file=pa/t-pa if [ x$gas = xyes ] then tm_file=pa/pa1-ghpux.h else tm_file=pa/pa1-oldas.h fi broken_install=yes install_headers_dir=install-headers-cpio use_collect2=yes ;; hppa1.1-*-hpux9* | \ hppa1.1-*-hpux10*) cpu_type=pa xm_file=pa/xm-pahpux.h xmake_file=pa/x-pa-hpux tmake_file=pa/t-pa if [ x$gas = xyes ] then tm_file=pa/pa1-ghpux9.h else tm_file=pa/pa1-hpux9.h fi broken_install=yes install_headers_dir=install-headers-cpio use_collect2=yes ;; hppa1.0-*-hpux9* | \ hppa1.0-*-hpux10*) cpu_type=pa xm_file=pa/xm-pahpux.h xmake_file=pa/x-pa-hpux tmake_file=pa/t-pa if [ x$gas = xyes ] then tm_file=pa/pa-ghpux9.h else tm_file=pa/pa-hpux9.h fi broken_install=yes install_headers_dir=install-headers-cpio use_collect2=yes ;; hppa1.1-*-hpux*) cpu_type=pa xm_file=pa/xm-pahpux.h xmake_file=pa/x-pa-hpux tmake_file=pa/t-pa if [ x$gas = xyes ] then tm_file=pa/pa1-ghpux.h else tm_file=pa/pa1-hpux.h fi broken_install=yes install_headers_dir=install-headers-cpio use_collect2=yes ;; hppa1.0-*-hpux*) cpu_type=pa xm_file=pa/xm-pahpux.h xmake_file=pa/x-pa-hpux tmake_file=pa/t-pa if [ x$gas = xyes ] then tm_file=pa/pa-ghpux.h else tm_file=pa/pa-hpux.h fi broken_install=yes install_headers_dir=install-headers-cpio use_collect2=yes ;; hppa1.1-*-hiux*) cpu_type=pa xm_file=pa/xm-pahpux.h xmake_file=pa/x-pa-hpux tmake_file=pa/t-pa if [ x$gas = xyes ] then tm_file=pa/pa1-ghiux.h else tm_file=pa/pa1-hiux.h fi broken_install=yes install_headers_dir=install-headers-cpio use_collect2=yes ;; hppa1.0-*-hiux*) cpu_type=pa xm_file=pa/xm-pahpux.h xmake_file=pa/x-pa-hpux tmake_file=pa/t-pa if [ x$gas = xyes ] then tm_file=pa/pa-ghiux.h else tm_file=pa/pa-hiux.h fi broken_install=yes install_headers_dir=install-headers-cpio use_collect2=yes ;; hppa*-*-lites*) cpu_type=pa tm_file=pa/pa1.h use_collect2=yes fixincludes=Makefile.in ;; i370-*-mvs*) cpu_type=i370 tm_file=i370/mvs.h xm_file=i370/xm-mvs.h out_file=i370/mvs370.c ;; i[345]86-ibm-aix*) # IBM PS/2 running AIX cpu_type=i386 if [ x$gas = xyes ] then tm_file=i386/aix386.h extra_parts="crtbegin.o crtend.o" tmake_file=i386/t-crtstuff else tm_file=i386/aix386ng.h use_collect2=yes fi xm_file=i386/xm-aix.h xmake_file=i386/x-aix broken_install=yes ;; i486-ncr-sysv4*) # NCR 3000 - i486 running system V.4 cpu_type=i386 xm_file=i386/xm-sysv4.h xmake_file=i386/x-ncr3000 tm_file=i386/sysv4.h extra_parts="crtbegin.o crtend.o" tmake_file=i386/t-crtpic ;; i[345]86-next-*) cpu_type=i386 tm_file=i386/next.h out_file=i386/next.c xm_file=i386/xm-next.h tmake_file=i386/t-next xmake_file=i386/x-next ;; i[345]86-sequent-bsd*) # 80386 from Sequent cpu_type=i386 use_collect2=yes if [ x$gas = xyes ] then tm_file=i386/seq-gas.h else tm_file=i386/sequent.h fi ;; i[345]86-sequent-ptx1*) cpu_type=i386 xm_file=i386/xm-sysv3.h xmake_file=i386/x-sysv3 tm_file=i386/seq-sysv3.h tmake_file=i386/t-crtstuff fixincludes=fixinc.ptx extra_parts="crtbegin.o crtend.o" install_headers_dir=install-headers-cpio broken_install=yes ;; i[345]86-sequent-ptx2* | i[345]86-sequent-sysv*) cpu_type=i386 xm_file=i386/xm-sysv3.h xmake_file=i386/x-sysv3 tm_file=i386/seq2-sysv3.h tmake_file=i386/t-crtstuff extra_parts="crtbegin.o crtend.o" fixincludes=fixinc.ptx install_headers_dir=install-headers-cpio broken_install=yes ;; i386-sun-sunos*) # Sun i386 roadrunner xm_file=i386/xm-sun.h tm_file=i386/sun.h use_collect2=yes ;; i[345]86-*-aout*) cpu_type=i386 tm_file=i386/i386-aout.h tmake_file=i386/t-i386bare ;; i[345]86-*-bsdi* | i[345]86-*-bsd386*) cpu_type=i386 tm_file=i386/bsd386.h xm_file=i386/xm-bsd386.h # tmake_file=t-libc-ok ;; i[345]86-*-bsd*) cpu_type=i386 tm_file=i386/386bsd.h xm_file=i386/xm-bsd386.h # tmake_file=t-libc-ok # Next line turned off because both 386BSD and BSD/386 use GNU ld. # use_collect2=yes ;; i[345]86-*-freebsd*) cpu_type=i386 tm_file=i386/freebsd.h xm_file=i386/xm-freebsd.h # On FreeBSD, the headers are already ok. fixincludes=Makefile.in xmake_file=i386/x-freebsd ;; i[345]86-*-netbsd*) cpu_type=i386 tm_file=i386/netbsd.h xm_file=i386/xm-netbsd.h # On NetBSD, the headers are already okay. fixincludes=Makefile.in tmake_file=t-libc-ok xmake_file=x-netbsd ;; i[345]86-*-openbsd*) cpu_type=i386 tm_file=i386/openbsd.h xm_file=i386/xm-openbsd.h # On OpenBSD, the headers are already okay. fixincludes=Makefile.in tmake_file=t-libc-ok xmake_file=x-openbsd ;; i[345]86-*-coff*) cpu_type=i386 tm_file=i386/i386-coff.h tmake_file=i386/t-i386bare ;; i[345]86-*-gnu*) cpu_type=i386 # GNU supports this CPU; rest done below. ;; i[345]86-*-isc*) # 80386 running ISC system cpu_type=i386 xm_file=i386/xm-isc.h case $machine in i[345]86-*-isc[34]*) xmake_file=i386/x-isc3 ;; *) xmake_file=i386/x-isc ;; esac echo $xmake_file if [ x$gas = xyes -a x$stabs = xyes ] then tm_file=i386/iscdbx.h tmake_file=i386/t-svr3dbx extra_parts="crtbegin.o crtend.o svr3.ifile svr3z.ifile" else tm_file=i386/isccoff.h tmake_file=i386/t-crtstuff extra_parts="crtbegin.o crtend.o" fi install_headers_dir=install-headers-cpio broken_install=yes ;; i[345]86-*-linux*oldld*) # Intel 80386's running Linux cpu_type=i386 # with a.out format using pre BFD linkers xm_file=i386/xm-linux.h xmake_file=x-linux tm_file=i386/linux-oldld.h fixincludes=Makefile.in #On Linux, the headers are ok already. broken_install=yes gnu_ld=yes ;; i[345]86-*-linux*aout*) # Intel 80386's running Linux cpu_type=i386 # with a.out format xm_file=i386/xm-linux.h xmake_file=x-linux tm_file=i386/linux-aout.h fixincludes=Makefile.in #On Linux, the headers are ok already. broken_install=yes gnu_ld=yes ;; i[345]86-*-linux*) # Intel 80386's running Linux cpu_type=i386 # with ELF format xm_file=i386/xm-linux.h xmake_file=x-linux tm_file=i386/linux.h fixincludes=Makefile.in #On Linux, the headers are ok already. broken_install=yes gnu_ld=yes # Don't use it. Linux uses a slightly different one. # The real one comes with the Linux C library. #extra_parts="crtbegin.o crtend.o" ;; i[345]86-go32-msdos | i[345]86-*-go32) cpu_type=i386 tm_file=i386/go32.h ;; i[345]86-*-lynxos*) cpu_type=i386 if [ x$gas = xyes ] then tm_file=i386/lynx.h else tm_file=i386/lynx-ng.h fi xm_file=i386/xm-lynx.h tmake_file=i386/t-i386bare xmake_file=x-lynx ;; i[345]86-*-mach*) cpu_type=i386 tm_file=i386/mach.h # tmake_file=t-libc-ok use_collect2=yes ;; i[345]86-*-osfrose*) # 386 using OSF/rose cpu_type=i386 if [ x$elf = xyes ] then tm_file=i386/osfelf.h use_collect2= else tm_file=i386/osfrose.h use_collect2=yes fi xm_file=i386/xm-osf.h xmake_file=i386/x-osfrose extra_objs=halfpic.o ;; i[345]86-*-sco3.2v4*) # 80386 running SCO 3.2v4 system cpu_type=i386 xm_file=i386/xm-sco.h xmake_file=i386/x-sco4 fixincludes=fixinc.sco broken_install=yes install_headers_dir=install-headers-cpio if [ x$stabs = xyes ] then tm_file=i386/sco4dbx.h tmake_file=i386/t-svr3dbx extra_parts="svr3.ifile svr3z.rfile" else tm_file=i386/sco4.h tmake_file=i386/t-crtstuff extra_parts="crtbegin.o crtend.o" fi ;; i[345]86-*-sco*) # 80386 running SCO system cpu_type=i386 xm_file=i386/xm-sco.h xmake_file=i386/x-sco broken_install=yes install_headers_dir=install-headers-cpio if [ x$stabs = xyes ] then tm_file=i386/scodbx.h tmake_file=i386/t-svr3dbx extra_parts="svr3.ifile svr3z.rfile" else tm_file=i386/sco.h extra_parts="crtbegin.o crtend.o" tmake_file=i386/t-crtstuff fi truncate_target=yes ;; i[345]86-*-solaris2* | i[345]86-*-sunos5*) cpu_type=i386 xm_file=i386/xm-sysv4.h tm_file=i386/sol2.h tmake_file=i386/t-sol2 extra_parts="crt1.o crti.o crtn.o crtbegin.o crtend.o" xmake_file=x-svr4 fixincludes=fixinc.svr4 broken_install=yes ;; i[345]86-*-sysv4*) # Intel 80386's running system V.4 cpu_type=i386 xm_file=i386/xm-sysv4.h if [ x$stabs = xyes ] then tm_file=i386/sysv4gdb.h else tm_file=i386/sysv4.h fi tmake_file=i386/t-crtpic xmake_file=x-svr4 extra_parts="crtbegin.o crtend.o" ;; i[345]86-*-sysv*) # Intel 80386's running system V cpu_type=i386 xm_file=i386/xm-sysv3.h xmake_file=i386/x-sysv3 if [ x$gas = xyes ] then if [ x$stabs = xyes ] then tm_file=i386/svr3dbx.h tmake_file=i386/t-svr3dbx extra_parts="svr3.ifile svr3z.rfile" else tm_file=i386/svr3gas.h extra_parts="crtbegin.o crtend.o" tmake_file=i386/t-crtstuff fi else tm_file=i386/sysv3.h extra_parts="crtbegin.o crtend.o" tmake_file=i386/t-crtstuff fi ;; i386-*-vsta) # Intel 80386's running VSTa kernel xm_file=i386/xm-vsta.h tm_file=i386/vsta.h tmake_file=i386/t-vsta xmake_file=i386/x-vsta ;; i[345]86-*-winnt3*) cpu_type=i386 tm_file=i386/win-nt.h out_file=i386/i386.c xm_file=i386/xm-winnt.h xmake_file=winnt/x-winnt tmake_file=i386/t-winnt extra_objs="winnt.o oldnames.o" extra_gcc_objs="spawnv.o oldnames.o" fixincludes=fixinc.winnt if [ x$gnu_ld != xyes ] then extra_programs=ld.exe fi ;; i860-alliant-*) # Alliant FX/2800 xm_file=i860/xm-fx2800.h xmake_file=i860/x-fx2800 tm_file=i860/fx2800.h tmake_file=i860/t-fx2800 extra_parts="crtbegin.o crtend.o" ;; i860-*-bsd*) if [ x$gas = xyes ] then tm_file=i860/bsd-gas.h else tm_file=i860/bsd.h fi use_collect2=yes ;; i860-*-mach*) xm_file=i860/xm-i860.h tm_file=i860/mach.h tmake_file=t-libc-ok ;; i860-*-osf*) # Intel Paragon XP/S, OSF/1AD xm_file=i860/xm-paragon.h tm_file=i860/paragon.h tmake_file=t-osf broken_install=yes ;; i860-*-sysv3*) xm_file=i860/xm-sysv3.h xmake_file=i860/x-sysv3 tm_file=i860/sysv3.h extra_parts="crtbegin.o crtend.o" ;; i860-*-sysv4*) xm_file=i860/xm-sysv4.h xmake_file=i860/x-sysv4 tm_file=i860/sysv4.h tmake_file=t-svr4 extra_parts="crtbegin.o crtend.o" ;; i960-wrs-vxworks5 | i960-wrs-vxworks5.0*) tmake_file=i960/t-vxworks960 tm_file=i960/vx960.h use_collect2=yes ;; i960-wrs-vxworks5*) tmake_file=i960/t-vxworks960 tm_file=i960/vx960-coff.h use_collect2=yes ;; i960-wrs-vxworks*) tmake_file=i960/t-vxworks960 tm_file=i960/vx960.h use_collect2=yes ;; i960-*-coff*) tmake_file=i960/t-960bare tm_file=i960/i960-coff.h use_collect2=yes ;; i960-*-*) # Default i960 environment. use_collect2=yes ;; m68000-convergent-sysv*) cpu_type=m68k xm_file=m68k/xm-3b1.h tm_file=m68k/ctix.h use_collect2=yes extra_headers=math-68881.h ;; m68000-hp-bsd*) # HP 9000/200 running BSD cpu_type=m68k tm_file=m68k/hp2bsd.h xmake_file=m68k/x-hp2bsd use_collect2=yes extra_headers=math-68881.h ;; m68000-hp-hpux*) # HP 9000 series 300 cpu_type=m68k xm_file=m68k/xm-hp320.h if [ x$gas = xyes ] then xmake_file=m68k/x-hp320g tm_file=m68k/hp310g.h else xmake_file=m68k/x-hp320 tm_file=m68k/hp310.h fi broken_install=yes install_headers_dir=install-headers-cpio use_collect2=yes extra_headers=math-68881.h ;; m68000-sun-sunos3*) cpu_type=m68k tm_file=m68k/sun2.h use_collect2=yes extra_headers=math-68881.h ;; m68000-sun-sunos4*) cpu_type=m68k tm_file=m68k/sun2o4.h use_collect2=yes extra_headers=math-68881.h ;; m68000-att-sysv*) cpu_type=m68k xm_file=m68k/xm-3b1.h if [ x$gas = xyes ] then tm_file=m68k/3b1g.h else tm_file=m68k/3b1.h fi use_collect2=yes extra_headers=math-68881.h ;; m68k-apollo-*) xmake_file=m68k/x-apollo68 tm_file=m68k/apollo68.h use_collect2=yes extra_headers=math-68881.h ;; m68k-altos-sysv*) # Altos 3068 if [ x$gas = xyes ] then xm_file=m68k/xm-altos3068.h tm_file=m68k/altos3068.h else echo "The Altos is supported only with the GNU assembler" 1>&2 exit 1 fi extra_headers=math-68881.h ;; m68k-bull-sysv*) # Bull DPX/2 if [ x$gas = xyes ] then if [ x$stabs = xyes ] then tm_file=m68k/dpx2cdbx.h else tm_file=m68k/dpx2g.h fi else tm_file=m68k/dpx2.h fi xm_file=m68k/xm-m68kv.h xmake_file=m68k/x-dpx2 use_collect2=yes extra_headers=math-68881.h ;; m68k-atari-sysv4*) # Atari variant of V.4. tm_file=m68k/atari.h xm_file=m68k/xm-atari.h tmake_file=t-svr4 extra_parts="crtbegin.o crtend.o" extra_headers=math-68881.h ;; m68k-motorola-sysv*) xm_file=m68k/xm-mot3300.h xmake_file=m68k/x-mot3300 if [ x$gas = xyes ] then tm_file=m68k/mot3300g.h else tm_file=m68k/mot3300.h gdb_needs_out_file_path=yes fi use_collect2=yes extra_headers=math-68881.h ;; m68k-ncr-sysv*) # NCR Tower 32 SVR3 tm_file=m68k/tower-as.h xm_file=m68k/xm-tower.h xmake_file=m68k/x-tower extra_parts="crtbegin.o crtend.o" extra_headers=math-68881.h ;; m68k-plexus-sysv*) tm_file=m68k/plexus.h xm_file=m68k/xm-plexus.h use_collect2=yes extra_headers=math-68881.h ;; m68k-tti-*) tm_file=m68k/pbb.h xm_file=m68k/xm-m68kv.h extra_headers=math-68881.h ;; m68k-crds-unos*) xm_file=m68k/xm-crds.h xmake_file=m68k/x-crds tm_file=m68k/crds.h broken_install=yes use_collect2=yes extra_headers=math-68881.h ;; m68k-cbm-sysv4*) # Commodore variant of V.4. tm_file=m68k/amix.h xm_file=m68k/xm-amix.h xmake_file=m68k/x-amix tmake_file=t-svr4 extra_parts="crtbegin.o crtend.o" extra_headers=math-68881.h ;; m68k-ccur-rtu) tm_file=m68k/ccur-GAS.h xmake_file=m68k/x-ccur extra_headers=math-68881.h use_collect2=yes broken_install=yes ;; m68k-hp-bsd4.4*) # HP 9000/3xx running 4.4bsd tm_file=m68k/hp3bsd44.h xmake_file=m68k/x-hp3bsd44 use_collect2=yes extra_headers=math-68881.h ;; m68k-hp-bsd*) # HP 9000/3xx running Berkeley Unix tm_file=m68k/hp3bsd.h use_collect2=yes extra_headers=math-68881.h ;; m68k-isi-bsd*) if [ x$nfp = xyes ] then tm_file=m68k/isi-nfp.h else tm_file=m68k/isi.h fi use_collect2=yes extra_headers=math-68881.h ;; m68k-hp-hpux7*) # HP 9000 series 300 running HPUX version 7. xm_file=m68k/xm-hp320.h if [ x$gas = xyes ] then xmake_file=m68k/x-hp320g tm_file=m68k/hp320g.h else xmake_file=m68k/x-hp320 tm_file=m68k/hpux7.h fi broken_install=yes install_headers_dir=install-headers-cpio use_collect2=yes extra_headers=math-68881.h ;; m68k-hp-hpux*) # HP 9000 series 300 xm_file=m68k/xm-hp320.h if [ x$gas = xyes ] then xmake_file=m68k/x-hp320g tm_file=m68k/hp320g.h else xmake_file=m68k/x-hp320 tm_file=m68k/hp320.h fi broken_install=yes install_headers_dir=install-headers-cpio use_collect2=yes extra_headers=math-68881.h ;; m68k-sun-mach*) tm_file=m68k/sun3mach.h use_collect2=yes extra_headers=math-68881.h ;; m68k-sony-newsos3*) if [ x$gas = xyes ] then tm_file=m68k/news3gas.h else tm_file=m68k/news3.h fi use_collect2=yes extra_headers=math-68881.h ;; m68k-sony-bsd* | m68k-sony-newsos*) if [ x$gas = xyes ] then tm_file=m68k/newsgas.h else tm_file=m68k/news.h fi use_collect2=yes extra_headers=math-68881.h ;; m68k-next-nextstep2*) tm_file=m68k/next21.h out_file=m68k/next.c xm_file=m68k/xm-next.h tmake_file=m68k/t-next xmake_file=m68k/x-next extra_headers=math-68881.h use_collect2=yes ;; m68k-next-nextstep3*) tm_file=m68k/next.h out_file=m68k/next.c xm_file=m68k/xm-next.h tmake_file=m68k/t-next xmake_file=m68k/x-next extra_headers=math-68881.h ;; m68k-sun-sunos3*) if [ x$nfp = xyes ] then tm_file=m68k/sun3n3.h else tm_file=m68k/sun3o3.h fi use_collect2=yes extra_headers=math-68881.h ;; m68k-sun-sunos*) # For SunOS 4 (the default). if [ x$nfp = xyes ] then tm_file=m68k/sun3n.h else tm_file=m68k/sun3.h fi use_collect2=yes extra_headers=math-68881.h ;; m68k-wrs-vxworks*) tm_file=m68k/vxm68k.h tmake_file=m68k/t-vxworks68 extra_headers=math-68881.h ;; m68k-*-aout*) tmake_file=m68k/t-m68kbare tm_file=m68k/m68k-aout.h extra_headers=math-68881.h ;; m68k-*-coff*) tmake_file=m68k/t-m68kbare tm_file=m68k/m68k-coff.h extra_headers=math-68881.h ;; m68k-*-lynxos*) if [ x$gas = xyes ] then tm_file=m68k/lynx.h else tm_file=m68k/lynx-ng.h fi xm_file=m68k/xm-lynx.h xmake_file=x-lynx tmake_file=m68k/t-lynx extra_headers=math-68881.h ;; m68k-*-netbsd*) cpu_type=m68k tm_file=m68k/netbsd.h xm_file=m68k/xm-netbsd.h # On NetBSD, the headers are already okay. fixincludes=Makefile.in tmake_file=t-libc-ok xmake_file=x-netbsd ;; m68k-*-openbsd*) cpu_type=m68k tm_file=m68k/openbsd.h xm_file=m68k/xm-openbsd.h # On OpenBSD, the headers are already okay. fixincludes=Makefile.in tmake_file=t-libc-ok xmake_file=x-openbsd ;; m68k-*-sysv3*) # Motorola m68k's running system V.3 xm_file=m68k/xm-m68kv.h xmake_file=m68k/x-m68kv extra_parts="crtbegin.o crtend.o" extra_headers=math-68881.h ;; m68k-*-sysv4*) # Motorola m68k's running system V.4 tm_file=m68k/m68kv4.h xm_file=m68k/xm-m68kv.h tmake_file=t-svr4 extra_parts="crtbegin.o crtend.o" extra_headers=math-68881.h ;; m68k-*-linux*aout*) # Motorola m68k's running Linux xm_file=m68k/xm-linux.h # with a.out format xmake_file=x-linux tm_file=m68k/linux-aout.h tmake_file=m68k/t-linux fixincludes=Makefile.in #On Linux, the headers are ok already. extra_headers=math-68881.h gnu_ld=yes ;; m68k-*-linux*) # Motorola m68k's running Linux xm_file=m68k/xm-linux.h # with ELF format xmake_file=x-linux tm_file=m68k/linux.h tmake_file=m68k/t-linux fixincludes=Makefile.in #On Linux, the headers are ok already. extra_headers=math-68881.h gnu_ld=yes # Don't use it. Linux uses a slightly different one. # The real one comes with the Linux C library. #extra_parts="crtbegin.o crtend.o" ;; m88k-dg-dgux*) case $machine in m88k-dg-dguxbcs*) tm_file=m88k/dguxbcs.h xmake_file=m88k/x-dguxbcs ;; *) tm_file=m88k/dgux.h xmake_file=m88k/x-dgux ;; esac extra_parts="crtbegin.o bcscrtbegin.o crtend.o m88kdgux.ld" broken_install=yes if [ x$gas = xyes ] then tmake_file=m88k/t-dgux-gas else tmake_file=m88k/t-dgux fi fixincludes=fixinc.dgux ;; m88k-dolphin-sysv3*) tm_file=m88k/dolph.h extra_parts="crtbegin.o crtend.o" xm_file=m88k/xm-sysv3.h xmake_file=m88k/x-dolph if [ x$gas = xyes ] then tmake_file=m88k/t-m88k-gas fi ;; m88k-tektronix-sysv3) tm_file=m88k/tekXD88.h extra_parts="crtbegin.o crtend.o" xm_file=m88k/xm-sysv3.h xmake_file=m88k/x-tekXD88 if [ x$gas = xyes ] then tmake_file=m88k/t-m88k-gas fi ;; m88k-*-aout*) cpu_type=m88k tm_file=m88k/m88k-aout.h ;; m88k-*-coff*) cpu_type=m88k tm_file=m88k/m88k-coff.h tmake_file=m88k/t-bug ;; m88k-*-luna*) tm_file=m88k/luna.h extra_parts="crtbegin.o crtend.o" if [ x$gas = xyes ] then tmake_file=m88k/t-luna-gas else tmake_file=m88k/t-luna fi ;; m88k-*-sysv3*) tm_file=m88k/sysv3.h extra_parts="crtbegin.o crtend.o" xm_file=m88k/xm-sysv3.h xmake_file=m88k/x-sysv3 if [ x$gas = xyes ] then tmake_file=m88k/t-m88k-gas fi ;; m88k-*-sysv4*) tm_file=m88k/sysv4.h extra_parts="crtbegin.o crtend.o" xmake_file=m88k/x-sysv4 tmake_file=m88k/t-sysv4 ;; mips-sgi-irix6*) # SGI System V.4., IRIX 6 tm_file=mips/iris6.h xm_file=mips/xm-iris6.h broken_install=yes fixincludes=Makefile.in xmake_file=mips/x-iris6 tmake_file=mips/t-iris6 # See comment in mips/iris[56].h files. use_collect2=yes ;; mips-sgi-irix5cross64) # Irix5 host, Irix 6 target, cross64 tm_file=mips/cross64.h xm_file=mips/xm-iris5.h broken_install=yes fixincludes=Makefile.in xmake_file=mips/x-iris tmake_file=mips/t-cross64 # See comment in mips/iris[56].h files. use_collect2=yes ;; mips-sgi-irix5*) # SGI System V.4., IRIX 5 if [ x$gas = xyes ] then if [ x$stabs = xyes ] then tm_file=mips/iris5gdb.h else tm_file=mips/iris5gas.h fi else tm_file=mips/iris5.h fi xm_file=mips/xm-iris5.h broken_install=yes fixincludes=Makefile.in xmake_file=mips/x-iris # mips-tfile doesn't work yet tmake_file=mips/t-mips-gas # See comment in mips/iris5.h file. use_collect2=yes ;; mips-sgi-irix4loser*) # Mostly like a MIPS. if [ x$stabs = xyes ]; then tm_file=mips/iris4gl.h else tm_file=mips/iris4loser.h fi xm_file=mips/xm-iris4.h broken_install=yes xmake_file=mips/x-iris if [ x$gas = xyes ] then tmake_file=mips/t-mips-gas else extra_passes="mips-tfile mips-tdump" fi if [ x$gnu_ld != xyes ] then use_collect2=yes fi ;; mips-sgi-irix4*) # Mostly like a MIPS. if [ x$stabs = xyes ]; then tm_file=mips/iris4-gdb.h else tm_file=mips/iris4.h fi xm_file=mips/xm-iris4.h broken_install=yes xmake_file=mips/x-iris if [ x$gas = xyes ] then tmake_file=mips/t-mips-gas else extra_passes="mips-tfile mips-tdump" fi if [ x$gnu_ld != xyes ] then use_collect2=yes fi ;; mips-sgi-*) # Mostly like a MIPS. if [ x$stabs = xyes ]; then tm_file=mips/iris3-gdb.h else tm_file=mips/iris3.h fi xm_file=mips/xm-iris3.h broken_install=yes xmake_file=mips/x-iris3 if [ x$gas = xyes ] then tmake_file=mips/t-mips-gas else extra_passes="mips-tfile mips-tdump" fi if [ x$gnu_ld != xyes ] then use_collect2=yes fi ;; mips-dec-osfrose*) # Decstation running OSF/1 reference port with OSF/rose. tm_file=mips/osfrose.h xmake_file=mips/x-osfrose tmake_file=mips/t-osfrose extra_objs=halfpic.o use_collect2=yes ;; mips-dec-osf*) # Decstation running OSF/1 as shipped by DIGITAL if [ x$stabs = xyes ]; then tm_file=mips/dec-gosf1.h else tm_file=mips/dec-osf1.h fi xmake_file=mips/x-dec-osf1 if [ x$gas = xyes ] then tmake_file=mips/t-mips-gas else tmake_file=mips/t-ultrix extra_passes="mips-tfile mips-tdump" fi if [ x$gnu_ld != xyes ] then use_collect2=yes fi ;; mips-dec-bsd*) # Decstation running 4.4 BSD tm_file=mips/dec-bsd.h xmake_file= tmake_file= fixincludes= if [ x$gas = xyes ] then tmake_file=mips/t-mips-gas else tmake_file=mips/t-ultrix extra_passes="mips-tfile mips-tdump" fi if [ x$gnu_ld != xyes ] then use_collect2=yes fi ;; mips-dec-netbsd*) # Decstation running NetBSD tm_file=mips/netbsd.h xm_file=mips/xm-netbsd.h xmake_file=x-netbsd tmake_file=t-libc-ok fixincludes=Makefile.in prefix=$native_prefix ;; mips-dec-openbsd*) # Decstation running OpenBSD tm_file=mips/openbsd.h xm_file=mips/xm-openbsd.h xmake_file=x-openbsd tmake_file=t-libc-ok fixincludes=Makefile.in prefix=$native_prefix ;; mips-r4kle-openbsd* | mips-arc-openbsd*) # MIPS R4k running OpenBSD tm_file=mips/openbsd-le.h xm_file=mips/xm-openbsd.h xmake_file=x-openbsd tmake_file=t-libc-ok fixincludes=Makefile.in prefix=$native_prefix ;; mips-r4kbe-openbsd*) # MIPS R4k running OpenBSD tm_file=mips/openbsd-be.h xm_file=mips/xm-openbsd.h xmake_file=x-openbsd tmake_file=t-libc-ok fixincludes=Makefile.in prefix=$native_prefix ;; mips-sony-bsd* | mips-sony-newsos*) # Sony NEWS 3600 or risc/news. if [ x$stabs = xyes ]; then tm_file=mips/news4-gdb.h else tm_file=mips/news4.h fi if [ x$gas = xyes ] then tmake_file=mips/t-mips-gas else extra_passes="mips-tfile mips-tdump" fi if [ x$gnu_ld != xyes ] then use_collect2=yes fi xmake_file=mips/x-sony ;; mips-sony-sysv*) # Sony NEWS 3800 with NEWSOS5.0. # That is based on svr4. # t-svr4 is not right because this system doesn't use ELF. if [ x$stabs = xyes ]; then tm_file=mips/news5-gdb.h else tm_file=mips/news5.h fi xm_file=mips/xm-news.h if [ x$gas = xyes ] then tmake_file=mips/t-mips-gas else extra_passes="mips-tfile mips-tdump" fi if [ x$gnu_ld != xyes ] then use_collect2=yes fi ;; mips-tandem-sysv4*) # Tandem S2 running NonStop UX if [ x$stabs = xyes ]; then tm_file=mips/svr4-t-gdb.h else tm_file=mips/svr4-t.h fi xm_file=mips/xm-sysv4.h xmake_file=mips/x-sysv if [ x$gas = xyes ] then tmake_file=mips/t-mips-gas extra_parts="crtbegin.o crtend.o" else tmake_file=mips/t-mips extra_passes="mips-tfile mips-tdump" fi if [ x$gnu_ld != xyes ] then use_collect2=yes fi broken_install=yes ;; mips-*-ultrix* | mips-dec-mach3) # Decstation. if [ x$stabs = xyes ]; then tm_file=mips/ultrix-gdb.h else tm_file=mips/ultrix.h fi xmake_file=mips/x-ultrix if [ x$gas = xyes ] then tmake_file=mips/t-mips-gas else tmake_file=mips/t-ultrix extra_passes="mips-tfile mips-tdump" fi if [ x$gnu_ld != xyes ] then use_collect2=yes fi ;; mips-*-riscos[56789]bsd*) if [ x$stabs = xyes ]; then # MIPS BSD 4.3, RISC-OS 5.0 tm_file=mips/bsd-5-gdb.h else tm_file=mips/bsd-5.h fi if [ x$gas = xyes ] then tmake_file=mips/t-bsd-gas else tmake_file=mips/t-bsd extra_passes="mips-tfile mips-tdump" fi if [ x$gnu_ld != xyes ] then use_collect2=yes fi broken_install=yes ;; mips-*-bsd* | mips-*-riscosbsd* | mips-*-riscos[1234]bsd*) if [ x$stabs = xyes ]; then # MIPS BSD 4.3, RISC-OS 4.0 tm_file=mips/bsd-4-gdb.h else tm_file=mips/bsd-4.h fi if [ x$gas = xyes ] then tmake_file=mips/t-bsd-gas else tmake_file=mips/t-bsd extra_passes="mips-tfile mips-tdump" fi if [ x$gnu_ld != xyes ] then use_collect2=yes fi broken_install=yes ;; mips-*-riscos[56789]sysv4*) if [ x$stabs = xyes ]; then # MIPS System V.4., RISC-OS 5.0 tm_file=mips/svr4-5-gdb.h else tm_file=mips/svr4-5.h fi xm_file=mips/xm-sysv4.h xmake_file=mips/x-sysv if [ x$gas = xyes ] then tmake_file=mips/t-svr4-gas else tmake_file=mips/t-svr4 extra_passes="mips-tfile mips-tdump" fi if [ x$gnu_ld != xyes ] then use_collect2=yes fi broken_install=yes ;; mips-*-sysv4* | mips-*-riscos[1234]sysv4* | mips-*-riscossysv4*) if [ x$stabs = xyes ]; then # MIPS System V.4. RISC-OS 4.0 tm_file=mips/svr4-4-gdb.h else tm_file=mips/svr4-4.h fi xm_file=mips/xm-sysv.h xmake_file=mips/x-sysv if [ x$gas = xyes ] then tmake_file=mips/t-svr4-gas else tmake_file=mips/t-svr4 extra_passes="mips-tfile mips-tdump" fi if [ x$gnu_ld != xyes ] then use_collect2=yes fi broken_install=yes ;; mips-*-riscos[56789]sysv*) if [ x$stabs = xyes ]; then # MIPS System V.3, RISC-OS 5.0 tm_file=mips/svr3-5-gdb.h else tm_file=mips/svr3-5.h fi xm_file=mips/xm-sysv.h xmake_file=mips/x-sysv if [ x$gas = xyes ] then tmake_file=mips/t-svr3-gas else tmake_file=mips/t-svr3 extra_passes="mips-tfile mips-tdump" fi if [ x$gnu_ld != xyes ] then use_collect2=yes fi broken_install=yes ;; mips-*-sysv* | mips-*-riscos*sysv*) if [ x$stabs = xyes ]; then # MIPS System V.3, RISC-OS 4.0 tm_file=mips/svr3-4-gdb.h else tm_file=mips/svr3-4.h fi xm_file=mips/xm-sysv.h xmake_file=mips/x-sysv if [ x$gas = xyes ] then tmake_file=mips/t-svr3-gas else tmake_file=mips/t-svr3 extra_passes="mips-tfile mips-tdump" fi if [ x$gnu_ld != xyes ] then use_collect2=yes fi broken_install=yes ;; mips-*-riscos[56789]*) # Default MIPS RISC-OS 5.0. if [ x$stabs = xyes ]; then tm_file=mips/mips-5-gdb.h else tm_file=mips/mips-5.h fi if [ x$gas = xyes ] then tmake_file=mips/t-mips-gas else extra_passes="mips-tfile mips-tdump" fi if [ x$gnu_ld != xyes ] then use_collect2=yes fi broken_install=yes ;; mips-*-gnu*) cpu_type=mips # GNU supports this CPU; rest done below. ;; mipsel-*-ecoff*) cpu_type=mips if [ x$stabs = xyes ]; then tm_file=mips/ecoffl-gdb.h else tm_file=mips/ecoffl.h fi tmake_file=mips/t-ecoff ;; mips-*-ecoff*) if [ x$stabs = xyes ]; then tm_file=mips/ecoff-gdb.h else tm_file=mips/ecoff.h fi tmake_file=mips/t-ecoff broken_install=yes ;; mipsel-*-elf*) cpu_type=mips tm_file=mips/elfl.h tmake_file=mips/t-ecoff ;; mips-*-elf*) cpu_type=mips tm_file=mips/elf.h tmake_file=mips/t-ecoff ;; mips64el-*-elf*) cpu_type=mips tm_file=mips/elfl64.h tmake_file=mips/t-ecoff ;; mips64orionel-*-elf*) cpu_type=mips tm_file=mips/elflorion.h tmake_file=mips/t-ecoff ;; mips64-*-elf*) cpu_type=mips tm_file=mips/elf64.h tmake_file=mips/t-ecoff ;; mips64orion-*-elf*) cpu_type=mips tm_file=mips/elforion.h tmake_file=mips/t-ecoff ;; mips-*-*) # Default MIPS RISC-OS 4.0. if [ x$stabs = xyes ]; then tm_file=mips/mips-4-gdb.h else tm_file=mips/mips.h fi if [ x$gas = xyes ] then tmake_file=mips/t-mips-gas else extra_passes="mips-tfile mips-tdump" fi if [ x$gnu_ld != xyes ] then use_collect2=yes fi ;; ns32k-encore-bsd*) tm_file=ns32k/encore.h use_collect2=yes ;; ns32k-sequent-bsd*) tm_file=ns32k/sequent.h use_collect2=yes ;; ns32k-tek6100-bsd*) tm_file=ns32k/tek6100.h broken_install=yes use_collect2=yes ;; ns32k-tek6200-bsd*) tm_file=ns32k/tek6200.h broken_install=yes use_collect2=yes ;; # This has not been updated to GCC 2. # ns32k-ns-genix*) # xm_file=ns32k/xm-genix.h # xmake_file=ns32k/x-genix # tm_file=ns32k/genix.h # broken_install=yes # use_collect2=yes # ;; ns32k-merlin-*) tm_file=ns32k/merlin.h use_collect2=yes ;; ns32k-pc532-mach*) tm_file=ns32k/pc532-mach.h use_collect2=yes ;; ns32k-pc532-minix*) tm_file=ns32k/pc532-min.h xm_file=ns32k/xm-pc532-min.h use_collect2=yes ;; ns32k-pc532-netbsd*) tm_file=ns32k/netbsd.h xm_file=ns32k/xm-netbsd.h tmake_file=t-libc-ok # On NetBSD, the headers are already okay. fixincludes=Makefile.in xmake_file=x-netbsd ;; ns32k-pc532-openbsd*) tm_file=ns32k/openbsd.h xm_file=ns32k/xm-openbsd.h tmake_file=t-libc-ok # On OpenBSD, the headers are already okay. fixincludes=Makefile.in xmake_file=x-openbsd ;; pyramid-*-*) cpu_type=pyr xmake_file=pyr/x-pyr use_collect2=yes ;; romp-*-aos*) use_collect2=yes ;; romp-*-mach*) xmake_file=romp/x-mach use_collect2=yes ;; powerpc-ibm-aix[456789].*) cpu_type=rs6000 tm_file=rs6000/aix41ppc.h tmake_file=rs6000/t-newas use_collect2=yes ;; powerpc-ibm-aix*) cpu_type=rs6000 tm_file=rs6000/powerpc.h tmake_file=rs6000/t-rs6000 use_collect2=yes ;; powerpc-*-sysv4* | powerpc-*-elf*) cpu_type=rs6000 xm_file=rs6000/xm-sysv4.h tm_file=rs6000/sysv4.h if [ x$gas = xyes ] then tmake_file=rs6000/t-ppcgas else tmake_file=rs6000/t-ppc fi xmake_file=rs6000/x-sysv4 ;; powerpc-*-eabiaix*) cpu_type=rs6000 tm_file=rs6000/eabiaix.h tmake_file=rs6000/t-eabiaix fixincludes=Makefile.in ;; powerpc-*-eabisim*) cpu_type=rs6000 tm_file=rs6000/eabisim.h tmake_file=rs6000/t-eabisim fixincludes=Makefile.in ;; powerpc-*-eabi*) cpu_type=rs6000 tm_file=rs6000/eabi.h if [ x$gas = xyes ] then tmake_file=rs6000/t-eabigas else tmake_file=rs6000/t-eabi fi fixincludes=Makefile.in ;; powerpcle-*-sysv4* | powerpcle-*-elf*) cpu_type=rs6000 xm_file=rs6000/xm-sysv4.h tm_file=rs6000/sysv4le.h if [ x$gas = xyes ] then tmake_file=rs6000/t-ppclegas else tmake_file=rs6000/t-ppc fi xmake_file=rs6000/x-sysv4 ;; powerpcle-*-eabisim*) cpu_type=rs6000 tm_file=rs6000/eabilesim.h tmake_file=rs6000/t-eabisim fixincludes=Makefile.in ;; powerpcle-*-eabi*) cpu_type=rs6000 tm_file=rs6000/eabile.h if [ x$gas = xyes ] then tmake_file=rs6000/t-eabilegas else tmake_file=rs6000/t-eabi fi fixincludes=Makefile.in ;; rs6000-ibm-aix3.[01]*) tm_file=rs6000/aix31.h tmake_file=rs6000/t-rs6000 xmake_file=rs6000/x-aix31 use_collect2=yes ;; rs6000-ibm-aix3.2.[456789]*) tm_file=rs6000/aix3newas.h tmake_file=rs6000/t-newas use_collect2=yes ;; rs6000-ibm-aix[456789].*) tm_file=rs6000/aix41.h tmake_file=rs6000/t-newas xmake_file=rs6000/x-aix31 use_collect2=yes ;; rs6000-ibm-aix*) use_collect2=yes tmake_file=rs6000/t-rs6000 ;; rs6000-bull-bosx) tmake_file=rs6000/t-rs6000 use_collect2=yes ;; rs6000-*-mach*) xm_file=rs6000/xm-mach.h tm_file=rs6000/mach.h tmake_file=rs6000/t-rs6000 xmake_file=rs6000/x-mach use_collect2=yes ;; rs6000-*-lynxos*) xmake_file=rs6000/x-lynx xm_file=rs6000/xm-lynx.h tm_file=rs6000/lynx.h tmake_file=rs6000/t-rs6000 use_collect2=yes ;; sh-*-*) cpu_type=sh ;; sparc-tti-*) tm_file=sparc/pbd.h xm_file=sparc/xm-pbd.h ;; sparc-wrs-vxworks* | sparclite-wrs-vxworks*) cpu_type=sparc tm_file=sparc/vxsparc.h tmake_file=sparc/t-vxsparc use_collect2=yes ;; sparc-*-aout*) tmake_file=sparc/t-sparcbare tm_file=sparc/sparc-aout.h ;; sparc-*-netbsd*) tm_file=sparc/netbsd.h xm_file=sparc/xm-netbsd.h # On NetBSD, the headers are already okay. fixincludes=Makefile.in tmake_file=t-libc-ok xmake_file=x-netbsd ;; sparc-*-openbsd*) tm_file=sparc/openbsd.h xm_file=sparc/xm-openbsd.h # On OpenBSD, the headers are already okay. fixincludes=Makefile.in tmake_file=t-libc-ok xmake_file=x-openbsd ;; sparc-*-bsd*) tm_file=sparc/bsd.h ;; sparc-*-lynxos*) if [ x$gas = xyes ] then tm_file=sparc/lynx.h else tm_file=sparc/lynx-ng.h fi xm_file=sparc/xm-lynx.h tmake_file=sparc/t-sunos41 xmake_file=x-lynx ;; sparc-*-solaris2* | sparc-*-sunos5*) xm_file=sparc/xm-sol2.h tm_file=sparc/sol2.h tmake_file=sparc/t-sol2 xmake_file=sparc/x-sysv4 extra_parts="crt1.o crti.o crtn.o gmon.o crtbegin.o crtend.o" fixincludes=fixinc.svr4 broken_install=yes ;; sparc-*-sunos4.0*) tm_file=sparc/sunos4.h tmake_file=sparc/t-sunos40 use_collect2=yes ;; sparc-*-sunos4*) tm_file=sparc/sunos4.h tmake_file=sparc/t-sunos41 use_collect2=yes ;; sparc-*-sunos3*) tm_file=sparc/sun4o3.h use_collect2=yes ;; sparc-*-sysv4*) xm_file=sparc/xm-sysv4.h tm_file=sparc/sysv4.h tmake_file=t-svr4 xmake_file=sparc/x-sysv4 extra_parts="crtbegin.o crtend.o" ;; sparclite-*-coff*) cpu_type=sparc tm_file=sparc/litecoff.h tmake_file=sparc/t-sparclite ;; sparclite-*-*) cpu_type=sparc tm_file=sparc/lite.h tmake_file=sparc/t-sparclite use_collect2=yes ;; sparc64-*-aout*) cpu_type=sparc tmake_file=sparc/t-sp64 tm_file=sparc/sp64-aout.h ;; sparc64-*-elf*) cpu_type=sparc tmake_file=sparc/t-sp64 tm_file=sparc/sp64-elf.h extra_parts="crtbegin.o crtend.o" ;; # This hasn't been upgraded to GCC 2. # tahoe-harris-*) # Harris tahoe, using COFF. # tm_file=tahoe/harris.h # ;; # tahoe-*-bsd*) # tahoe running BSD # ;; # This hasn't been upgraded to GCC 2. # tron-*-*) # cpu_type=gmicro # use_collect2=yes # ;; vax-*-bsd*) # vaxen running BSD use_collect2=yes ;; vax-*-sysv*) # vaxen running system V xm_file=vax/xm-vaxv.h tm_file=vax/vaxv.h ;; vax-*-netbsd*) tm_file=vax/netbsd.h xm_file=vax/xm-netbsd.h tmake_file=t-libc-ok # On NetBSD, the headers are already okay. fixincludes=Makefile.in xmake_file=x-netbsd ;; vax-*-openbsd*) tm_file=vax/openbsd.h xm_file=vax/xm-openbsd.h tmake_file=t-libc-ok # On OpenBSD, the headers are already okay. fixincludes=Makefile.in xmake_file=x-openbsd ;; vax-*-ultrix*) # vaxen running ultrix tm_file=vax/ultrix.h use_collect2=yes ;; vax-*-vms*) # vaxen running VMS xm_file=vax/xm-vms.h tm_file=vax/vms.h ;; pdp11-*-bsd) xm_file=pdp11/xm-pdp11.h tm_file=pdp11/2bsd.h tmake_file=pdp11/t-pdp11 ;; pdp11-*-*) xm_file=pdp11/xm-pdp11.h tm_file=pdp11/pdp11.h tmake_file=pdp11/t-pdp11 ;; we32k-att-sysv*) cpu_type=we32k use_collect2=yes ;; *) echo "Configuration $machine not supported" 1>&2 exit 1 ;; esac case $machine in *-*-gnu*) # On the GNU system, the setup is just about the same on # each different CPU. The specific machines that GNU # supports are matched above and just set $cpu_type. xm_file=${cpu_type}/xm-gnu.h tm_file=${cpu_type}/gnu.h extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" # GNU always uses ELF. elf=yes # GNU tools are the only tools. gnu_ld=yes gas=yes # On GNU, the headers are already okay. fixincludes=Makefile.in # Don't build libgcc1.c, because there is no non-GNU # compiler to build it with. The GNU system C library will # include assembly versions of any needed functions. tmake_file=t-libc-ok ;; *-*-sysv4*) fixincludes=fixinc.svr4 xmake_try_sysv=x-sysv broken_install=yes install_headers_dir=install-headers-cpio ;; *-*-sysv*) broken_install=yes install_headers_dir=install-headers-cpio ;; esac # Distinguish i386 from i486/i586. # ??? For the moment we treat i586 as an i486. # Also, do not run mips-tfile on MIPS if using gas. case $machine in i[45]86-*-*) target_cpu_default=2 ;; mips*-*-*) if [ x$gas = xyes ] then target_cpu_default=16 fi ;; alpha-*-*) if [ x$gas = xyes ] then target_cpu_default=4 fi ;; esac # No need for collect2 if we have the GNU linker. case x$gnu_ld in xyes) use_collect2= ;; esac # Default certain vars that apply to both host and target in turn. if [ x$cpu_type = x ] then cpu_type=`echo $machine | sed 's/-.*$//'` fi # Save data on machine being used to compile GCC in build_xm_file. # Save data on host machine in vars host_xm_file and host_xmake_file. if [ x$pass1done = x ] then if [ x$xm_file = x ] then build_xm_file=$cpu_type/xm-$cpu_type.h else build_xm_file=$xm_file fi pass1done=yes else if [ x$pass2done = x ] then if [ x$xm_file = x ] then host_xm_file=$cpu_type/xm-$cpu_type.h else host_xm_file=$xm_file fi if [ x$xmake_file = x ] then xmake_file=$cpu_type/x-$cpu_type fi host_xmake_file=$xmake_file host_broken_install=$broken_install host_install_headers_dir=$install_headers_dir host_truncate_target=$truncate_target pass2done=yes fi fi done # Default the target-machine variables that were not explicitly set. if [ x$tm_file = x ] then tm_file=$cpu_type/$cpu_type.h; fi if [ x$extra_headers = x ] then extra_headers=; fi if [ x$xm_file = x ] then xm_file=$cpu_type/xm-$cpu_type.h; fi md_file=$cpu_type/$cpu_type.md if [ x$out_file = x ] then out_file=$cpu_type/$cpu_type.c; fi if [ x$tmake_file = x ] then tmake_file=$cpu_type/t-$cpu_type fi # Say what files are being used for the output code and MD file. echo "Using \`$srcdir/config/$out_file' to output insns." echo "Using \`$srcdir/config/$md_file' as machine description file." echo "Using \`$srcdir/config/$tm_file' as target machine macro file." echo "Using \`$srcdir/config/$host_xm_file' as host machine macro file." if [ $host_xm_file != $build_xm_file ]; then echo "Using \`$srcdir/config/$build_xm_file' as build machine macro file." fi # Set up the list of links to be made. # $links is the list of link names, and $files is the list of names to link to. files="$host_xm_file $tm_file $xm_file $build_xm_file" links="config.h tm.h tconfig.h hconfig.h" rm -f config.bak if [ -f config.status ]; then mv -f config.status config.bak; fi # Make the links. while [ -n "$files" ] do # set file to car of files, files to cdr of files set $files; file=$1; shift; files=$* set $links; link=$1; shift; links=$* rm -f $link echo "#include \"$file\"" >$link done # Truncate the target if necessary if [ x$host_truncate_target != x ]; then target=`echo $target | sed -e 's/\(..............\).*/\1/'` fi # Get the version number from the toplevel version=`sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/' < ${srcdir}/version.c` # For the current directory and all of the language subdirectories, # do the rest of the script ... subdirs= for lang in ${srcdir}/*/config-lang.in .. do case $lang in ..) ;; # The odd quoting in the next line works around # an apparent bug in bash 1.12 on linux. ${srcdir}/[*]/config-lang.in) ;; *) subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`" ;; esac done # Are we using gcc as the native compiler? case $canon_host in *linux*) # All Linux's use gcc as the native compiler. prefix=$native_prefix ;; esac # Make empty files to contain the specs and options for each language. # Then add #include lines to for a compiler that has specs and/or options. lang_specs_files= lang_options_files= rm -f specs.h options.h touch specs.h options.h for subdir in . $subdirs do if [ -f $srcdir/$subdir/lang-specs.h ]; then echo "#include \"$subdir/lang-specs.h\"" >>specs.h lang_specs_files="$lang_specs_files $srcdir/$subdir/lang-specs.h" fi if [ -f $srcdir/$subdir/lang-options.h ]; then echo "#include \"$subdir/lang-options.h\"" >>options.h lang_options_files="$lang_options_files $srcdir/$subdir/lang-options.h" fi done # Define SET_MAKE if this old version of `make' doesn't define $(MAKE). rm -f Makefile.xx (echo 'all:'; echo ' @echo maketemp=$(MAKE)') >Makefile.xx case `${MAKE-make} -f Makefile.xx 2>/dev/null | grep maketemp=` in 'maketemp=') SET_MAKE="MAKE = ${MAKE-make}" ;; *) SET_MAKE= ;; esac rm -f Makefile.xx savesrcdir=$srcdir for subdir in . $subdirs do oldsrcdir=$savesrcdir # Re-adjust the path case $oldsrcdir in /*) srcdir=$oldsrcdir/$subdir ;; *) case $subdir in .) ;; *) oldsrcdir=../${oldsrcdir} srcdir=$oldsrcdir/$subdir ;; esac ;; esac mainsrcdir=$oldsrcdir STARTDIR=`pwd` test -d $subdir || mkdir $subdir cd $subdir # Create Makefile.tem from Makefile.in. # Make it set VPATH if necessary so that the sources are found. # Also change its value of srcdir. # Also create a .gdbinit file which runs the one in srcdir # and tells GDB to look there for source files. case $srcdir in . | ./$subdir | .././$subdir) rm -f Makefile.tem cp Makefile.in Makefile.tem chmod +w Makefile.tem ;; *) rm -f Makefile.tem echo "VPATH = ${srcdir}" \ | cat - ${srcdir}/Makefile.in \ | sed "s@^srcdir = \.@srcdir = ${srcdir}@" > Makefile.tem rm -f .gdbinit echo "dir ." > .gdbinit echo "dir ${srcdir}" >> .gdbinit if [ x$gdb_needs_out_file_path = xyes ] then echo "dir ${srcdir}/config/"`dirname ${out_file}` >> .gdbinit fi if [ "x$subdirs" != x ]; then for s in $subdirs do echo "dir ${srcdir}/$s" >> .gdbinit done fi echo "source ${srcdir}/.gdbinit" >> .gdbinit ;; esac # Conditionalize the makefile for this host machine. if [ -f ${mainsrcdir}/config/${host_xmake_file} ] then rm -f Makefile.xx sed -e "/####host/ r ${mainsrcdir}/config/${host_xmake_file}" Makefile.tem > Makefile.xx echo "Merged ${host_xmake_file}." rm -f Makefile.tem mv Makefile.xx Makefile.tem dep_host_xmake_file=${host_xmake_file} else # Say in the makefile that there is no host_xmake_file, # by using a name which (when interpreted relative to $srcdir/config) # will duplicate another dependency: $srcdir/Makefile.in. dep_host_xmake_file=../Makefile.in fi # Add a definition for MAKE if system wants one. case "$SET_MAKE" in ?*) rm -f Makefile.xx (echo "$SET_MAKE"; cat Makefile.tem) >Makefile.xx rm -f Makefile.tem mv Makefile.xx Makefile.tem esac # Add a definition for INSTALL if system wants one. # This substitutes for lots of x-* files. if [ x$host_broken_install = x ] then true else rm -f Makefile.xx abssrcdir=`cd ${srcdir}; pwd` sed "s|^INSTALL = .*|INSTALL = ${abssrcdir}/install.sh -c|" Makefile.tem > Makefile.xx rm -f Makefile.tem mv Makefile.xx Makefile.tem fi # Some of the following don't make sense in the language makefiles, # but rather than introduce another level of nesting, we leave them # as is. # Set EXTRA_HEADERS according to extra_headers. # This substitutes for lots of t-* files. if [ "x$extra_headers" = x ] then true else # Prepend ${srcdir}/ginclude/ to every entry in extra_headers. list= for file in $extra_headers; do list="${list} ${srcdir}/ginclude/${file}" done rm -f Makefile.xx sed "s|^EXTRA_HEADERS =|EXTRA_HEADERS = ${list}|" Makefile.tem > Makefile.xx rm -f Makefile.tem mv Makefile.xx Makefile.tem fi # Set EXTRA_PASSES according to extra_passes. # This substitutes for lots of t-* files. if [ "x$extra_passes" = x ] then true else rm -f Makefile.xx sed "s/^EXTRA_PASSES =/EXTRA_PASSES = $extra_passes/" Makefile.tem > Makefile.xx rm -f Makefile.tem mv Makefile.xx Makefile.tem fi # Set EXTRA_PARTS according to extra_parts. # This substitutes for lots of t-* files. if [ "x$extra_parts" = x ] then true else rm -f Makefile.xx sed "s/^EXTRA_PARTS =/EXTRA_PARTS = $extra_parts/" Makefile.tem > Makefile.xx rm -f Makefile.tem mv Makefile.xx Makefile.tem fi # Set EXTRA_PROGRAMS according to extra_programs. if [ "x$extra_programs" = x ] then true else rm -f Makefile.xx sed "s/^EXTRA_PROGRAMS =/EXTRA_PROGRAMS = $extra_programs/" Makefile.tem > Makefile.xx rm -f Makefile.tem mv Makefile.xx Makefile.tem fi # Set EXTRA_OBJS according to extra_objs. # This substitutes for lots of t-* files. if [ "x$extra_objs" = x ] then true else rm -f Makefile.xx sed "s|^EXTRA_OBJS =|EXTRA_OBJS = $extra_objs|" Makefile.tem > Makefile.xx rm -f Makefile.tem mv Makefile.xx Makefile.tem fi # Set EXTRA_GCC_OBJS according to extra_gcc_objs. # This substitutes for lots of t-* files. if [ "x$extra_gcc_objs" = x ] then true else rm -f Makefile.xx sed "s|^EXTRA_GCC_OBJS =|EXTRA_GCC_OBJS = $extra_gcc_objs|" Makefile.tem > Makefile.xx rm -f Makefile.tem mv Makefile.xx Makefile.tem fi # Add a definition of USE_COLLECT2 if system wants one. # Also tell toplev.c what to do. # This substitutes for lots of t-* files. if [ x$use_collect2 = x ] then true else rm -f Makefile.xx (echo "USE_COLLECT2 = ld"; echo "MAYBE_USE_COLLECT2 = -DUSE_COLLECT2")\ | cat - Makefile.tem > Makefile.xx rm -f Makefile.tem mv Makefile.xx Makefile.tem fi # Add -DTARGET_CPU_DEFAULT for toplev.c if system wants one. # This substitutes for lots of *.h files. if [ x$target_cpu_default = x ] then true else rm -f Makefile.xx # This used cat, but rfg@netcom.com said that ran into NFS bugs. sed -e "/^# Makefile for GNU C compiler./c\\ MAYBE_TARGET_DEFAULT = -DTARGET_CPU_DEFAULT=$target_cpu_default\\ \# Makefile for GNU C compiler." Makefile.tem > Makefile.xx rm -f Makefile.tem mv Makefile.xx Makefile.tem fi # Set MD_DEPS if the real md file is in md.pre-cpp. # Set MD_CPP to the cpp to pass the md file through. Md files use ';' # for line oriented comments, so we must always use a GNU cpp. If # building gcc with a cross compiler, use the cross compiler just # built. Otherwise, we can use the cpp just built. if [ "x$md_cppflags" = x ] then md_file=$srcdir/config/$md_file else rm -f Makefile.xx (if [ x$host = x$build ] ; then echo "MD_DEPS = $(md_file) cpp" ; echo "MD_CPP = ./cpp" else echo "MD_DEPS = md.pre-cpp" ; echo "MD_CPP = \$(HOST_CC) -x c -E" fi md_file=md echo "MD_CPPFLAGS = $md_cppflags") | \ cat - Makefile.tem | sed -e "s|^MD_FILE[ ]*=.*|MD_FILE = md|" > Makefile.xx rm -f Makefile.tem mv Makefile.xx Makefile.tem fi # If we have gas in the build tree, make a link to it. if [ -f ../gas/Makefile ]; then rm -f as; $symbolic_link ../gas/as.new as 2>/dev/null fi # If we have ld in the build tree, make a link to it. if [ -f ../ld/Makefile ]; then if [ x$use_collect2 = x ]; then rm -f ld; $symbolic_link ../ld/ld.new ld 2>/dev/null else rm -f collect-ld; $symbolic_link ../ld/ld.new collect-ld 2>/dev/null fi fi # If using -program-transform-name, override the installation names. if [ "x${program_transform_set}" = "xyes" ] ; then sed -e "s/^program_transform_name[ ]*=.*$/program_transform_name = $program_transform_name/" \ -e "s/^program_transform_cross_name[ ]*=.*$/program_transform_cross_name = $program_transform_name/" \ Makefile.tem > Makefile.xx rm -f Makefile.tem mv Makefile.xx Makefile.tem fi # Conditionalize the makefile for this target machine. if [ -f ${mainsrcdir}/config/${tmake_file} ] then rm -f Makefile.xx sed -e "/####target/ r ${mainsrcdir}/config/${tmake_file}" Makefile.tem > Makefile.xx echo "Merged ${tmake_file}." rm -f Makefile.tem mv Makefile.xx Makefile.tem dep_tmake_file=${tmake_file} else # Say in the makefile that there is no tmake_file, # by using a name which (when interpreted relative to $srcdir/config) # will duplicate another dependency: $srcdir/Makefile.in. dep_tmake_file=../Makefile.in fi # If this is the top level Makefile, add the language fragments. # Languages are added via two mechanisms. Some information must be # recorded in makefile variables, these are defined in config-lang.in. # We accumulate them and plug them into the main Makefile. # The other mechanism is a set of hooks for each of the main targets # like `clean', `install', etc. if [ $subdir = . ] then # These (without "all_") are set in each config-lang.in. # `language' must be a single word so is spelled singularly. all_languages= all_compilers= all_stagestuff= all_diff_excludes= # List of language makefile fragments. all_lang_makefiles= rm -f Makefile.xx Makefile.ll touch Makefile.ll for s in .. $subdirs do if [ $s != ".." ] then language= compilers= stagestuff= diff_excludes= . ${mainsrcdir}/$s/config-lang.in if [ "x$language" = x ] then echo "${mainsrcdir}/$s/config-lang.in doesn't set \$language." 1>&2 exit 1 fi all_lang_makefiles="$all_lang_makefiles ${mainsrcdir}/$s/Make-lang.in ${mainsrcdir}/$s/Makefile.in" all_languages="$all_languages $language" all_compilers="$all_compilers $compilers" all_stagestuff="$all_stagestuff $stagestuff" all_diff_excludes="$all_diff_excludes $diff_excludes" cat ${mainsrcdir}/$s/Make-lang.in >> Makefile.ll fi done sed -e "/####language fragments/ r Makefile.ll" Makefile.tem > Makefile.xx rm -f Makefile.tem mv Makefile.xx Makefile.tem sed -e "s|^SUBDIRS[ ]*=.*$|SUBDIRS = $subdirs|" \ -e "s|^LANGUAGES[ ]*=[ ]*\(.*\)$|LANGUAGES = \1 $all_languages|" \ -e "s|^COMPILERS[ ]*=[ ]*\(.*\)$|COMPILERS = \1 $all_compilers|" \ -e "s|^LANG_MAKEFILES[ ]*=.*$|LANG_MAKEFILES = $all_lang_makefiles|" \ -e "s|^LANG_STAGESTUFF[ ]*=.*$|LANG_STAGESTUFF = $all_stagestuff|" \ -e "s|^LANG_DIFF_EXCLUDES[ ]*=.*$|LANG_DIFF_EXCLUDES = $all_diff_excludes|" \ Makefile.tem > Makefile.xx rm -f Makefile.tem mv Makefile.xx Makefile.tem # Since we can't use `::' targets, we link each language in # with a set of hooks, reached indirectly via lang.${target}. target_list="all.build all.cross start.encap rest.encap \ info dvi \ install-normal install-common install-info install-man \ uninstall distdir \ mostlyclean clean distclean extraclean maintainer-clean \ stage1 stage2 stage3 stage4" rm -f Makefile.ll for t in $target_list do x= for l in .. $all_languages do if [ $l != ".." ]; then x="$x $l.$t" fi done echo "lang.$t: $x" >> Makefile.ll done sed -e "/####language hooks/ r Makefile.ll" Makefile.tem > Makefile.xx rm -f Makefile.tem mv Makefile.xx Makefile.tem rm -f Makefile.ll # If the host doesn't support symlinks, modify CC in # FLAGS_TO_PASS so CC="stage1/xgcc -Bstage1/" works. # Otherwise, we can use "CC=$(CC)". rm -f symtest.tem if $symbolic_link symtest1.tem symtest.tem 2>/dev/null then sed -e 's,CC=set-by-configure,CC=$(CC),' \ Makefile.tem > Makefile.xx else sed -e "s,CC=set-by-configure,CC=\`case '$(CC)' in stage*) echo '$(CC)' | sed -e 's|stage|../stage|g';; *) echo '$(CC)';; esac\`," \ Makefile.tem > Makefile.xx fi rm -f Makefile.tem mv Makefile.xx Makefile.tem rm -f symtest.tem if [ "x$all_languages" != x ] then # Missing space after `Merged' is intentional. echo "Merged$all_languages fragment(s)." fi # Otherwise, this is a language subdirectory. If the host supports # symlinks, point stage[123] at ../stage[123] so bootstrapping and the # installation procedure can still use CC="stage1/xgcc -Bstage1/". # If the host doesn't support symlinks, FLAGS_TO_PASS has been # modified to solve the problem there. else for t in stage1 stage2 stage3 stage4 include do rm -f $t $symbolic_link ../$t $t 2>/dev/null done fi out_object_file=`basename $out_file .c`.o # Remove all formfeeds, since some Makes get confused by them. # Also arrange to give the variables `target', `host_xmake_file', # `tmake_file', `prefix', `local_prefix', `exec_prefix', `FIXINCLUDES' # `out_file', `out_object', `md_file', `lang_specs_files', # `lang_options_files', and `INSTALL_HEADERS_DIR' values in the # Makefile from the values they have in this script. rm -f Makefile.xx rm -f aux-output.c aux-output.o md # Create an empty Makefile.sed first, to work around a Nextstep 3.3 bug. echo 's| ||' > Makefile.sed rm Makefile.sed echo 's| ||' > Makefile.sed echo "s|^target=.*$|target=${target}|" >> Makefile.sed echo "s|^xmake_file=.*$|xmake_file=${dep_host_xmake_file}|" >> Makefile.sed echo "s|^tmake_file=.*$|tmake_file=${dep_tmake_file}|" >> Makefile.sed echo "s|^version=.*$|version=${version}|" >> Makefile.sed echo "s|^version=.*$|version=${version}|" >> Makefile.sed echo "s|^out_file=.*$|out_file=${srcdir}/config/${out_file}|" >> Makefile.sed echo "s|^out_object_file=.*$|out_object_file=${out_object_file}|" >> Makefile.sed echo "s|^md_file=.*$|md_file=${md_file}|" >> Makefile.sed echo "s|^tm_file=.*$|tm_file=${srcdir}/config/${tm_file}|" >> Makefile.sed echo "s|^host_xm_file=.*$|host_xm_file=${srcdir}/config/${host_xm_file}|" >> Makefile.sed echo "s|^build_xm_file=.*$|build_xm_file=${srcdir}/config/${build_xm_file}|" >> Makefile.sed echo "s|^lang_specs_files=.*$|lang_specs_files=${lang_specs_files}|" >> Makefile.sed echo "s|^lang_options_files=.*$|lang_options_files=${lang_options_files}|" >> Makefile.sed echo "s|^prefix[ ]*=.*|prefix = $prefix|" >> Makefile.sed echo "s|^gxx_include_dir[ ]*=.*|gxx_include_dir = $gxx_include_dir|" >> Makefile.sed echo "s|^local_prefix[ ]*=.*|local_prefix = $local_prefix|" >> Makefile.sed echo "s|^exec_prefix[ ]*=.*|exec_prefix = $exec_prefix|" >> Makefile.sed echo "s|^FIXINCLUDES[ ]*=.*|FIXINCLUDES = $fixincludes|" >> Makefile.sed echo "s|^INSTALL_HEADERS_DIR[ ]*=.*$|INSTALL_HEADERS_DIR = ${host_install_headers_dir}|" >> Makefile.sed sed -f Makefile.sed Makefile.tem > Makefile.xx rm -f Makefile.tem Makefile.sed mv Makefile.xx Makefile.tem # Install Makefile for real, after making final changes. # Define macro CROSS_COMPILE in compilation if this is a cross-compiler. # Also use all.cross instead of all.internal, and add cross-make to Makefile. if [ x$canon_host = x$canon_target ] then rm -f Makefile if [ x$canon_host = x$canon_build ] then mv Makefile.tem Makefile else # When building gcc with a cross-compiler, we need to fix a # few things. echo "build= $build" > Makefile sed -e "s|objc-runtime$||" \ -e "/####build/ r ${mainsrcdir}/build-make" Makefile.tem >> Makefile rm -f Makefile.tem Makefile.xx fi else rm -f Makefile echo "CROSS=-DCROSS_COMPILE" > Makefile sed -e "/####cross/ r ${mainsrcdir}/cross-make" Makefile.tem >> Makefile rm -f Makefile.tem Makefile.xx fi echo "Created \`$subdir/Makefile'." # If a subdirectory has a configure script, run it. if [ x$subdir != x. ] then if [ -f $srcdir/configure ] then ${CONFIG_SHELL-sh} $srcdir/configure $arguments --srcdir=$srcdir fi fi cd $STARTDIR done # end of current-dir SUBDIRS loop srcdir=$savesrcdir # Describe the chosen configuration in config.status. # Make that file a shellscript which will reestablish the same configuration. echo "#!/bin/sh # GCC was configured as follows: ${srcdir}/configure" $arguments > config.new echo echo host=$canon_host target=$canon_target build=$canon_build >> config.new chmod a+x config.new if [ -f config.bak ] && cmp config.bak config.new >/dev/null 2>/dev/null; then mv -f config.bak config.status rm -f config.new else mv -f config.new config.status rm -f config.bak fi str2= str3= str4=. if [ x$canon_host = x$canon_target ] then str1="native " else str1="cross-" str2=" from $canon_host" fi if [ x$canon_host != x$canon_build ] then str3=" on a $canon_build system" fi if [ "x$str2" != x ] || [ "x$str3" != x ] then str4= fi echo "Links are now set up to build a ${str1}compiler for ${canon_target}$str4" 1>&2 if [ "x$str2" != x ] || [ "x$str3" != x ] then echo " ${str2}${str3}." 1>&2 fi exit 0