--- gcc/configure 2018/04/24 18:02:06 1.1.1.4 +++ gcc/configure 2018/04/24 18:18:48 1.1.1.7 @@ -1,6 +1,6 @@ #!/bin/sh # Configuration script for GNU CC -# Copyright (C) 1988, 1990, 1991, 1992 Free Software Foundation, Inc. +# Copyright (C) 1988, 90, 91, 92, 93, 1994 Free Software Foundation, Inc. #This file is part of GNU CC. @@ -28,10 +28,13 @@ # --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. # --nfp assume system has no FPU. # # If configure succeeds, it leaves its status in config.status. @@ -54,8 +57,19 @@ host= # Default prefix to /usr/local. prefix=/usr/local + +# 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' remove=rm hard_link=ln @@ -73,6 +87,8 @@ arguments=$* target= host= build= +name1= +name2= for arg in $*; do @@ -97,22 +113,40 @@ do prefix=$arg 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= ;; *) case $arg in - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr | --s) + -*) + 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=* | --s=*) + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=`echo $arg | sed 's/-*s[a-z]*=//'` ;; - -host | --host | --hos | --ho | --h) + -host | --host | --hos | --ho) next_arg=--host ;; - -host=* | --host=* | --hos=* | --ho=* | --h=*) + -host=* | --host=* | --hos=* | --ho=*) host=`echo $arg | sed 's/-*h[a-z]*=//'` ;; -target | --target | --targe | --targ | --tar | --ta | --t) @@ -133,6 +167,25 @@ do -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=`echo $arg | sed 's/-*p[a-z]*=//'` ;; + -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 @@ -157,24 +210,76 @@ do | --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 + -enable-* | --enable-*) ;; #ignored -x | --x) ;; # ignored + --he*) ;; # ignored for now (--help) + --vers*) ;; # ignored for now (--version) + --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 [ x$host = x ] +# 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 - host=$target + name1=$host + name2=$arg + host= + else + name1=$arg fi - target=$arg ;; 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 @@ -204,42 +309,64 @@ then fi # Complain if an arg is missing -if [ x$target = x ] +if [ x$build = x ] then - echo "No target specified." 1>&2 + # 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 - echo "\ + 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] [--exec-pref=DIR] - [--with-gnu-as] [--with-gnu-ld] [--with-stabs] [--nfp] TARGET" 1>&2 + [--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 + if [ -r config.status ] + then + tail +2 config.status 1>&2 + fi + exit 1 fi - exit 1 fi -# Default other arg +# If $host was not specified, use $build. if [ x$host = x ] then - host=$target + host=$build fi -# If $build was not specified, use $host. -if [ x$build = x ] + +# If $target was not specified, use $host. +if [ x$target = x ] then - build=$host + 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=`$srcdir/config.sub $build` || exit 1 -canon_host=`$srcdir/config.sub $host` || exit 1 -canon_target=`$srcdir/config.sub $target` || exit 1 +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; @@ -254,6 +381,10 @@ for machine in $canon_build $canon_host xmake_file= tmake_file= header_files= + extra_passes= + extra_parts= + extra_programs= + extra_objs= # Set this to force installation and use of collect2. use_collect2= # Set this to override the default target model. @@ -262,799 +393,1487 @@ for machine in $canon_build $canon_host 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= case $machine in # Support site-specific machine types. *local*) - cpu_type=$machine - xm_file=xm-$machine.h - tm_file=$machine.h - if [ -f $srcdir/config/x-$machine ] ; \ - then xmake_file=x-$machine; \ + 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/t-$machine ] ; \ - then tmake_file=t-$machine; \ + if [ -f $srcdir/config/${cpu_type}/t-$rest ] ; \ + then tmake_file=${cpu_type}/t-$rest; \ else true; \ fi ;; - vax-*-bsd*) # vaxen running BSD - tm_file=vax.h + 1750a-*-*) + ;; + a29k-*-bsd*) + tm_file=a29k/unix.h + xm_file=a29k/xm-unix.h + xmake_file=a29k/x-unix use_collect2=yes ;; - vax-*-ultrix*) # vaxen running ultrix - tm_file=ultrix.h + a29k-*-*) # Default a29k environment. use_collect2=yes ;; - vax-*-vms*) # vaxen running VMS - xm_file=xm-vax-vms.h - tm_file=vax-vms.h + 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 ;; - vax-*-sysv*) # vaxen running system V - xm_file=xm-vaxv.h - tm_file=vaxv.h + 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 + ;; + 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-*-*) # 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. -# tahoe-harris-*) # Harris tahoe, using COFF. -# tm_file=harris.h -# ;; -# tahoe-*-bsd*) # tahoe running BSD -# xm_file=xm-tahoe.h -# tm_file=tahoe.h +# fx80-alliant-*) # Alliant FX/80 # ;; - i[34]86-*-osfrose*) # 386 using OSF/rose - tm_file=i386rose.h - xmake_file=x-i386rose - tmake_file=t-i386rose + h8300-*-*) + cpu_type=h8300 + ;; + hppa1.1-*-osf*) + cpu_type=pa + tm_file=pa/pa1-osf.h + use_collect2=yes + ;; + hppa1.0-*-osf*) + cpu_type=pa + tm_file=pa/pa-osf.h + use_collect2=yes + ;; + hppa1.1-*-bsd*) + cpu_type=pa + tm_file=pa/pa1.h use_collect2=yes ;; - i[34]86-sequent-bsd*) # 80386 from Sequent - xm_file=xm-i386.h + hppa1.0-*-bsd*) + cpu_type=pa use_collect2=yes + ;; + hppa1.0-*-hpux7*) + cpu_type=pa + xm_file=pa/xm-pahpux.h + xmake_file=pa/x-pa-hpux + tmake_file=pa/t-pa-hpux if [ x$gas = xyes ] then - tm_file=seq386gas.h + tm_file=pa/pa-gux7.h else - tm_file=seq386.h + tm_file=pa/pa-hpux7.h fi - ;; - i[34]86-*-bsd*) - xm_file=xm-i386.h - tm_file=i386bsd.h -# tmake_file=t-libc-ok + broken_install=yes + install_headers_dir=install-headers-cpio use_collect2=yes ;; - i[34]86-*-mach*) - xm_file=xm-i386.h - tm_file=i386mach.h -# tmake_file=t-libc-ok + 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-hpux + 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 ;; - i[34]86-*-sco3.2v4*) # 80386 running SCO 3.2v4 system - xm_file=xm-i386sco.h - tm_file=i386sco4.h - xmake_file=x-i386s4 - tmake_file=t-i386sco - fixincludes=fixinc.sco + 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-hpux + 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 ;; - i[34]86-*-sco*) # 80386 running SCO system - xm_file=xm-i386sco.h - tm_file=i386sco.h - xmake_file=x-i386sco - tmake_file=t-i386sco + hppa1.1-*-hpux*) + cpu_type=pa + xm_file=pa/xm-pahpux.h + xmake_file=pa/x-pa-hpux + tmake_file=pa/t-pa-hpux + 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 ;; - i[34]86-*-isc*) # 80386 running ISC system - xm_file=xm-i386isc.h - xmake_file=x-i386isc - if [ x$gas = xyes ] + hppa1.0-*-hpux*) + cpu_type=pa + xm_file=pa/xm-pahpux.h + xmake_file=pa/x-pa-hpux + tmake_file=pa/t-pa-hpux + if [ x$gas = xyes ] then - tm_file=i386iscgas.h - tmake_file=t-i386iscgas + tm_file=pa/pa-ghpux.h else - tm_file=i386isc.h - tmake_file=t-i386isc + tm_file=pa/pa-hpux.h fi broken_install=yes + install_headers_dir=install-headers-cpio + use_collect2=yes ;; - i[34]86-ibm-aix*) # IBM PS/2 running AIX - if [ x$gas = xyes ] + hppa1.1-*-hiux*) + cpu_type=pa + xm_file=pa/xm-pahiux.h + xmake_file=pa/x-pa-hiux + tmake_file=pa/t-pa-hpux + if [ x$gas = xyes ] then - tm_file=aix386.h + tm_file=pa/pa1-ghiux.h else - tm_file=aix386ng.h - use_collect2=yes + tm_file=pa/pa1-hiux.h fi - xm_file=xm-aix386.h - xmake_file=x-aix386 broken_install=yes + install_headers_dir=install-headers-cpio + use_collect2=yes ;; - i386-sun-sunos*) # Sun i386 roadrunner - xm_file=xm-sun386.h - tm_file=i386sun.h + hppa1.0-*-hiux*) + cpu_type=pa + xm_file=pa/xm-pahiux.h + xmake_file=pa/x-pa-hiux + tmake_file=pa/t-pa-hpux + 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 ;; - i[34]86-*-linux*) # Intel 80386's running Linux + 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 - xm_file=xm-linux.h - xmake_file=x-linux - tm_file=i386linux.h + if [ x$gas = xyes ] + then + tm_file=i386/aix386.h + extra_parts="crtbegin.o crtend.o" + 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=xm-i38v4.h - xmake_file=x-ncr3000 - tm_file=i386v4.h + xm_file=i386/xm-sysv4.h + xmake_file=i386/x-ncr3000 + tm_file=i386/sysv4.h tmake_file=t-svr4 ;; - i[34]86-*-sysv4*) # Intel 80386's running system V.4 + i[345]86-next-*) cpu_type=i386 - xm_file=xm-i38v4.h - tm_file=i386v4.h - tmake_file=t-svr4 - xmake_file=x-svr4 + 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[34]86-*-sysv*) # Intel 80386's running system V - xm_file=xm-i386v.h - xmake_file=x-i386v - tmake_file=t-svr3 + i[345]86-sequent-bsd*) # 80386 from Sequent + cpu_type=i386 + use_collect2=yes if [ x$gas = xyes ] then - if [ x$stabs = xyes ] - then - tm_file=i386gstabs.h - else - tm_file=i386gas.h - fi + tm_file=i386/seq-gas.h else - tm_file=i386v.h + tm_file=i386/sequent.h fi ;; - i860-*-mach*) - xm_file=xm-i860.h - tm_file=i860mach.h - tmake_file=t-libc-ok + 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=t-svr3 + fixincludes=fixinc.ptx + extra_parts="crtbegin.o crtend.o" + install_headers_dir=install-headers-cpio + broken_install=yes ;; - i860-*-sysv3*) - xm_file=xm-i86v3.h - xmake_file=x-i860v3 - tm_file=i860v3.h + 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=t-svr3 + extra_parts="crtbegin.o crtend.o" + fixincludes=fixinc.ptx + install_headers_dir=install-headers-cpio + broken_install=yes ;; - i860-*-sysv4*) - xm_file=xm-i86v4.h - xmake_file=x-i860v4 - tm_file=i860v4.h - tmake_file=t-svr4 + i386-sun-sunos*) # Sun i386 roadrunner + xm_file=i386/xm-sun.h + tm_file=i386/sun.h + use_collect2=yes ;; - i860-alliant-*) # Alliant FX/2800 - xm_file=xm-fx2800.h - xmake_file=x-fx2800 - tm_file=fx2800.h - tmake_file=t-fx2800 + i[345]86-*-bsdi* | i[345]86-*-bsd386*) + cpu_type=i386 + tm_file=i386/bsd386.h +# tmake_file=t-libc-ok ;; - i860-*-bsd*) - if [ x$gas = xyes ] + i[345]86-*-bsd*) + cpu_type=i386 + tm_file=i386/386bsd.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 + # 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-i386.h + # On NetBSD, the headers are already okay. + fixincludes=Makefile.in + xmake_file=x-netbsd + ;; + i[345]86-*-gnu*) + cpu_type=i386 + xm_file=i386/xm-gnu.h + tm_file=i386/gnu.h + tmake_file=t-libc-ok + # GNU tools are the only tools. + gnu_ld=yes + gas=yes + # On GNU, the headers are already okay. + fixincludes=Makefile.in + ;; + 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=i860bg.h + tm_file=i386/iscdbx.h + tmake_file=i386/t-svr3dbx else - tm_file=i860b.h + tm_file=i386/isccoff.h + extra_parts="crtbegin.o crtend.o" fi - use_collect2=yes + install_headers_dir=install-headers-cpio + broken_install=yes ;; - sparc-tti-*) - tm_file=pbd.h - xm_file=xm-pbd.h - use_collect2=yes + i[345]86-*-linux*) # Intel 80386's running Linux + cpu_type=i386 + xm_file=i386/xm-linux.h + xmake_file=i386/x-linux + if [ x$elf = xyes ] + then + tm_file=i386/linuxelf.h + else + tm_file=i386/linux.h + fi + fixincludes=Makefile.in #On Linux, the headers are ok already. + broken_install=yes ;; - elxsi-elxsi-*) - tm_file=elxsi.h - xm_file=xm-elxsi.h - use_collect2=yes + 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=xm-lynx.h + xmake_file=x-lynx ;; - sparc-*-sunos4*) - tm_file=sparc.h + i[345]86-*-mach*) + cpu_type=i386 + tm_file=i386/mach.h +# tmake_file=t-libc-ok use_collect2=yes ;; - sparc-*-sunos3*) - tm_file=sun4o3.h - 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 ;; - sparc-*-sysv4*) - xm_file=xm-spcv4.h - tm_file=sparcv4.h - tmake_file=t-svr4 - xmake_file=x-sparcv4 + 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 + else + tm_file=i386/sco4.h + extra_parts="crtbegin.o crtend.o" + fi ;; - sparc-*-solaris2* | sparc-*-sunos5*) - xm_file=xm-spc-sol2.h - tm_file=spc-sol2.h - tmake_file=t-sol2 - xmake_file=x-sparcv4 - fixincludes=fixinc.svr4 + 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 + else + tm_file=i386/sco.h + extra_parts="crtbegin.o crtend.o" + fi + truncate_target=yes ;; - m68k-cbm-sysv4*) # Commodore variant of V.4. - tm_file=amix.h - xm_file=xm-amix.h - xmake_file=x-amix - tmake_file=t-svr4 - header_files=math-68881.h + 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 ;; - m68k-*-sysv4*) # Motorola m68k's running system V.4 - tm_file=m68kv4.h - xm_file=xm-m68kv.h + 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=t-svr4 - header_files=math-68881.h + xmake_file=x-svr4 ;; - m68k-bull-sysv*) # Bull DPX/2 + 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 - tm_file=dpx2g.h + if [ x$stabs = xyes ] + then + tm_file=i386/svr3dbx.h + tmake_file=i386/t-svr3dbx + else + tm_file=i386/svr3gas.h + extra_parts="crtbegin.o crtend.o" + fi else - echo dpx2 supported only with GAS 1>&2 - exit 1 - tm_file=dpx2.h + tm_file=i386/sysv3.h + extra_parts="crtbegin.o crtend.o" fi - xm_file=xm-m68kv.h - xmake_file=x-dpx2 - use_collect2=yes - header_files=math-68881.h - ;; - m68k-next-*) - tm_file=next.h - out_file=next.c - xm_file=xm-next.h - tmake_file=t-next - xmake_file=x-next - use_collect2=yes - header_files=math-68881.h ;; - m68k-sun-sunos3*) - if [ x$nfp = xyes ] + i[345]86-*-winnt3*) + cpu_type=i386 + tm_file=i386/winnt.h + out_file=i386/i386.c + xm_file=i386/xm-winnt.h + xmake_file=i386/x-winnt + if [ x$gnu_ld != xyes ] then - tm_file=sun3n3.h - else - tm_file=sun3o3.h + extra_programs=ld fi - use_collect2=yes - header_files=math-68881.h ;; - m68k-sun-sunos*) # For SunOS 4 (the default). - if [ x$nfp = xyes ] + 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=sun3n.h + tm_file=i860/bsd-gas.h else - tm_file=sun3.h + tm_file=i860/bsd.h fi use_collect2=yes - header_files=math-68881.h ;; - m68k-sun-mach*) - tm_file=sun3mach.h + 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 + ;; + 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 header_files=math-68881.h ;; - m68k-tti-*) - tm_file=pbb.h - xm_file=xm-m68kv.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 header_files=math-68881.h ;; - m68k-hp-hpux*) # HP 9000 series 300 - xm_file=xm-hp320.h + m68000-hp-hpux*) # HP 9000 series 300 + cpu_type=m68k + xm_file=m68k/xm-hp320.h if [ x$gas = xyes ] then - xmake_file=x-hp320g - tmake_file=t-hp320g - tm_file=hp320g.h + xmake_file=m68k/x-hp320g + tm_file=m68k/hp310g.h else - xmake_file=x-hp320 - tm_file=hp320.h + xmake_file=m68k/x-hp320 + tm_file=m68k/hp310.h fi broken_install=yes + install_headers_dir=install-headers-cpio use_collect2=yes header_files=math-68881.h ;; - m68k-hp-bsd*) # HP 9000/3xx running Berkeley Unix - tm_file=hp3bsd.h + m68000-sun-sunos3*) + cpu_type=m68k + tm_file=m68k/sun2.h use_collect2=yes header_files=math-68881.h ;; - m68k-isi-bsd*) - if [ x$nfp = xyes ] - then - tm_file=isi-nfp.h - else - tm_file=isi.h - fi + m68000-sun-sunos4*) + cpu_type=m68k + tm_file=m68k/sun2o4.h use_collect2=yes header_files=math-68881.h ;; - m68k-sony-newsos3*) - xm_file=xm-m68k.h + m68000-att-sysv*) + cpu_type=m68k + xm_file=m68k/xm-3b1.h if [ x$gas = xyes ] then - tm_file=news3gas.h + tm_file=m68k/3b1g.h else - tm_file=news3.h + tm_file=m68k/3b1.h fi use_collect2=yes header_files=math-68881.h ;; - m68k-sony-bsd* | m68k-sony-newsos*) - xm_file=xm-m68k.h - if [ x$gas = xyes ] - then - tm_file=newsgas.h - else - tm_file=news.h - fi + m68k-apollo-*) + xmake_file=m68k/x-apollo68 + tm_file=m68k/apollo68.h use_collect2=yes header_files=math-68881.h ;; m68k-altos-sysv*) # Altos 3068 if [ x$gas = xyes ] then - xm_file=xm-altos3068.h - tm_file=altos3068.h + 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 header_files=math-68881.h ;; - m68k-motorola-sysv*) - tm_file=mot3300.h - xm_file=xm-mot3300.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 header_files=math-68881.h ;; - m68k-crds-unos*) - xm_file=xm-crds.h - xmake_file=x-crds - tm_file=crds.h - broken_install=yes - use_collect2=yes + m68k-atari-sysv4*) # Atari variant of V.4. + tm_file=m68k/atari.h + xm_file=m68k/xm-atari.h + tmake_file=t-svr4 header_files=math-68881.h ;; - m68k-apollo-*) - xmake_file=x-apollo68 - tm_file=apollo68.h + m68k-motorola-sysv*) + xm_file=m68k/xm-mot3300.h + xmake_file=m68k/x-alloca-c + if [ x$gas = xyes ] + then + tm_file=m68k/mot3300g.h + else + tm_file=m68k/mot3300.h + fi use_collect2=yes header_files=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" + header_files=math-68881.h + ;; m68k-plexus-sysv*) - cpu_type=m68k - tm_file=plexus.h + tm_file=m68k/plexus.h + xm_file=m68k/xm-plexus.h use_collect2=yes - xm_file=xm-plexus.h header_files=math-68881.h ;; - m68k-ncr-sysv*) # NCR Tower 32 SVR3 - tm_file=tower-as.h - xm_file=xm-tower.h - xmake_file=x-tower - tmake_file=t-svr3 + m68k-tti-*) + tm_file=m68k/pbb.h + xm_file=m68k/xm-m68kv.h header_files=math-68881.h ;; - m68k-*-sysv3*) # Motorola m68k's running system V.3 - tm_file=m68k.h - xm_file=xm-m68kv.h - xmake_file=x-m68kv - tmake_file=t-svr3 + 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 header_files=math-68881.h ;; - m68000-sun-sunos3*) - cpu_type=m68k - tm_file=sun2.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 + header_files=math-68881.h + ;; + m68k-ccur-rtu) + tm_file=m68k/ccur-GAS.h + xmake_file=m68k/x-ccur + header_files=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 header_files=math-68881.h ;; - m68000-sun-sunos4*) - cpu_type=m68k - tm_file=sun2o4.h + m68k-hp-bsd*) # HP 9000/3xx running Berkeley Unix + tm_file=m68k/hp3bsd.h use_collect2=yes header_files=math-68881.h ;; - m68000-hp-hpux*) # HP 9000 series 300 - cpu_type=m68k - xm_file=xm-hp320.h - if [ x$gas = xyes ] + m68k-isi-bsd*) + if [ x$nfp = xyes ] then - xmake_file=x-hp320g - tm_file=hp310g.h + tm_file=m68k/isi-nfp.h else - xmake_file=x-hp320 - tm_file=hp310.h + tm_file=m68k/isi.h fi - broken_install=yes use_collect2=yes header_files=math-68881.h ;; - m68000-hp-bsd*) # HP 9000/200 running BSD - cpu_type=m68k - tm_file=hp2bsd.h - xmake_file=x-hp2bsd + 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 header_files=math-68881.h ;; - m68000-att-sysv*) - cpu_type=m68k - xm_file=xm-3b1.h + m68k-hp-hpux*) # HP 9000 series 300 + xm_file=m68k/xm-hp320.h if [ x$gas = xyes ] then - tm_file=3b1g.h + xmake_file=m68k/x-hp320g + tm_file=m68k/hp320g.h else - tm_file=3b1.h + xmake_file=m68k/x-hp320 + tm_file=m68k/hp320.h fi + broken_install=yes + install_headers_dir=install-headers-cpio use_collect2=yes header_files=math-68881.h ;; - m68000-convergent-sysv*) - cpu_type=m68k - xm_file=xm-3b1.h - tm_file=ctix.h + m68k-sun-mach*) + tm_file=m68k/sun3mach.h use_collect2=yes header_files=math-68881.h ;; - ns32k-encore-osf*) # Encore with OSF/rose - tm_file=encrose.h - xmake_file=x-encrose - tmake_file=t-encrose + m68k-sony-newsos3*) + if [ x$gas = xyes ] + then + tm_file=m68k/news3gas.h + else + tm_file=m68k/news3.h + fi use_collect2=yes + header_files=math-68881.h ;; - ns32k-sequent-bsd*) - tm_file=sequent.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 + header_files=math-68881.h ;; - ns32k-encore-bsd*) - tm_file=encore.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 + header_files=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 + header_files=math-68881.h ;; -# This has not been updated to GCC 2. -# ns32k-ns-genix*) -# xm_file=xm-genix.h -# xmake_file=x-genix -# tm_file=genix.h -# broken_install=yes -# use_collect2=yes -# ;; - ns32k-merlin-*) - tm_file=merlin.h + m68k-sun-sunos3*) + if [ x$nfp = xyes ] + then + tm_file=m68k/sun3n3.h + else + tm_file=m68k/sun3o3.h + fi use_collect2=yes + header_files=math-68881.h ;; - ns32k-tek6100-bsd*) - tm_file=tek6100.h - broken_install=yes + m68k-sun-sunos* | m68k-wrs-vxworks) # 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 + header_files=math-68881.h ;; - ns32k-tek6200-bsd*) - tm_file=tek6200.h - broken_install=yes - use_collect2=yes + m68k-*-lynxos*) + if [ x$gas = xyes ] + then + tm_file=m68k/lynx.h + else + tm_file=m68k/lynx-ng.h + fi + xm_file=xm-lynx.h + xmake_file=x-lynx + header_files=math-68881.h ;; - ns32k-pc532-mach*) - tm_file=pc532-mach.h - use_collect2=yes + m68k-*-netbsd*) + cpu_type=m68k + tm_file=m68k/netbsd-m68k.h + # On NetBSD, the headers are already okay. + fixincludes=Makefile.in + xmake_file=x-netbsd ;; - ns32k-pc532-minix*) - tm_file=pc532-min.h - xm_file=xm-pc532-min.h - use_collect2=yes + 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" + header_files=math-68881.h ;; - m88k-*-luna*) - tm_file=m88kluna.h - tmake_file=t-m88kluna + m68k-*-sysv4*) # Motorola m68k's running system V.4 + tm_file=m68k/m68kv4.h + xm_file=m68k/xm-m68kv.h + tmake_file=t-svr4 + header_files=math-68881.h ;; m88k-dg-dgux*) - tm_file=m88kdgux.h - xmake_file=x-m88kdgux + 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 - ;; - m88k-*-sysv4*) - tm_file=m88kv4.h - xmake_file=x-m88kv4 - tmake_file=t-m88kv4 + 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=m88kdolph.h - xm_file=xm-m88kv3.h - xmake_file=x-m88kdolph + 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-*-sysv3*) - tm_file=m88kv3.h - xm_file=xm-m88kv3.h + 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 ;; -# This hasn't been upgraded to GCC 2. -# fx80-alliant-*) # Alliant FX/80 -# tm_file=fx80.h -# ;; - arm-*-*) # Acorn RISC machine - tm_file=arm.h + m88k-mot*-sysv4*) + tm_file=m88k/mot-sysv4.h + extra_parts="crtbegin.o crtend.o" + xmake_file=m88k/x-sysv4 + tmake_file=m88k/t-sysv4 ;; - c1-convex-*) # Convex C1 - tm_file=convex1.h - cpu_type=convex - use_collect2=yes + 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 ;; - c2-convex-*) # Convex C2 - tm_file=convex2.h - cpu_type=convex - use_collect2=yes + 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 ;; - c32-convex-*) - tm_file=convex32.h # Convex C32xx - cpu_type=convex - use_collect2=yes + m88k-*-sysv4*) + tm_file=m88k/sysv4.h + extra_parts="crtbegin.o crtend.o" + xmake_file=m88k/x-sysv4 + tmake_file=m88k/t-sysv4 ;; - c34-convex-*) - tm_file=convex34.h # Convex C34xx - cpu_type=convex + 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 ;; - c38-convex-*) - tm_file=convex38.h # Convex C38xx - cpu_type=convex - 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=iris4g.h + tm_file=mips/iris4-gdb.h else - tm_file=iris4.h + tm_file=mips/iris4.h fi - xm_file=xm-irix4.h + xm_file=mips/xm-iris4.h broken_install=yes - xmake_file=x-iris - use_collect2=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=irisgdb.h + tm_file=mips/iris3-gdb.h else - tm_file=iris.h + tm_file=mips/iris3.h fi - xm_file=xm-iris.h + xm_file=mips/xm-iris3.h broken_install=yes - xmake_file=x-iris - use_collect2=yes - ;; - mips-dec-ultrix*) # Decstation. - if [ x$stabs = xyes ]; then - tm_file=decstabs.h + xmake_file=mips/x-iris3 + if [ x$gas = xyes ] + then + tmake_file=mips/t-mips-gas else - tm_file=decstatn.h + extra_passes="mips-tfile mips-tdump" fi - tmake_file=t-decstatn - xmake_file=x-decstatn - use_collect2=yes - ;; + if [ x$gnu_ld != xyes ] + then + use_collect2=yes + fi + ;; mips-dec-osfrose*) # Decstation running OSF/1 reference port with OSF/rose. - tm_file=decrose.h - xmake_file=x-decrose - tmake_file=t-decrose + 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=dec-gosf1.h + tm_file=mips/dec-gosf1.h else - tm_file=dec-osf1.h + 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 - xmake_file=x-dec-osf1 - tmake_file=t-decstatn - use_collect2=yes ;; + 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-sony-bsd* | mips-sony-newsos*) # Sony NEWS 3600 or risc/news. if [ x$stabs = xyes ]; then - tm_file=mips-gnews.h + tm_file=mips/news4-gdb.h else - tm_file=mips-news.h + tm_file=mips/news4.h fi - xm_file=xm-mips.h - use_collect2=yes + 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-gn5.h + tm_file=mips/news5-gdb.h else - tm_file=mips-n5.h + tm_file=mips/news5.h fi - xm_file=xm-mipsnews.h - use_collect2=yes + 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-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]bsd* | mips-*riscos[56789]-bsd*) + mips-*-ultrix*) # 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-5gbsd.h + tm_file=mips/bsd-5-gdb.h else - tm_file=mips-5bsd.h + tm_file=mips/bsd-5.h fi - use_collect2=yes + 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* \ - | mips-*riscos-bsd* | mips-*riscos[1234]-bsd*) + mips-*-bsd* | mips-*-riscosbsd* | mips-*-riscos[1234]bsd*) if [ x$stabs = xyes ]; then # MIPS BSD 4.3, RISC-OS 4.0 - tm_file=mips-gbsd.h + tm_file=mips/bsd-4-gdb.h else - tm_file=mips-bsd.h + tm_file=mips/bsd-4.h fi - use_collect2=yes + 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* | mips-*riscos[56789]-sysv4*) + mips-*-riscos[56789]sysv4*) if [ x$stabs = xyes ]; then # MIPS System V.4., RISC-OS 5.0 - tm_file=mips-5gsvr4.h + 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 - tm_file=mips-5svr4.h + tmake_file=mips/t-svr4 + extra_passes="mips-tfile mips-tdump" + fi + if [ x$gnu_ld != xyes ] + then + use_collect2=yes fi - xm_file=xm-umips.h - xmake_file=x-mipsv + broken_install=yes ;; - mips-*-sysv4* | mips-*riscos[1234]sysv4* | mips-*riscossysv4* \ - | mips-*riscos[1234]-sysv4* | mips-*riscos-sysv4*) + mips-*-sysv4* | mips-*-riscos[1234]sysv4* | mips-*-riscossysv4*) if [ x$stabs = xyes ]; then # MIPS System V.4. RISC-OS 4.0 - tm_file=mips-gsvr4.h + 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 - tm_file=mips-svr4.h + tmake_file=mips/t-svr4 + extra_passes="mips-tfile mips-tdump" fi - xm_file=xm-umips.h - xmake_file=x-mipsv + if [ x$gnu_ld != xyes ] + then + use_collect2=yes + fi + broken_install=yes ;; - mips-*riscos[56789]sysv* | mips-*-riscos[56788]-sysv*) + mips-*-riscos[56789]sysv*) if [ x$stabs = xyes ]; then # MIPS System V.3, RISC-OS 5.0 - tm_file=mips-5gsysv.h + tm_file=mips/svr3-5-gdb.h else - tm_file=mips-5sysv.h + tm_file=mips/svr3-5.h fi - xm_file=xm-umips.h - xmake_file=x-mipsv - use_collect2=yes + 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-*riscossysv* | mips-*riscos-sysv*) + mips-*-sysv* | mips-*-riscos*sysv*) if [ x$stabs = xyes ]; then # MIPS System V.3, RISC-OS 4.0 - tm_file=mips-gsysv.h + tm_file=mips/svr3-4-gdb.h else - tm_file=mips-sysv.h + tm_file=mips/svr3-4.h fi - xm_file=xm-umips.h - xmake_file=x-mipsv - use_collect2=yes + 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. + mips-*-riscos[56789]*) # Default MIPS RISC-OS 5.0. if [ x$stabs = xyes ]; then - tm_file=mips-5gdb.h + tm_file=mips/mips-5-gdb.h else - tm_file=mips-5.h + tm_file=mips/mips-5.h fi - use_collect2=yes + 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-*-*) # Default MIPS RISC-OS 4.0. if [ x$stabs = xyes ]; then - tm_file=mips-gdb.h + 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 - tm_file=mips.h + 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 ;; - pyramid-*-*) - cpu_type=pyr - tm_file=pyr.h + ns32k-sequent-bsd*) + tm_file=ns32k/sequent.h use_collect2=yes ;; -# This hasn't been upgraded to GCC 2. -# tron-*-*) -# cpu_type=gmicro -# tm_file=gmicro.h + 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 # ;; - a29k-*-bsd*) - tm_file=a29kunix.h - xm_file=xm-a29kunix.h - xmake_file=x-a29kunix + ns32k-merlin-*) + tm_file=ns32k/merlin.h use_collect2=yes ;; - a29k-*-*) # Default a29k environment. + 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*) - xm_file=xm-romp.h - tm_file=romp.h use_collect2=yes ;; romp-*-mach*) - xm_file=xm-romp.h - tm_file=romp.h - xmake_file=x-romp-mach + xmake_file=romp/x-mach use_collect2=yes ;; - rs6000-*-mach*) - xm_file=xm-rs6k-m.h - tm_file=rs6000-mach.h - xmake_file=x-rs6k-mach + powerpc-ibm-aix*) + cpu_type=rs6000 + tm_file=rs6000/powerpc.h + use_collect2=yes + ;; + rs6000-ibm-aix3.[01]*) + tm_file=rs6000/aix31.h + xmake_file=rs6000/x-aix31 use_collect2=yes ;; - rs6000-ibm-aix32) - xm_file=xm-rs6000.h - tm_file=rs6000-aix32.h + rs6000-ibm-aix4.1*) + tm_file=rs6000/aix41.h + xmake_file=rs6000/x-aix31 use_collect2=yes ;; rs6000-ibm-aix*) - xm_file=xm-rs6000.h - tm_file=rs6000.h use_collect2=yes ;; - hppa1.1-*-bsd*) - cpu_type=pa - xm_file=xm-pa.h - tm_file=pa1.h - xmake_file=x-pa - tmake_file=t-pa + rs6000-bull-bosx) use_collect2=yes ;; - hppa1.0-*-bsd*) - cpu_type=pa - xm_file=xm-pa.h - tm_file=pa.h - xmake_file=x-pa - tmake_file=t-pa + rs6000-*-mach*) + xm_file=rs6000/xm-mach.h + tm_file=rs6000/mach.h + xmake_file=rs6000/x-mach use_collect2=yes ;; - hppa1.0-*-hpux7*) - cpu_type=pa - xm_file=xm-pahpux.h - xmake_file=x-pa-hpux - tmake_file=t-libc-ok + sh-*-*) + cpu_type=sh + ;; + sparc-tti-*) + tm_file=sparc/pbd.h + xm_file=sparc/xm-pbd.h + ;; + sparc-*-netbsd) + tm_file=sparc/netbsd.h + # On NetBSD, the headers are already okay. + fixincludes=Makefile.in + xmake_file=x-netbsd + ;; + sparc-*-bsd*) + tm_file=sparc/bsd.h + ;; + sparc-*-lynxos*) if [ x$gas = xyes ] then - tm_file=pa-gux7.h + tm_file=sparc/lynx.h else - tm_file=pa-hpux7.h + tm_file=sparc/lynx-ng.h fi + xm_file=xm-lynx.h + 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/sparc.h + tmake_file=sparc/t-sunos40 use_collect2=yes ;; - hppa1.1-*-hpux*) - cpu_type=pa - xm_file=xm-pahpux.h - xmake_file=x-pa-hpux - tmake_file=t-libc-ok - if [ x$gas = xyes ] - then - tm_file=pa1-ghpux.h - else - tm_file=pa1-hpux.h - fi - broken_install=yes + sparc-*-sunos4*) + tm_file=sparc/sparc.h + tmake_file=sparc/t-sunos41 use_collect2=yes ;; - hppa1.0-*-hpux*) - cpu_type=pa - xm_file=xm-pahpux.h - xmake_file=x-pa-hpux - tmake_file=t-libc-ok - if [ x$gas = xyes ] - then - tm_file=pa-ghpux.h - else - tm_file=pa-hpux.h - fi - broken_install=yes + sparc-*-sunos3*) + tm_file=sparc/sun4o3.h use_collect2=yes ;; - we32k-att-sysv*) - cpu_type=we32k + sparc-*-sysv4*) + xm_file=sparc/xm-sysv4.h + tm_file=sparc/sysv4.h + tmake_file=t-svr4 + xmake_file=sparc/x-sysv4 + ;; + sparclite-*-*) + cpu_type=sparc + tm_file=sparc/lite.h + 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 + ;; +# 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 ;; - alpha-*-osf*) - cpu_type=alpha - broken_install=yes + vax-*-sysv*) # vaxen running system V + xm_file=vax/xm-vaxv.h + tm_file=vax/vaxv.h + ;; + vax-*-ultrix*) # vaxen running ultrix + tm_file=vax/ultrix.h use_collect2=yes ;; - i960-*-*) # Default i960 environment. + vax-*-vms*) # vaxen running VMS + xm_file=vax/xm-vms.h + tm_file=vax/vms.h + ;; + pdp11-*-*) + xm_file=pdp11/xm-pdp11.h + tm_file=pdp11/pdp11.h + ;; + we32k-att-sysv*) + cpu_type=we32k use_collect2=yes ;; *) @@ -1068,17 +1887,33 @@ for machine in $canon_build $canon_host 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. + # 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 - i486-*-*) + 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. @@ -1097,21 +1932,25 @@ for machine in $canon_build $canon_host # 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=xm-$cpu_type.h + 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=xm-$cpu_type.h + 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=x-$cpu_type + 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 @@ -1119,28 +1958,35 @@ done # Default the target-machine variables that were not explicitly set. if [ x$tm_file = x ] -then tm_file=$cpu_type.h; fi +then tm_file=$cpu_type/$cpu_type.h; fi if [ x$header_files = x ] then header_files=; fi if [ x$xm_file = x ] -then xm_file=xm-$cpu_type.h; fi +then xm_file=$cpu_type/xm-$cpu_type.h; fi -md_file=${cpu_type}.md +md_file=$cpu_type/$cpu_type.md if [ x$out_file = x ] -then out_file=$cpu_type.c; fi +then out_file=$cpu_type/$cpu_type.c; fi if [ x$tmake_file = x ] -then tmake_file=t-$cpu_type +then tmake_file=$cpu_type/t-$cpu_type 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 $md_file $out_file $xm_file $build_xm_file" -links="config.h tm.h md aux-output.c tconfig.h hconfig.h" +files="$host_xm_file $tm_file $out_file $xm_file $build_xm_file $md_file" +links="config.h tm.h aux-output.c tconfig.h hconfig.h" + +if [ "x$md_cppflags" = x ] +then links="$links md" +else links="$links md.pre-cpp" +fi + +rm -f config.bak +if [ -f config.status ]; then mv -f config.status config.bak; fi # Make the links. while [ -n "$files" ] @@ -1157,7 +2003,6 @@ do fi $remove -f $link - rm -f config.status # Make a symlink if possible, otherwise try a hard link $symbolic_link ${srcdir}/config/$file $link 2>/dev/null || $hard_link ${srcdir}/config/$file $link || $copy ${srcdir}/config/$file $link @@ -1169,165 +2014,465 @@ do echo "Linked \`$link' to \`${srcdir}/config/$file'" done -# 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 -.) - 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 - echo "source ${srcdir}/.gdbinit" >> .gdbinit - ;; -esac - -# Conditionalize the makefile for this host machine. -if [ -f ${srcdir}/config/${host_xmake_file} ] -then - rm -f Makefile.xx - sed -e "/####host/ r ${srcdir}/config/${host_xmake_file}" Makefile.tem > Makefile.xx - echo "Merged ${host_xmake_file}." - rm -f Makefile.tem - mv Makefile.xx Makefile.tem -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. - host_xmake_file=../Makefile.in +# Truncate the target if necessary +if [ x$host_truncate_target != x ]; then + target=`echo $target | sed -e 's/\(..............\).*/\1/'` fi -# 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 +# Get the version number from the toplevel +version=`sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/' < ${srcdir}/version.c` -# Set EXTRA_HEADERS according to header_files. -# This substitutes for lots of t-* files. -if [ x$header_files = x ] -then true -else - rm -f Makefile.xx - sed "s/^EXTRA_HEADERS =/EXTRA_HEADERS = $header_files/" Makefile.tem > Makefile.xx - rm -f Makefile.tem - mv Makefile.xx Makefile.tem -fi +# For the current directory and all of the language subdirectories, +# do the rest of the script ... -# 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 +subdirs= +for lang in ${srcdir}/*/config-lang.in .. +do + case $lang in + ..) ;; + # The odd quoting in the next line is an attempt to work around + # an apparent bug in bash 1.12 on linux. This is known to not + # work for bash 1.12.4. Try using ${srcdir}/[*]/config-lang.in + # here if this doesn't work for you. + ${srcdir}'/*/config-lang.in') ;; + *) subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`" ;; + esac +done -# 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 - (echo "MAYBE_TARGET_DEFAULT = -DTARGET_CPU_DEFAULT=$target_cpu_default")\ - | cat - Makefile.tem > Makefile.xx - rm -f Makefile.tem - mv Makefile.xx Makefile.tem -fi +savesrcdir=$srcdir +for subdir in . $subdirs +do + oldsrcdir=$savesrcdir -# Conditionalize the makefile for this target machine. -if [ -f ${srcdir}/config/${tmake_file} ] -then + # 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$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 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 header_files. + # This substitutes for lots of t-* files. + if [ "x$header_files" = x ] + then true + else + # Prepend ${srcdir}/ginclude/ to every entry in header_files. + list= + for file in $header_files; + 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 + + # 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 true + else + rm -f Makefile.xx + (if [ x$host = x$build ] ; then + echo "MD_DEPS = md.pre-cpp cpp" ; echo "MD_CPP = ./cpp" + else + echo "MD_DEPS = md.pre-cpp" ; echo "MD_CPP = \$(HOST_CC) -x c -E" + fi + 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 + + # 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 realclean \ + 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 + + # 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' + # and `INSTALL_HEADERS_DIR' values in the Makefile from the values + # they have in this script. rm -f Makefile.xx - sed -e "/####target/ r ${srcdir}/config/${tmake_file}" Makefile.tem > Makefile.xx - echo "Merged ${tmake_file}." + sed -e "s/ //" -e "s/^target=.*$/target=${target}/" \ + -e "s|^xmake_file=.*$|xmake_file=${dep_host_xmake_file}|" \ + -e "s|^tmake_file=.*$|tmake_file=${dep_tmake_file}|" \ + -e "s|^version=.*$|version=${version}|" \ + -e "s|^prefix[ ]*=.*|prefix = $prefix|" \ + -e "s|^gxx_include_dir[ ]*=.*|gxx_include_dir = $gxx_include_dir|" \ + -e "s|^local_prefix[ ]*=.*|local_prefix = $local_prefix|" \ + -e "s|^exec_prefix[ ]*=.*|exec_prefix = $exec_prefix|" \ + -e "s|^FIXINCLUDES[ ]*=.*|FIXINCLUDES = $fixincludes|" \ + -e "s|^INSTALL_HEADERS_DIR[ ]*=.*$|INSTALL_HEADERS_DIR = ${host_install_headers_dir}|" \ + Makefile.tem > Makefile.xx rm -f Makefile.tem mv Makefile.xx Makefile.tem -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. - tmake_file=../Makefile.in -fi - -# Remove all formfeeds, since some Makes get confused by them. -# Also arrange to give the variables `target', `host_xmake_file', -# `tmake_file', `prefix', `exec_prefix' and `FIXINCLUDES' -# values in the Makefile from the values they have in this script. -rm -f Makefile.xx -sed -e "s/ //" -e "s/^target=.*$/target=${target}/" \ - -e "s|^xmake_file=.*$|xmake_file=${host_xmake_file}|" \ - -e "s|^tmake_file=.*$|tmake_file=${tmake_file}|" \ - -e "s|^prefix[ ]*=.*|prefix = $prefix|" \ - -e "s|^exec_prefix[ ]*=.*|exec_prefix = $exec_prefix|" \ - -e "s|^FIXINCLUDES[ ]*=.*|FIXINCLUDES = $fixincludes|" \ - Makefile.tem > Makefile.xx -rm -f Makefile.tem -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$host = x$target ] -then - rm -f Makefile - if [ x$host = x$build ] + + # 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 - mv Makefile.tem Makefile + 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 -# When build gcc with cross-compiler, we need to fix a -# few things. - echo "build= $build" > Makefile - sed -e "/####build/ r ${srcdir}/build-make" Makefile.tem >> Makefile + 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 -else - rm -f Makefile - echo "CROSS=-DCROSS_COMPILE" > Makefile - sed -e "/####cross/ r ${srcdir}/cross-make" Makefile.tem >> Makefile - rm -f Makefile.tem Makefile.xx -fi - -echo "Created \`Makefile'." + + echo "Created \`$subdir/Makefile'." + + if [ xx${vint} != xx ] + then + vintmsg=" (vint)" + fi + + # 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 -if [ xx${vint} != xx ] -then - vintmsg=" (vint)" -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.status -echo echo host=$canon_host target=$canon_target build=$canon_build >> config.status -chmod a+x config.status +${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 - echo "Links are now set up for target $canon_target." + str1="native " else - echo "Links are now set up for host $canon_host and target $canon_target." + 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