1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-14 10:09:48 +00:00
freebsd/contrib/gcc/configure
Peter Wemm 852e8be503 Add in hooks to produce assembler output suitable for binutils+elf
Obtained from: John Polstra <jdp@freebsd.org>, from his elfkit.
1996-09-18 06:50:39 +00:00

3092 lines
74 KiB
Bash
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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-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-*-freebsdelf*)
cpu_type=i386
tm_file=i386/freebsd-elf.h
xm_file=i386/xm-freebsd.h
# On FreeBSD, the headers are already ok.
fixincludes=Makefile.in
xmake_file=i386/x-freebsd
gas=yes
gnu_ld=yes
stabs=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-*-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-*-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-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
;;
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-*-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-*-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