diff options
author | K. Richard Pixley <rich@cygnus> | 1991-04-04 18:37:36 +0000 |
---|---|---|
committer | K. Richard Pixley <rich@cygnus> | 1991-04-04 18:37:36 +0000 |
commit | 99a42820d9dc6b393e98446f726f51c702fce28b (patch) | |
tree | 0dffcb2bfb58b891ef5c27ea46b0cb8bb462a0fe /binutils | |
parent | 0e39a8bbfe9e77100c9f0672415b2ae32df54d29 (diff) | |
download | gdb-99a42820d9dc6b393e98446f726f51c702fce28b.zip gdb-99a42820d9dc6b393e98446f726f51c702fce28b.tar.gz gdb-99a42820d9dc6b393e98446f726f51c702fce28b.tar.bz2 |
Initial revision
Diffstat (limited to 'binutils')
-rw-r--r-- | binutils/Makefile.in | 189 | ||||
-rwxr-xr-x | binutils/configure | 845 |
2 files changed, 1034 insertions, 0 deletions
diff --git a/binutils/Makefile.in b/binutils/Makefile.in new file mode 100644 index 0000000..fc04fc4 --- /dev/null +++ b/binutils/Makefile.in @@ -0,0 +1,189 @@ +### Makefile for GNU binary-file utilities + +#$Id$ + +## Configuration options +# These should be all you need set before compiling + +# these two should be the same program +AR=ar +RANLIB=ranlib + +# copy and strip should be the same program +COPY=copy +STRIP=strip + +# These should all be the same program too. +SIZE=size +NM=nm +OBJDUMP=objdump + +PROGS = $(SIZE) $(COPY) $(OBJDUMP) $(NM) $(AR) $(STRIP) $(RANLIB) + +srcdir = . +BASEDIR = $(srcdir)/../.. + +# Let rich do this for now: +LIBDIR = $(BASEDIR)/bfd/$(HOST) + +#__sun3__#DEFINES=-DHOST_SYS=SUN3_SYS +#__sun3__#LDFLAGS = -Bstatic + +#__sun4__#DEFINES=-DHOST_SYS=SUN4_SYS +#__sun4__#LDFLAGS = -Bstatic + +#__sun386i__#LDFLAGS = -Bstatic + +#__rs6000__#DEFINES=-Daix +#__rs6000__#ALLOCA = alloca.o + +#__i386v__#ALLOCA = alloca.o +#__i386v__#DEFINES=-DUSG + +INCDIR = $(BASEDIR)/include-cygnus + +CFLAGS = -g -I$(INCDIR) $(DEFINES) + + +bindir=$(BASEDIR)/bin + +DISASMS = m68k-pinsn.o i960-pinsn.o sparc-pinsn.o +# +## Random definitions +# Hopefully all these may be flushed once we get configuration down pat. + +# alloca only needed for systems which don't have it and when cc != gcc. +# ALLOCA = alloca.o + +# nm tries to malloc enough space for the string table. The old GNU malloc +# rounds this up to a power of two (e.g. 5M becomes 8M), and so it might +# fail unnecessarily. I've also seen some Unix malloc's fail, even when +# there is enough memory. So use the new GNU malloc. +# MALLOC = gmalloc.o + +# Use the GNU getopt unless you have problems with it. +# The IRIS version could probably benefit from being assembled with +# libmalloc rather than the ordinary malloc. +GNU_GETOPT = getopt.o $(ALLOCA) +GNU_GETOPT_LONG = getopt1.o $(GNU_GETOPT) + +# This is supposed to become part of the standard GNU libs, whatever +# that means. +FILEMODE = filemode.o + + + +# Code shared by all the binutils. +BULIBS = bucomm.o version.o + +ADDL_LIBS = $(GNU_GETOPT_LONG) $(MALLOC) $(FILEMODE) $(BULIBS) + +BFD = $(LIBDIR)/libbfd.a +# +## The rules + +all: $(ADDL_LIBS) $(PROGS) + +$(SIZE): $(ADDL_LIBS) size.o $(BFD) + $(CC) $(LDFLAGS) $(CFLAGS) -o $(SIZE) size.o $(ADDL_LIBS) $(BFD) + +$(COPY): $(ADDL_LIBS) copy.o $(BFD) + $(CC) $(LDFLAGS) $(CFLAGS) -o $(COPY) copy.o $(ADDL_LIBS) $(BFD) + +$(NM): $(ADDL_LIBS) nm.o $(BFD) + $(CC) $(LDFLAGS) $(CFLAGS) -o $(NM) nm.o $(MALLOC) $(ADDL_LIBS) $(BFD) + +$(OBJDUMP): $(ADDL_LIBS) size.o objdump.o $(DISASMS) $(BFD) + $(CC) $(LDFLAGS) $(CFLAGS) -o $(OBJDUMP) objdump.o $(DISASMS) $(ADDL_LIBS) $(BFD) + +$(AR): $(ADDL_LIBS) ar.o $(BFD) + $(CC) $(LDFLAGS) $(CFLAGS) -o $(AR) ar.o $(MALLOC) $(ADDL_LIBS) $(BFD) + +$(RANLIB): $(AR) + -rm -f $(RANLIB) + -ln $(AR) $(RANLIB) + +$(STRIP): $(COPY) + -rm -f $(STRIP) + -ln $(COPY) $(STRIP) + +clean: + -rm -f *.o *~ \#* core $(PROGS) TAGS + +etags tags: TAGS + +TAGS: .force + etags $(INCDIR)/*.h $(BFDSRC)/*.[hc] *.[hc] + +realclean: clean + -rm -f $(PROGS) TAGS + +install: $(PROGS) + for prog in $(PROGS); do \ + rm -f $G960BASE/bin/$$prog-new; cp $$prog $$G960BASE/bin/$$prog-new ; \ + done + + +bucomm.o: bucomm.c +version.o: version.c +size.o: size.c +copy.o: copy.c +objdump.o: objdump.c +m68k-pinsn.o: m68k-pinsn.c +m68k-pinsn.o: ./m68k-opcode.h +i960-pinsn.o: i960-pinsn.c +sparc-pinsn.o: sparc-pinsn.c +sparc-pinsn.o: ./sparc-opcode.h +nm.o: nm.c +ar.o: ar.c +strip.o: strip.c + + +#----------------------------------------------------------------------------- +# '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 + + +# 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: #__<hostname>__# +# 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/binutils/configure b/binutils/configure new file mode 100755 index 0000000..627867a --- /dev/null +++ b/binutils/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 |