diff options
Diffstat (limited to 'configure')
-rwxr-xr-x | configure | 853 |
1 files changed, 853 insertions, 0 deletions
diff --git a/configure b/configure new file mode 100755 index 0000000..f5a812d --- /dev/null +++ b/configure @@ -0,0 +1,853 @@ +#!/bin/sh +# Do not edit this file. It is generated automatically from configure.in +# and a configure template. +configdirs= + +#!/bin/sh +# Do not edit this file. It is generated automatically from configure.in +# and a configure template. +configdirs= + +# Configuration script template +# Copyright (C) 1988, 1990, 1991 Free Software Foundation, Inc. + +#This file is part of GNU. + +#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 1, 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, 675 Mass Ave, Cambridge, MA 02139, USA. + +# +# Shell script to create proper links to machine-dependent files in +# preparation for compiling gcc. +# +# Usage: configure [+srcdir=DIR] [+host=HOST] [+gas] [+nfp] TARGET +# +# If configure succeeds, it leaves its status in config.status. +# If configure fails after disturbing the status quo, +# config.status is removed. +# + +progname=$0 + +remove=rm +hard_link=ln +symbolic_link='ln -s' + +#for Test +#remove="echo rm" +#hard_link="echo ln" +#symbolic_link="echo ln -s" + +# clear some things potentially inherited from environment. +target= +template= +removing= +norecurse= +ansi= + +for arg in $*; +do + case $arg in + -ansi | +ansi) + ansi=true + ;; + -template=* | +template=*) + template=`echo $arg | sed 's/[+-]template=//'` + ;; + -norecurse | +norecurse) + norecurse=true + ;; + -rm | +rm) + removing=$arg + ;; + -srcdir=* | +srcdir=* | +srcdi=* | +srcd=* | +src=* | +sr=* | +s=*) + srcdir=`echo $arg | sed 's/[+-]s[a-z]*=//'` + ;; + -host=* | +host=* | +hos=* | +ho=* | +h=*) + host=`echo $arg | sed 's/[+-]h[a-z]*=//'` + ;; + -languages=* | +languages=* | -languag=* | +languag=* | langua=* \ + | +langua=* | -langu=* | +langu=* | -lang=* | +lang=* | -lan=* \ + | +lan=* | -la=* | +la=* | -l=* | +l=*) + languages="$languages `echo $arg | sed 's/[+-]l[a-z]*=//'`" + ;; + -gas | +gas | +ga | +g) + gas=yes + ;; + -nfp | +nfp | +nf | +n) + nfp=yes + ;; + *) +# Allow configure HOST TARGET + if [ x$host = x ] ; then host=$target ; fi + target=$arg + ;; + esac +done + +# process host and target only if not rebuilding configure itself. +if [ -z "$template" ] +then + # Complain if an arg is missing + if [ x$target = x ] + then + echo "Usage: $progname [+srcdir=DIR] [+host=HOST] [+gas] [+nfp] TARGET" + echo -n "Where HOST and TARGET are something like " + echo "\`vax', \`sun3', \`encore', etc." + if [ -r config.status ] + then + cat config.status + fi + exit 1 + fi + + # Default other arg + if [ x$host = x ] + then + host=$target + fi + + # 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 $host $target; do + + # Separate what the user gave into CPU/company and OS (if any). + basic_machine=`echo $machine | sed 's/-[^-]*$//'` + if [ $basic_machine != $machine ] + then os=`echo $machine | sed 's/[^-]*-/-/'` + else os=; fi + + # Decode aliases for certain machine/company combinations. + case $basic_machine in + iris | iris4d) + basic_machine=mips/sgi + ;; + news | news800) + basic_machine=m68k/sony + ;; + 3b1 | 7300 | 7300/att | att-7300) + basic_machine=m68k/att + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300/motorola | delta/motorola) + basic_machine=m68k/motorola + ;; + vax/dec) + basic_machine=vax + ;; + balance) + basic_machine=ns32k/sequent + ;; + symmetry) + basic_machine=i386/sequent + ;; + sun2) + basic_machine=m68000/sun + ;; + sun3) + basic_machine=m68k/sun + ;; + sun4) + basic_machine=sparc/sun + ;; + sun386 | sun386i) + basic_machine=i386/sun + ;; + ps2) + basic_machine=i386/ibm + ;; + next) + basic_machine=m68k/next + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k/hp + ;; + hp9k31[0-9] | hp9k2[0-9][0-9]) + basic_machine=m68000/hp + ;; + isi68) + basic_machine=m68k/isi + ;; + apollo68) + basic_machine=m68k/apollo + ;; + altos | altos3068) + basic_machine=m68k/altos + ;; + miniframe) + basic_machine=m68000/convergent + ;; + tower | tower-32) + basic_machine=m68k/ncr + ;; + news-3600 | risc-news) + basic_machine=mips/sony + ;; + decstation | decstation-3100 | pmax) + basic_machine=mips/dec + ;; + gmicro) + basic_machine=tron + ;; + convex-c1) + basic_machine=c1/convex + ;; + convex-c2) + basic_machine=c2/convex + ;; + esac + + # Decode manufacturer-specific aliases for certain operating systems. + + case $os in + -newsos*) + os=-bsd + ;; + -ultrix*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -ctix*) + os=-sysv + ;; + esac + + machine=$basic_machine$os + + cpu_type= + xm_file= + tm_file= + make_var_file= + + case $machine in + vax | vax-bsd*) # vaxen running BSD + ;; + vax-vms | vms) # vaxen running VMS + cpu_type=vax + xm_file=xm-vms.h + tm_file=tm-vms.h + ;; + vax-sysv* | vaxv) # vaxen running system V + cpu_type=vax + xm_file=xm-vaxv.h + tm_file=tm-vaxv.h + ;; + tahoe | tahoe-bsd*) # tahoe running BSD + ;; + tahoe/harris*) # Harris tahoe, using COFF. + cpu_type=tahoe + ;; + i386/sequent* | i386/sequent-bsd*) # 80386 from Sequent + cpu_type=i386 + xm_file=xm-i386.h + tm_file=tm-seq386.h + ;; + i386-mach | i386/*-mach) + cpu_type=i386 + xm_file=xm-i386.h + tm_file=tm-i386gas.h + ;; + i386/sco | i386/sco-sysv* | i386/*-sco) # 80386 running SCO system + cpu_type=i386 + xm_file=xm-i386v.h + tm_file=tm-i386sco.h + make_var_file=make-i386sco + ;; + i386/isc | i386/isc-sysv* | i386/*-isc) # 80386 running ISC system + cpu_type=i386 + xm_file=xm-i386v.h + tm_file=tm-i386isc.h + make_var_file=make-i386isc + ;; + i386/ibm | i386-aix | i386/ibm-aix) # IBM PS/2 running AIX + cpu_type=i386 + tm_file=tm-i386v.h + xm_file=xm-i386v.h + make_var_file=make-i386v + ;; + i386/sun*) + cpu_type=i386 + xm_file=xm-sun386i.h + tm_file=tm-sun386i.h + ;; + i386-sysv4 | i386/*-sysv4 | i386v4) # Intel 80386's running system V.4 + cpu_type=i386 + xm_file=xm-i386v.h + make_var_file=make-i386v + tm_file=tm-i386v4.h + ;; + i386-sysv* | i386/*-sysv* | i386v) # Intel 80386's running system V + cpu_type=i386 + xm_file=xm-i386v.h + make_var_file=make-i386v + if [ x$gas = xyes ] + then + tm_file=tm-i386gas.h + else + tm_file=tm-i386v.h + fi + ;; + i860 | i860-sysv* | i860/*-sysv*) + cpu_type=i860 + if [ x$gas = xyes ] + then + tm_file=tm-i860g.h + else + tm_file=tm-i860.h + fi + ;; + i860-bsd* | i860/*-bsd*) + cpu_type=i860 + if [ x$gas = xyes ] + then + tm_file=tm-i860bsdg.h + else + tm_file=tm-i860bsd.h + fi + ;; + sparc | sparc/* | sparc-*os4 | sparc/*-*os4) + cpu_type=sparc + tm_file=tm-sparc.h + ;; + sparc-*os3 | sparc/*-*os3) + cpu_type=sparc + tm_file=tm-sun4os3.h + ;; + m68k/next) + cpu_type=m68k + tm_file=tm-next.h + out_file=out-next.c + xm_file=xm-next.h + ;; + m68k/sun-*os3) + cpu_type=m68k + if [ x$nfp = xyes ] + then + tm_file=tm-sun3os3nf.h + else + tm_file=tm-sun3os3.h + fi + ;; + m68k/sun-mach) + cpu_type=m68k + tm_file=tm-sun3mach.h + ;; + m68k/sun | m68k/sun-*os4) + cpu_type=m68k + if [ x$nfp = xyes ] + then + tm_file=tm-sun3nfp.h + else + tm_file=tm-sun3.h + fi + ;; + m68k/hp | m68k/hp-hpux*) # HP 9000 series 300 + cpu_type=m68k + xm_file=xm-hp9k320.h + if [ x$gas = xyes ] + then + make_var_file=make-hp9k320g + tm_file=tm-hp9k320g.h + else + make_var_file=make-hp9k320 + tm_file=tm-hp9k320.h + fi + ;; + m68k/hp-bsd*) # HP 9000/3xx running Berkeley Unix + cpu_type=m68k + tm_file=tm-hp9k3bsd.h + ;; + m68k/isi | m68k/isi-bsd*) + cpu_type=m68k + if [ x$nfp = xyes ] + then + tm_file=tm-isi68-nfp.h + else + tm_file=tm-isi68.h + fi + ;; + m68k/sony | m68k/sony-bsd*) + xm_file=xm-m68k.h + cpu_type=m68k + if [ x$gas = xyes ] + then + tm_file=tm-newsgas.h + else + tm_file=tm-news.h + fi + ;; + m68k/altos | m68k/altos-sysv*) # Altos 3068 + cpu_type=m68k + if [ x$gas = xyes ] + then + xm_file=xm-altos3068.h + tm_file=tm-altos3068.h + else + echo "The Altos is supported only with the GNU assembler" 1>&2 + exit 1 + fi + ;; + m68k/motorola | m68k/motorola-sysv*) + cpu_type=m68k + tm_file=tm-mot3300.h + xm_file=xm-mot3300.h + ;; + m68k/crds | m68k/crds-unos | m68k-unos | crds | unos) + cpu_type=m68k + xm_file=xm-crds.h + make_var_file=make-crds + tm_file=tm-crds.h + ;; + m68k/apollo) + cpu_type=m68k + make_var_file=make-apollo68 + tm_file=tm-apollo68.h + ;; + m68k/ncr | m68k/ncr-sysv*) # NCR Tower 32 SVR3 + cpu_type=m68k + tm_file=tm-tower-as.h + xm_file=xm-tower.h + ;; + m68000/sun | m68000/sun-*os3) + cpu_type=m68k + tm_file=tm-sun2.h + ;; + m68000/sun-*os4) + cpu_type=m68k + tm_file=tm-sun2os4.h + ;; + m68000/hp | m68000/hp-hpux*) # HP 9000 series 300 + cpu_type=m68k + xm_file=xm-hp9k310.h + if [ x$gas = xyes ] + then + make_var_file=make-hp9k320g + tm_file=tm-hp9k310g.h + else + make_var_file=make-hp9k320 + tm_file=tm-hp9k310.h + fi + ;; + m68000/hp-bsd*) # HP 9000/200 running BSD + cpu_type=m68k + tm_file=tm-hp9k2bsd.h + make_var_file=make-hp9k2bsd + ;; + m68000/att | m68000/att-sysv*) + cpu_type=m68k + xm_file=xm-3b1.h + if [ x$gas = xyes ] + then + tm_file=tm-3b1g.h + else + tm_file=tm-3b1.h + fi + ;; + m68000/convergent | m68000/convergent-sysv*) + cpu_type=m68k + xm_file=xm-3b1.h + tm_file=tm-ctix.h + ;; + ns32k/sequent | ns32k/sequent-bsd*) + cpu_type=ns32k + tm_file=tm-sequent.h + ;; + ns32k/encore | ns32k/encore-bsd* | encore | encore-bsd*) + cpu_type=ns32k + tm_file=tm-encore.h + ;; + ns32k-genix* | ns32k/*-genix* | genix) + cpu_type=ns32k + xm_file=xm-genix.h + make_var_file=make-genix + tm_file=tm-genix.h + ;; + merlin) + cpu_type=ns32k + ;; + m88k/dg | m88k/dg-dgux* | m88k-dgux*) + cpu_type=m88k + xm_file=xm-m88kdgux.h + make_var_file=make-m88kdgux + tm_file=tm-m88kdgux.h + ;; + m88k-v88r32 | m88k/*-v88r32) + cpu_type=m88k + tm_file=tm-v88r32.h + xm_file=xm-v88r32.h + ;; + m88k-sysv* | m88k/*-sysv*) + cpu_type=m88k + tm_file=tm-m88ksvr4.h + xm_file=xm-m88ksvr4.h + ;; + alliant | alliant/alliant) # Alliant FX/8 + cpu_type=alliant + tm_file=tm-alliant.h + ;; + c1/convex) # Convex C1 + if [ -r /usr/include/stdlib.h ] + then + tm_file=tm-convex1.h + else + tm_file=tm-conv1os7.h + fi + cpu_type=convex + ;; + c2/convex) # Convex C2 + if [ -r /usr/include/stdlib.h ] + then + tm_file=tm-convex2.h + else + tm_file=tm-conv2os7.h + fi + cpu_type=convex + ;; + mips/sgi | mips/sgi-sysv*) # Mostly like a MIPS. + cpu_type=mips + tm_file=tm-iris.h + xm_file=xm-iris.h + ;; + mips | mips/mips) # Default MIPS environment. + ;; + mips/dec | mips/dec-bsd*) # Decstation. + cpu_type=mips + tm_file=tm-decstatn.h + ;; + mips/sony | mips/sony-bsd*) # Sony NEWS 3600 or risc/news. + cpu_type=mips + tm_file=tm-mips-news.h + ;; + mips/*-sysv* | mips-sysv*) # SYSV variant of MIPS system. + cpu_type=mips + tm_file=tm-mips-sysv.h + ;; + mips/*-bsd* | mips-bsd*) # BSD 4.3 variant of MIPS system. + cpu_type=mips + tm_file=tm-mips-bsd.h + ;; + pyramid | pyramid/* | pyramid-*) + cpu_type=pyr + tm_file=tm-pyr.h + ;; + tron | tron/*) + cpu_type=gmicro + tm_file=tm_gmicro.h + ;; + a29k-bsd* | a29k/*-bsd*) + cpu_type=a29k + tm_file=tm-a29kunix.h + ;; + i960) # Default i960 environment. + ;; + # 370) + # ;; + esac + if [ x$pass1done = x ] + then + if [ x$cpu_type = x ]; then cpu_type=$host; fi + if [ x$xm_file = x ]; then host_xm_file=xm-$cpu_type.h + else host_xm_file=$xm_file + fi + if [ x$make_var_file = x ] + then make_var_file=make-$cpu_type; fi + host_make_var_file=$make_var_file + pass1done=yes + fi + done + + # Default the machine-specific variables that were not explicitly set. + if [ x$cpu_type = x ] + then cpu_type=$target; fi + + if [ x$tm_file = x ] + then tm_file=tm-$target.h; fi + + md_file=${cpu_type}.md + + if [ x$out_file = x ] + then out_file=out-$cpu_type.c; fi +fi + +#### configure.in files go here. +# This file is a shell script fragment that supplies the information +# necessary to tailor a template configure script into the configure +# script appropriate for this directory. For more information, check +# any existing configure script. + +configdirs="gcc gas bfd binutils ld clib" +srctrigger=gcc-new +srcname="gnu development package" +### end of configure.in + +# are we rebuilding config itself? +if [ -n "$template" ] +then + if [ ! -r $template ] + then + echo "Can't find template ${template}." + exit 1 + fi + + mv configure configure.old + echo "#!/bin/sh" > configure + echo "# Do not edit this file. It is generated automatically from configure.in" >> configure + echo "# and a configure template." >> configure + echo "configdirs=" >> configure + echo >> configure + + if [ -r configure.in ] + then + sed -e "/^####/ r configure.in" $template >> configure + else + cat $template >> configure + fi + + chmod a+x configure + rm configure.old +# echo Rebuilt configure in `pwd` from ${template}. + echo Rebuilt configure in `pwd` + + if [ x$norecurse = x ] + then + while [ -n "$configdirs" ] + do + # set configdir to car of configdirs, configdirs to cdr of configdirs + set $configdirs; configdir=$1; shift; configdirs=$* + + if [ "`echo ${configdir}.*`" != "${configdir}.*" ] + then + targetspecificdirs=${configdir}.* + else + targetspecificdirs= + fi + + for i in ${configdir} ${targetspecificdirs} + do + if [ -r $i/configure ] + then + (cd $i ; + configure +template=${template}) + else + echo No configure script in `pwd`/$i + fi + done + done + fi + + exit 0 +fi + +# Temporarily, we support only direct subdir builds. +hostsubdir=Host-$host +targetsubdir=Target-$target + +if [ -n "$removing" ] +then + rm -rf $hostsubdir/$targetsubdir + + if [ -z "`(ls $hostsubdir) 2>&1 | grep Target-`" ] + then + rm -rf $hostsubdir + fi +else + if [ ! -d $hostsubdir ] ; then mkdir $hostsubdir ; fi + cd $hostsubdir + + if [ ! -d $targetsubdir ] ; then mkdir $targetsubdir ; fi + cd $targetsubdir + + srcdir=../.. + + ## Find the source files, if location was not specified. + #if [ x$srcdir = x ] + #then + # srcdirdefaulted=1 + # srcdir=. + # if [ ! -r ${srctrigger} ] + # then + # srcdir=.. + # fi + #fi + # + #if [ ! -r ${srcdir}/${srctrigger} ] + #then + # if [ x$srcdirdefaulted = x ] + # then + # echo "$progname: Can't find ${srcname} sources in \`${srcdir}'." 1>&2 + # else + # echo "$progname: Can't find ${srcname} sources in \`.' or \`..'." 1>&2 + # fi + # exit 1 + #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. + + # 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=$* + + if [ ! -r ${srcdir}/config/$file ] + then + echo "$progname: cannot create a link \`$link'," 1>&2 + echo "since the file \`config/$file' does not exist." 1>&2 + exit 1 + 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 + + if [ ! -r $link ] + then + echo "$progname: unable to link \`$link' to \`${srcdir}/config/$file'." 1>&2 + exit 1 + fi + echo "Linked \`$link' to \`${srcdir}/config/$file'." + done + + # Install a makefile, and 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 + .) + ;; + *) + echo "VPATH = ${srcdir}" > x + cat x ${srcdir}/Makefile.in | sed "s@^srcdir = \.@srcdir = ${srcdir}@" > Makefile.in + rm x + echo "dir ." > .gdbinit + echo "dir ${srcdir}" >> .gdbinit + echo "source ${srcdir}/.gdbinit" >> .gdbinit + ;; + esac + + host_var_file=hmake-${host} + target_var_file=tmake-${target} + + # Conditionalize the makefile for this machine. + if [ -f ${srcdir}/config/${host_var_file} ] + then + sed -e "/^####/ r ${srcdir}/config/${host_var_file}" Makefile.in > Makefile.tem + else + cp Makefile.in Makefile.tem + fi + + if [ -f ${srcdir}/config/${target_var_file} ] + then + sed -e "/^####/ r ${srcdir}/config/${target_var_file}" Makefile.tem > Makefile.tem1 + mv Makefile.tem1 Makefile.tem + fi + + # Remove all formfeeds, since some Makes get confused by them. + sed "s///" Makefile.tem >> Makefile.tem1 + mv Makefile.tem1 Makefile.tem + + # reset SUBDIRS + sed "s:^SUBDIRS =.*$:SUBDIRS = ${configdirs}:" Makefile.tem > Makefile.tem1 + mv Makefile.tem1 Makefile.tem + + # reset NONSUBDIRS + sed "s:^NONSUBDIRS =.*$:NONSUBDIRS = ${noconfigdirs}:" Makefile.tem > Makefile.tem1 + mv Makefile.tem1 Makefile.tem + + # Delete the intermediate files + if [ x$srcdir != x. ] ; then rm Makefile.in ; fi + + rm -f Makefile + + # Define macro CROSS_COMPILE in compilation if this is a cross-compiler. + if [ x$host != x$target ] + then + echo "CROSS=-DCROSS_COMPILE" > Makefile + echo "ALL=start.encap" >> Makefile + else + echo "ALL=all.internal" > Makefile + fi + + # set target and host + echo "host = $host" >> Makefile + echo "target = $target" >> Makefile + + cat Makefile.tem >> Makefile + rm Makefile.tem + + using= + if [ -f ${srcdir}/config/${host_var_file} ] + then + using=" using \"${host_var_file}\"" + fi + + if [ -f ${srcdir}/config/${target_var_file} ] + then + if [ -z "${using}" ] + then + andusing=" using \"${target_var_file}\"" + else + andusing="${using} and \"${target_var_file}\"" + fi + else + andusing=${using} + fi + + echo "Created \"Makefile\""${andusing}. + + if [ x$host = x$target ] + then + echo "Links are now set up for use with a $target." \ + | tee ${srcdir}/config.status + else + echo "Links are now set up for host $host and target $target." \ + | tee ${srcdir}/config.status + fi + + cd ${srcdir} +fi + +# If there are subdirectories, then recurse. + +if [ x$norecurse != x ] ; then exit 0 ; fi + +while [ -n "$configdirs" ] +do + # set configdir to car of configdirs, configdirs to cdr of configdirs + set $configdirs; configdir=$1; shift; configdirs=$* + + # check for target override + targetspecificdir=${configdir}.${target} + if [ -d ${targetspecificdir} ] + then + configdir=${targetspecificdir} + fi + + echo Configuring ${configdir}... + (cd ${configdir} ; + configure +host=${host} ${target} ${removing}) \ + | sed 's/^/ /' +done + +exit 0 |