home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Education Sampler 1992 [NeXTSTEP]
/
Education_1992_Sampler.iso
/
NeXT
/
GnuSource
/
cc-61.0.1
/
cc
/
configure
< prev
next >
Wrap
Text File
|
1991-10-18
|
16KB
|
740 lines
#!/bin/sh
# Configuration script for GNU CC
# Copyright (C) 1988, 1990, 1991 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, 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"
for arg in $*;
do
# Handle -srcdir, etc, with space between it and argument.
if [ x$next_srcdir = xyes ]
then srcdir=$arg; next_srcdir=;
# Handle -host, etc, with space between it and argument.
else if [ x$next_host = xyes ]
then host=$arg; next_host=;
else
case $arg in
-srcdir=* | +srcdir=* | +srcdi=* | +srcd=* | +src=* | +sr=* | +s=*)
srcdir=`echo $arg | sed 's/[+-]s[a-z]*=//'`
;;
-srcdir | +srcdir | +srcdi | +srcd | +src | +sr | +s)
next_srcdir=yes
;;
-host | +host | +hos | +ho | +h)
next_host=yes
;;
-host=* | +host=* | +hos=* | +ho=* | +h=*)
host=`echo $arg | sed 's/[+-]h[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
fi; fi
done
# Complain if an arg is missing
if [ x$target = x ]
then
echo "No target specified."
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
# 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
# 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
;;
pbd)
basic_machine=sparc/unicom
;;
sun386 | sun386i)
basic_machine=i386/sun
;;
ps2)
basic_machine=i386/ibm
;;
next)
basic_machine=m68k/next
;;
nrw)
basic_machine=m88k/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
;;
magnum | m3230)
basic_machine=mips/mips
;;
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
;;
-osfrose*)
os=-osfrose
;;
-osf*)
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-aix386.h
xm_file=xm-aix386.h
make_var_file=make-aix386
;;
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/*-sysv* | sparc-sysv*)
cpu_type=sparc
tm_file=tm-sparcv.h
xm_file=xm-sparcv.h
;;
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-next68.h
out_file=out-next68.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
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
;;
m88k/next)
cpu_type=m88k
tm_file=tm-next88.h
out_file=out-next88.c
xm_file=xm-next.h
;;
alliant | alliant/alliant) # Alliant FX/8
cpu_type=alliant
tm_file=tm-alliant.h
;;
arm | arm/* | arm-*) # Acorn RISC machine
cpu_type=arm
tm_file=tm-arm.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/dec-osfrose*) # Decstation with OSF/1 and OSF/rose object files
cpu_type=mips
tm_file=tm-decrose.h
make_var_file=make-decrose
;;
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
;;
# 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
# 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.
if [ xx${vint} = xx ]
then
files="$host_xm_file $tm_file
$md_file $out_file"
links="config.h tm.h md aux-output.c"
else
files="$host_xm_file tm-vmc.h $tm_file
$md_file $out_file"
links="config.h tm.h tm-pre.h md aux-output.c"
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=$*
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
rm -f .gdbinit
echo "dir ." > .gdbinit
echo "dir ${srcdir}" >> .gdbinit
echo "source ${srcdir}/.gdbinit" >> .gdbinit
;;
esac
# Conditionalize the makefile for this machine.
if [ -f ${srcdir}/config/${host_make_var_file} ]
then
rm -f Makefile.tem
sed -e "/####/ r ${srcdir}/config/${host_make_var_file}" Makefile.in > Makefile.tem
else
cp Makefile.in Makefile.tem
fi
# Remove all formfeeds, since some Makes get confused by them.
# Also substitute the actual target name, with / changed to --,
# as the value assigned to `$(target)' in the makefile.
target1=`echo $target | sed 's=/=-='`
sed -e "s///" -e "s/^target=.*$/target=${target1}/" Makefile.tem > Makefile.tem1
# Delete the intermediate files
rm Makefile.tem
if [ x$srcdir != x. ]
then
rm Makefile.in
fi
# Define macro CROSS_COMPILE in compilation if this is a cross-compiler.
# Also use all.cross instead of all.internal.
if [ x$host = x$target ]
then
mv -f Makefile.tem1 Makefile
else
sed -e "s/=all.internal$/=all.cross/" Makefile.tem1 > Makefile.tem2
rm -f Makefile
echo "CROSS=-DCROSS_COMPILE" > Makefile
cat Makefile.tem2 >> Makefile
rm Makefile.tem1 Makefile.tem2
fi
if [ -f ${srcdir}/config/${host_make_var_file} ]
then
echo "Created \`Makefile' using \`${host_make_var_file}'."
else
echo "Created \`Makefile'."
fi
if [ xx${vint} != xx ]
then
vintmsg =" (vint)"
fi
if [ x$host = x$target ]
then
echo "Links are now set up for use with a $target." \
| tee config.status
else
echo "Links are now set up for host $host and target $target." \
| tee config.status
fi
exit 0