From: K. Richard Pixley Date: Thu, 4 Apr 1991 19:01:18 +0000 (+0000) Subject: Initial revision X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=eb02fd64a65fb5ac4ee74911c9bcd928c3b2ac0d;p=binutils-gdb.git Initial revision --- diff --git a/Makefile.in b/Makefile.in new file mode 100644 index 00000000000..29e2490e21c --- /dev/null +++ b/Makefile.in @@ -0,0 +1,120 @@ +# +# Makefile for development tools. +# +# Last Mod Tue Apr 2 16:57:52 PST 1991, by rich@sendai +# + +srcdir = . +subdir = Host-$(host)/Target-$(target) + +OSLAYER = clib/os-layer +OSINCLUDE = $(OSLAYER)/include + +#CC = gcc -b$(target) # -B$(srcdir)/../gas/Host-$(host)/Target-$(target)/ +#CFLAGS = -g -nostdinc -nostdlib -I- -I$(srcdir) -I$(srcdir)/../include -I$(OSINCLUDE) + +# These are roughly topologically sorted in order to make porting more +# streamlined. + +SUBDIRS = +NONSUBDIRS = +SUBDIRS_INCLUDE = machine-dep + +TARGETLIB = libc.a +RANLIB = ranlib +AR = ar cqv + +#### host and target specific makefile fragments come in here. + +all: $(TARGETLIB) + +subdir_do: $(SUBDIRS) $(TARGETDIRS) + for i in $(SUBDIRS); \ + do \ + if (cd $(srcdir)/$$i`if [ -d $(srcdir)/$$i.$(target) ] ; \ + then echo .$(target) ; fi`/$(subdir); \ + $(MAKE) \ + "OSLAYER=../$(OSLAYER)" \ + "TARGETLIB=../$(srcdir)/$(subdir)/$(TARGETLIB)" \ + "AR=$(AR)" \ + "RANLIB=$(RANLIB)" $(DO)) ; \ + then true ; \ + else exit 1 ; \ + fi ;\ + done + +$(TARGETLIB): FORCE + @$(MAKE) subdir_do "DO=all" + $(RANLIB) $(TARGETLIB) + +oldlibc.a: $(SUBDIRS) FORCE + @$(MAKE) subdir_do DO=all + rm -rf TEMP + mkdir TEMP +# Extract files from all subdirs, making sure that none overwrites others. + cd TEMP; for i in $(SUBDIRS); do\ + ar x ../$$i/library.a;\ + chmod a-w *;\ + done; +# Be sure if interrupted, no libc.a exists. + rm -f libc.new + cd TEMP; ar cq ../libc.new * + ranlib libc.new + mv libc.new libc.a + rm -rf TEMP + +clean: + rm -rf *.a TEMP errs core *.o *~ \#* TAGS *.E + $(MAKE) subdir_do DO=clean + +install: all install_include install_crt install_gnulib install_lib + +# When installing include files, be sure that machine-dependent +# files override machine-independent files. +# Might be better to check for collisions? FIXME +install_crt: + $(MAKE) SUBDIRS=machine-dep DO=install_crt + +install_gnulib: + $(MAKE) SUBDIRS=gnulib DO=install_gnulib + +install_include: + $(MAKE) SUBDIRS=$(SUBDIRS_INCLUDE) DO=install_include + +install_lib: libc.a + cp libc.a $(DESTDIR)/lib/libc.a + +etags tags: TAGS + +TAGS: FORCE + etags `$(MAKE) ls` + +ls: + @echo Makefile + @for i in $(SUBDIRS); \ + do \ + (cd $$i; \ + pwd=`pwd`; \ + wd=`basename $$pwd`; \ + for j in `$(MAKE) ls`; \ + do \ + echo $$wd/$$j; \ + done) \ + done + +FORCE: + +# with the gnu make, this is done automatically. + +Makefile: $(srcdir)/Makefile.in $(srcdir)/configure + (cd $(srcdir) ; configure -srcdir=$(srcdir) -host=$(host) $(target) -norecurse) + +# +# $Log$ +# Revision 1.1 1991/04/04 18:56:39 rich +# Initial revision +# +# +# + +# end of Makefile.in diff --git a/config/mt-a29k b/config/mt-a29k new file mode 100644 index 00000000000..9a6ed1d1cfe --- /dev/null +++ b/config/mt-a29k @@ -0,0 +1,4 @@ +BINUTILSDIR=/u1/rich/work/binutils.$(target)/Host-$(host)/Target-$(target) +AR=$(BINUTILSDIR)/ar cqv +RANLIB=$(BINUTILSDIR)/ranlib +OSLAYER = clib/os-layer.$(target) diff --git a/configure b/configure new file mode 100755 index 00000000000..f5a812d4fd6 --- /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 diff --git a/configure.in b/configure.in new file mode 100644 index 00000000000..e6df4e48c97 --- /dev/null +++ b/configure.in @@ -0,0 +1,8 @@ +# 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" diff --git a/ld/Makefile.in b/ld/Makefile.in new file mode 100644 index 00000000000..ca22ac30f0c --- /dev/null +++ b/ld/Makefile.in @@ -0,0 +1,183 @@ +# +# Makefile for ld version 2 +# +# $Id$ +# + +srcdir = . + +BASEDIR = $(srcdir)/.. +BFDDIR = $(BASEDIR)/bfd +INCLUDE = $(BASEDIR)/include-cygnus +INCLUDES = -I. -I$(srcdir) -I$(INCLUDE) -I$(BFDDIR) +DEBUG = -g +CFLAGS = $(INCLUDES) $(DEBUG) + +# go directly to ld.new in case this ld isn't capable of +# linking native object on this host. It can be renamed on +# install. +PROGS = ld.new + +# for self hosting +GNUTARGET=a.out-generic-big +LDEMULATION=gld +bfdlib=$(BASEDIR)/bfd/Host-$(host)/libbfd.a + +OBJS= ldgram.o ldlex.o ldlang.o ldmain.o ldwrite.o ldexp.o ld-lnk960.o \ + ld-gld.o ld-gld960.o ld-emul.o ldversion.o ldmisc.o ldsym.o ldfile.o + +HEADERS=config.h ldmain.h ldmain.h ldmisc.h ldsym.h ldlang.h ldexp.h \ + ldlex.h ldwrite.h ldversion.h ld-emul.h ldfile.h ldgram.h ld.h + +MANSOURCES=ld.tex + +LDCSOURCES=ldlang.c ldmain.c ldwrite.c ld-lnk960.c ld-gld.c \ + ld-gld960.c ld-emul.c ldversion.c ldmisc.c ldexp.c ldsym.c ldfile.c + +GENERATED_SOURCES=ldgram.tab.c ldlex.c ldgram.tab.h y.tab.h +GENERATED_HEADERS=ldgram.tab.h + +LDSOURCES=$(LDCSOURCES) ldgram.y ldlex.l + +#BFDSOURCES=../bfd/libbfd.c ../bfd/bfd.c ../bfd/sunos.c ../bfd/icoff.c ../bfd/b.out.c ../bfd/archive.c ../bfd/srec.c + +SOURCES= $(LDSOURCES) $(BFDSOURCES) +LINTSOURCES= $(LDCSOURCES) $(BFDSOURCES) $(GENERATED_SOURCES) + +all: $(PROGS) + +$(PROGS): $(OBJS) +# (cd ../bfd; make) +# LDEMULATION=gld; export LDEMULATION; GNUTARGET=a.out-generic-big;./ldok -format a.out-generic-big -o ld /lib/crt0.o $(OBJS) $(bfdlib) -lc /usr/local/lib/gcc/sparc/1.91/gnulib +# gld -o ld /lib/crt0.o $(OBJS) $(bfdlib) -lc /usr/local/lib/gcc/sparc/1.91/gnulib + $(CC) -Bstatic -o ld.new $(OBJS) $(bfdlib) + + +ld1: ld + gcc -v -B./ -o ld1 $(OBJS) $(bfdlib) + +ld2: ld1 + mv ld1 ld + gcc -v -B./ -o ld2 $(OBJS) $(bfdlib) + +ld3: ld2 + mv ld2 ld + gcc -v -B./ -o ld3 $(OBJS) $(bfdlib) + +ld.dvi:ld.tex + tex ld.tex + +ldgram.o:ldgram.y + yacc -d $(srcdir)/ldgram.y + mv y.tab.c ldgram.tab.c + $(CC) -c $(CFLAGS) ldgram.tab.c + mv ldgram.tab.o ldgram.o + +ldgram.tab.h:ldgram.o + cp y.tab.h ldgram.tab.h + +ldlex.c: ldlex.l ldgram.tab.h +ldlex.o: ldlex.c ldgram.tab.h + +ldmain.o: ldmain.c +ldversion.o: ldversion.c +ldfile.o: ldfile.c +ldwrite.o: ldwrite.c +ldlang.o: ldlang.c ldgram.tab.h +ld-gld.o: ld-gld.c +ld-gld960.o: ld-gld960.c +ld-emul.o:ld-emul.c +ld-lnk960.o:ld-lnk960.c +ldexp.o:ldexp.c ldgram.tab.h +ldmisc.o:ldmisc.c +ldsym.o:ldsym.c + +clean: + - rm -f $(OBJS) $(GENERATED_SOURCES) $(GENERATED_HEADERS) + - rm -f ld ld1 ld2 + + +lintlog:$(SOURCES) Makefile + $(LINT) -abhxzn $(CFLAGS) $(LINTSOURCES) \ +| grep -v "pointer casts may be troublesome" \ +| grep -v "possible pointer alignment problem" \ +| grep -v "ignore" \ +| grep -v "conversion from long may lose accuracy" \ +| grep -v "warning: constant argument to NOT" \ +| grep -v "enumeration type clash, operator CAST" \ +| grep -v "warning: constant in conditional context"\ +| grep -v "archive\.c" + + +tags TAGS:$(SOURCES) $(HEADERS) + etags -t $(SOURCES) $(HEADERS) + +release: + (cd /4/steve/ld; tar cf - $(LDSOURCES) $(HEADERS) $(MANSOURCES)) | tar xf - + +objdump:objdump.c + +install: $(PROGS) + rm -f $G960BASE/bin/$(PROGS) + cp $(PROGS) $$G960BASE/bin/gld960c + +#----------------------------------------------------------------------------- +# 'STANDARD' GNU/960 TARGETS BELOW THIS POINT +# +# 'VERSION' file must be present and contain a string of the form "x.y" +#----------------------------------------------------------------------------- + +ver960.c: FORCE + rm -f ver960.c + echo "char ${TARG}_ver[]= \"${TARG} `cat VERSION`, `date`\";" > ver960.c + + +# This target should be invoked before building a new release. +# 'VERSION' file must be present and contain a string of the form "x.y" +# +roll: + @V=`cat VERSION` ; \ + MAJ=`sed 's/\..*//' VERSION` ; \ + MIN=`sed 's/.*\.//' VERSION` ; \ + V=$$MAJ.`expr $$MIN + 1` ; \ + rm -f VERSION ; \ + echo $$V >VERSION ; \ + echo Version $$V + +# Dummy target to force execution of dependent targets. +# +.force: +FORCE: + +# Target to uncomment host-specific lines in this makefile. Such lines must +# have the following string beginning in column 1: #____# +# Original Makefile is backed up as 'Makefile.old'. +# +# Invoke with: make make HOST=xxx +# +make: + -@if test $(HOST)x = x ; then \ + echo 'Specify "make make HOST=???"'; \ + exit 1; \ + fi ; \ + grep -s "^#The next line was generated by 'make make'" Makefile; \ + if test $$? = 0 ; then \ + echo "Makefile has already been processed with 'make make'";\ + exit 1; \ + fi ; \ + mv -f Makefile Makefile.old; \ + echo "#The next line was generated by 'make make'" >Makefile ; \ + echo "HOST=$(HOST)" >>Makefile ; \ + echo >>Makefile ; \ + sed "s/^#__$(HOST)__#//" < Makefile.old >>Makefile + +# + +Makefile: $(srcdir)/Makefile.in $(srcdir)/configure + (cd $(srcdir) ; configure -host=$(host) $(target)) + +### Local Variables: *** +### mode:fundamental *** +### page-delimiter: "^# " *** +### End: *** +### end of file diff --git a/ld/configure b/ld/configure new file mode 100755 index 00000000000..627867a3aa2 --- /dev/null +++ b/ld/configure @@ -0,0 +1,845 @@ +#!/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. +### 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