#
# Makefile for directory with subdirs to build.
#   Copyright (C) 1990, 1991, 1992 Free Software Foundation
#
# This file 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 of the License, or
# (at your option) any later version.
# 
# This program 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 this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
#

srcdir = .

prefix = /usr/local

exec_prefix = $(prefix)
bindir = $(exec_prefix)/bin
libdir = $(exec_prefix)/lib
tooldir = $(libdir)

datadir = $(prefix)/lib
mandir = $(prefix)/man
man1dir = $(mandir)/man1
man2dir = $(mandir)/man2
man3dir = $(mandir)/man3
man4dir = $(mandir)/man4
man5dir = $(mandir)/man5
man6dir = $(mandir)/man6
man7dir = $(mandir)/man7
man8dir = $(mandir)/man8
man9dir = $(mandir)/man9
infodir = $(prefix)/info
includedir = $(prefix)/include
docdir = $(datadir)/doc

SHELL = /bin/sh

INSTALL = install -c
INSTALL_PROGRAM = $(INSTALL)
INSTALL_DATA = $(INSTALL)

AR = ar
AR_FLAGS = qc
CFLAGS = -g
RANLIB = ranlib

BISON = `if [ -d $${rootme}/byacc ] ; \
	then echo $${rootme}/byacc/byacc ; \
	else echo byacc ; fi`

LEX = `if [ -d $${rootme}/flex ] ; \
	then echo $${rootme}/flex/flex -S$${rootme}/flex/flex.skel ; \
	else echo flex ; fi`

MAKEINFO = `if [ -d $${rootme}/texinfo/C ] ; \
	then echo $${rootme}/texinfo/C/makeinfo ; \
	else echo makeinfo ; fi`

SUBDIRS = libiberty mmalloc glob readline bfd gdb binutils ld gas gcc libg++ libgcc clib newlib
OTHERS = 

ALL = all.normal
INSTALL_TARGET = install.all

### for debugging
#GCCVERBOSE=-v

GXX = `if [ -d $${rootme}/gcc ] ; \
	then echo $${rootme}/gcc/gcc -B$${rootme}/gcc/ ; \
	else echo gcc ; fi`

XTRAFLAGS = `if [ -d $${rootme}/gcc ] ; \
	then echo -I$${rootme}/gcc/include ; \
	else echo ; fi`

#### host and target specific makefile fragments come in here.
###

FLAGS_TO_PASS = \
	"prefix=$(prefix)" \
	"exec_prefix=$(exec_prefix)" \
	"tooldir=$(tooldir)" \
	"AR=$(AR)" \
	"AR_FLAGS=$(AR_FLAGS)" \
	"CC=$(CC)" \
	"CFLAGS=$(CFLAGS)" \
	"RANLIB=$(RANLIB)" \
	"LOADLIBES=$(LOADLIBES)" \
	"LDFLAGS=$(LDFLAGS)" \
	"BISON=$(BISON)" \
	"LEX=$(LEX)" \
	"MAKEINFO=$(MAKEINFO)" \
	"INSTALL=$(INSTALL)" \
	"INSTALL_DATA=$(INSTALL_DATA)" \
	"INSTALL_PROGRAM=$(INSTALL_PROGRAM)"

.PHONY: all info install-info clean-info
.NOEXPORT:

all:	$(ALL)

info:	cfg-paper.info configure.info standards.info
	@rootme=`pwd` ; export rootme ; $(MAKE) subdir_do DO=info "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS)

# Note libg++ has to be handled specially (we can't compile it with CC=cc).
check:
	@rootme=`pwd` ; export rootme ; $(MAKE) subdir_do DO=check \
	  "DODIRS=`echo $(SUBDIRS) | sed -e \"s/libg\+\+//\"" $(FLAGS_TO_PASS)
	@rootme=`pwd` ; export rootme ; $(MAKE) subdir_do DO=check \
	  "DODIRS=libg++" $(FLAGS_TO_PASS) "CC=${GXX}" "XTRAFLAGS=${XTRAFLAGS}"

clean-info:
	@$(MAKE) subdir_do DO=clean-info "DODIRS=$(SUBDIRS)"
	rm -f *.info*

cfg-paper.info: cfg-paper.texi
	rootme=`pwd` ; export rootme ; $(MAKEINFO) -o cfg-paper.info $(srcdir)/cfg-paper.texi

configure.info: configure.texi
	rootme=`pwd` ; export rootme ; $(MAKEINFO) -o configure.info $(srcdir)/configure.texi

standards.info: standards.texi
	rootme=`pwd` ; export rootme ; $(MAKEINFO) -o standards.info $(srcdir)/standards.texi

install-info: install-info-dirs force
	[ -d $(infodir) ] || mkdir $(infodir)
	@$(MAKE) subdir_do DO=install-info "DODIRS=$(SUBDIRS)"
	$(INSTALL_DATA) cfg-paper.info $(infodir)/cfg-paper.info
	$(INSTALL_DATA) configure.info $(infodir)/configure.info
	$(INSTALL_DATA) standards.info $(infodir)/standards.info
	@$(MAKE) dir.info install-dir.info

install-dir.info:
	$(INSTALL_DATA) dir.info $(infodir)/dir.info

all.normal: all-autoconf all-libiberty all-mmalloc all-texinfo \
	all-bison all-byacc all-flex all-bfd all-ld all-gas all-gcc \
	all-binutils all-libg++ all-readline all-gdb \
	all-make all-rcs all-cvs all-diff all-grep \
	all-patch all-emacs all-ispell \
	all-newlib all-gprof all-send_pr

all.cross: all-libiberty all-mmalloc all-gas all-byacc all-ld \
	all-bfd all-libgcc all-readline all-gdb
#	$(MAKE) subdir_do DO=all "DODIRS=$(SUBDIRS) $(OTHERS)"

clean: clean-autoconf clean-libiberty clean-mmalloc clean-texinfo \
	clean-bfd clean-newlib clean-binutils clean-flex \
	clean-bison clean-byacc clean-ld clean-gas \
	clean-gcc clean-libgcc clean-readline clean-glob clean-gdb \
	clean-make clean-diff clean-grep clean-rcs \
	clean-cvs clean-patch clean-emacs clean-ispell \
	clean-libg++ clean-gprof clean-send_pr
	-rm -rf *.a TEMP errs core *.o *~ \#* TAGS *.E

clean-stamps:
	-rm -f all-*

install: $(INSTALL_TARGET) $(srcdir)/configure.man
	$(INSTALL_DATA) $(srcdir)/configure.man $(man1dir)/configure.1


install.all: install-dirs install-autoconf install-texinfo \
	install-mmalloc install-libiberty install-bfd install-binutils \
	install-bison install-byacc install-flex install-ld \
	install-gas install-gcc install-gprof install-libgcc \
	install-readline install-glob install-gdb install-make \
	install-cvs install-patch install-emacs install-ispell \
	install-libg++ install-newlib \
	install-send_pr

install.cross: install-dirs install-libiberty install-mmalloc \
        install-binutils install-bison install-byacc install-flex \
        install-ld install-gas install-libgcc install-readline \
        install-glob install-gdb install-mmalloc install-gprof install-newlib install-gcc

### autoconf
all-autoconf: force
	@if [ -d ./autoconf ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./autoconf; \
		$(MAKE) $(FLAGS_TO_PASS) all) ; \
	else \
		true ; \
	fi

clean-autoconf: force
	@if [ -d ./autoconf ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./autoconf; \
		$(MAKE) $(FLAGS_TO_PASS) clean) ; \
	else \
		true ; \
	fi

install-autoconf: force
	@if [ -d ./autoconf ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./autoconf; \
		$(MAKE) $(FLAGS_TO_PASS) install) ; \
	else \
		true ; \
	fi

### libiberty
all-libiberty: force
	@if [ -d ./libiberty ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./libiberty; \
		$(MAKE) $(FLAGS_TO_PASS) all) ; \
	else \
		true ; \
	fi

clean-libiberty: force
	@if [ -d ./libiberty ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./libiberty; \
		$(MAKE) $(FLAGS_TO_PASS) clean) ; \
	else \
		true ; \
	fi

install-libiberty: force
	@if [ -d ./libiberty ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./libiberty; \
		$(MAKE) $(FLAGS_TO_PASS) install) ; \
	else \
		true ; \
	fi

### mmalloc
all-mmalloc: force
	@if [ -d ./mmalloc ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./mmalloc; \
		$(MAKE) $(FLAGS_TO_PASS) all) ; \
	else \
		true ; \
	fi

clean-mmalloc: force
	@if [ -d ./mmalloc ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./mmalloc; \
		$(MAKE) $(FLAGS_TO_PASS) clean) ; \
	else \
		true ; \
	fi

install-mmalloc: force
	@if [ -d ./mmalloc ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./mmalloc; \
		$(MAKE) $(FLAGS_TO_PASS) install) ; \
	else \
		true ; \
	fi

### texinfo
all-texinfo: all-libiberty
	@if [ -d ./texinfo ] ; then \
		rootme=`pwd` ; export rootme ; \
		rootme=`pwd` ; export rootme ; \
		(cd ./texinfo; \
		$(MAKE) $(FLAGS_TO_PASS) all) ; \
	else \
		true ; \
	fi

clean-texinfo: force
	@if [ -d ./texinfo ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./texinfo; \
		$(MAKE) $(FLAGS_TO_PASS) clean) ; \
	else \
		true ; \
	fi

install-texinfo: force
	@if [ -d ./texinfo ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./texinfo; \
		$(MAKE) $(FLAGS_TO_PASS) install) ; \
	else \
		true ; \
	fi

### bfd
all-bfd: force
	@if [ -d ./bfd ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./bfd; \
		$(MAKE) $(FLAGS_TO_PASS) all) ; \
	else \
		true ; \
	fi

clean-bfd: force
	@if [ -d ./bfd ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./bfd; \
		$(MAKE) $(FLAGS_TO_PASS) clean) ; \
	else \
		true ; \
	fi

install-bfd: force
	@if [ -d ./bfd ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./bfd; \
		$(MAKE) $(FLAGS_TO_PASS) install) ; \
	else \
		true ; \
	fi

### binutils
all-binutils: all-libiberty all-bfd all-flex
	@if [ -d ./binutils ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./binutils; \
		$(MAKE) $(FLAGS_TO_PASS) all) ; \
	else \
		true ; \
	fi

clean-binutils: force
	@if [ -d ./binutils ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./binutils; \
		$(MAKE) $(FLAGS_TO_PASS) clean) ; \
	else \
		true ; \
	fi

install-binutils: force
	@if [ -d ./binutils ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./binutils; \
		$(MAKE) $(FLAGS_TO_PASS) install) ; \
	else \
		true ; \
	fi

### newlib
all-newlib: force
	@if [ -d ./newlib ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./newlib; \
		$(MAKE) $(FLAGS_TO_PASS) all) ; \
	else \
		true ; \
	fi

clean-newlib: force
	@if [ -d ./newlib ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./newlib; \
		$(MAKE) $(FLAGS_TO_PASS) clean) ; \
	else \
		true ; \
	fi

install-newlib: force
	@if [ -d ./newlib ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./newlib; \
		$(MAKE)  install) ; \
	else \
		true ; \
	fi

### gprof
all-gprof: all-libiberty all-bfd
	@if [ -d ./gprof ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./gprof; \
		$(MAKE) $(FLAGS_TO_PASS) all) ; \
	else \
		true ; \
	fi

clean-gprof: force
	@if [ -d ./gprof ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./gprof; \
		$(MAKE) $(FLAGS_TO_PASS) clean) ; \
	else \
		true ; \
	fi

install-gprof: force
	@if [ -d ./gprof ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./gprof; \
		$(MAKE) $(FLAGS_TO_PASS) install) ; \
	else \
		true ; \
	fi

### byacc
all-byacc: force
	@if [ -d ./byacc ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./byacc; \
		$(MAKE) $(FLAGS_TO_PASS) all) ; \
	else \
		true ; \
	fi

clean-byacc: force
	@if [ -d ./byacc ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./byacc; \
		$(MAKE) $(FLAGS_TO_PASS) clean) ; \
	else \
		true ; \
	fi

install-byacc: force
	@if [ -d ./byacc ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./byacc; \
		$(MAKE) $(FLAGS_TO_PASS) install) ; \
	else \
		true ; \
	fi

### bison
all-bison: all-libiberty
	@if [ -d ./bison ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./bison; \
		$(MAKE) $(FLAGS_TO_PASS) all) ; \
	else \
		true ; \
	fi

clean-bison: force
	@if [ -d ./bison ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./bison; \
		$(MAKE) $(FLAGS_TO_PASS) clean) ; \
	else \
		true ; \
	fi

install-bison: force
	@if [ -d ./bison ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./bison; \
		$(MAKE) $(FLAGS_TO_PASS) install) ; \
	else \
		true ; \
	fi

### flex
all-flex: all-libiberty
	@if [ -d ./flex ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./flex; \
		$(MAKE) $(FLAGS_TO_PASS) all) ; \
	else \
		true ; \
	fi

clean-flex: force
	@if [ -d ./flex ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./flex; \
		$(MAKE) $(FLAGS_TO_PASS) clean) ; \
	else \
		true ; \
	fi

install-flex: force
	@if [ -d ./flex ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./flex; \
		$(MAKE) $(FLAGS_TO_PASS) install) ; \
	else \
		true ; \
	fi
### gcc
all-gcc: all-libiberty all-byacc
	@if [ -d ./gcc ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./gcc; \
		$(MAKE) $(FLAGS_TO_PASS) all) ; \
	else \
		true ; \
	fi

clean-gcc: force
	@if [ -d ./gcc ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./gcc; \
		$(MAKE) $(FLAGS_TO_PASS) clean) ; \
	else \
		true ; \
	fi

install-gcc: force
	@if [ -d ./gcc ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./gcc; \
		$(MAKE) $(FLAGS_TO_PASS) install) ; \
	else \
		true ; \
	fi

### readline
all-readline: force
	@if [ -d ./readline ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./readline; \
		$(MAKE) $(FLAGS_TO_PASS) all) ; \
	else \
		true ; \
	fi

clean-readline: force
	@if [ -d ./readline ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./readline; \
		$(MAKE) $(FLAGS_TO_PASS) clean) ; \
	else \
		true ; \
	fi

install-readline: force
	@if [ -d ./readline ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./readline; \
		$(MAKE) $(FLAGS_TO_PASS) install) ; \
	else \
		true ; \
	fi

### glob
all-glob: force
	@if [ -d ./glob ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./glob; \
		$(MAKE) $(FLAGS_TO_PASS) all) ; \
	else \
		true ; \
	fi

clean-glob: force
	@if [ -d ./glob ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./glob; \
		$(MAKE) $(FLAGS_TO_PASS) clean) ; \
	else \
		true ; \
	fi

install-glob: force
	@if [ -d ./glob ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./glob; \
		$(MAKE) $(FLAGS_TO_PASS) install) ; \
	else \
		true ; \
	fi

### gas
all-gas: all-libiberty all-bfd
	@if [ -d ./gas ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./gas; \
		$(MAKE) $(FLAGS_TO_PASS) all) ; \
	else \
		true ; \
	fi

clean-gas: force
	@if [ -d ./gas ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./gas; \
		$(MAKE) $(FLAGS_TO_PASS) clean) ; \
	else \
		true ; \
	fi

install-gas: force
	@if [ -d ./gas ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./gas; \
		$(MAKE) $(FLAGS_TO_PASS) install) ; \
	else \
		true ; \
	fi

### ld
all-ld: all-libiberty all-bfd all-byacc all-flex
	@if [ -d ./ld ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./ld; \
		$(MAKE) $(FLAGS_TO_PASS) all) ; \
	else \
		true ; \
	fi

clean-ld: force
	@if [ -d ./ld ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./ld; \
		$(MAKE) $(FLAGS_TO_PASS) clean) ; \
	else \
		true ; \
	fi

install-ld: force
	@if [ -d ./ld ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./ld; \
		$(MAKE) $(FLAGS_TO_PASS) install) ; \
	else \
		true ; \
	fi

### libgcc (and libgcc1)
all-libgcc1: all-gas all-binutils
	@if [ -d ./libgcc ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./libgcc; \
		$(MAKE) $(FLAGS_TO_PASS) libgcc1.a) ; \
	else \
		true ; \
	fi

clean-libgcc1: force
	@if [ -d ./libgcc ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./libgcc; \
		$(MAKE) $(FLAGS_TO_PASS) clean-libgcc1) ; \
	else \
		true ; \
	fi

install-libgcc1: force
	echo libgcc1 is a component, not an installable target

all-libgcc: all-gas all-gcc all-binutils
	true
	@if [ -d ./libgcc ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./libgcc; \
		$(MAKE) $(FLAGS_TO_PASS) all) ; \
	else \
		true ; \
	fi

clean-libgcc: force
	@if [ -d ./libgcc ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./libgcc; \
		$(MAKE) $(FLAGS_TO_PASS) clean) ; \
	else \
		true ; \
	fi

install-libgcc: force
	@if [ -d ./libgcc ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./libgcc; \
		$(MAKE) $(FLAGS_TO_PASS) install) ; \
	else \
		true ; \
	fi

### gdb
all-gdb: all-bfd all-libiberty all-mmalloc all-readline all-glob all-byacc
	@if [ -d ./gdb ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./gdb; \
		$(MAKE) $(FLAGS_TO_PASS) all) ; \
	else \
		true ; \
	fi

clean-gdb: force
	@if [ -d ./gdb ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./gdb; \
		$(MAKE) $(FLAGS_TO_PASS) clean) ; \
	else \
		true ; \
	fi

install-gdb: force
	@if [ -d ./gdb ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./gdb; \
		$(MAKE) $(FLAGS_TO_PASS) install) ; \
	else \
		true ; \
	fi

### make
all-make: all-libiberty
	@if [ -d ./make ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./make; \
		$(MAKE) $(FLAGS_TO_PASS) all) ; \
	else \
		true ; \
	fi

clean-make: force
	@if [ -d ./make ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./make; \
		$(MAKE) $(FLAGS_TO_PASS) clean) ; \
	else \
		true ; \
	fi

install-make: force
	@if [ -d ./make ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./make; \
		$(MAKE) $(FLAGS_TO_PASS) install) ; \
	else \
		true ; \
	fi

### diff
all-diff: force
	@if [ -d ./diff ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./diff; \
		$(MAKE) $(FLAGS_TO_PASS) all) ; \
	else \
		true ; \
	fi

clean-diff: force
	@if [ -d ./diff ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./diff; \
		$(MAKE) $(FLAGS_TO_PASS) clean) ; \
	else \
		true ; \
	fi

install-diff: force
	@if [ -d ./diff ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./diff/; \
		$(MAKE) $(FLAGS_TO_PASS) install) ; \
	else \
		true ; \
	fi

### grep
all-grep: force
	@if [ -d ./grep ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./grep; \
		$(MAKE) $(FLAGS_TO_PASS) all) ; \
	else \
		true ; \
	fi

clean-grep: force
	@if [ -d ./grep ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./grep; \
		$(MAKE) $(FLAGS_TO_PASS) clean) ; \
	else \
		true ; \
	fi

install-grep: force
	@if [ -d ./grep ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./grep; \
		$(MAKE) $(FLAGS_TO_PASS) install) ; \
	else \
		true ; \
	fi

### rcs
all-rcs: force
	@if [ -d ./rcs ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./rcs; \
		$(MAKE) $(FLAGS_TO_PASS) all) ; \
	else \
		true ; \
	fi

clean-rcs: force
	@if [ -d ./rcs ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./rcs; \
		$(MAKE) $(FLAGS_TO_PASS) clean) ; \
	else \
		true ; \
	fi

install-rcs: force
	@if [ -d ./rcs ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./rcs; \
		$(MAKE) $(FLAGS_TO_PASS) install) ; \
	else \
		true ; \
	fi

### cvs
all-cvs: force
	@if [ -d ./cvs ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./cvs; \
		$(MAKE) $(FLAGS_TO_PASS) all) ; \
	else \
		true ; \
	fi

clean-cvs: force
	@if [ -d ./cvs ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./cvs; \
		$(MAKE) $(FLAGS_TO_PASS) clean) ; \
	else \
		true ; \
	fi

install-cvs: force
	@if [ -d ./cvs ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./cvs; \
		$(MAKE) $(FLAGS_TO_PASS) install) ; \
	else \
		true ; \
	fi

### patch
all-patch: force
	@if [ -d ./patch ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./patch; \
		$(MAKE) $(FLAGS_TO_PASS) all) ; \
	else \
		true ; \
	fi

clean-patch: force
	@if [ -d ./patch ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./patch; \
		$(MAKE) $(FLAGS_TO_PASS) clean) ; \
	else \
		true ; \
	fi

install-patch: force
	@if [ -d ./patch ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./patch; \
		$(MAKE) $(FLAGS_TO_PASS) \
			bindir=$(bindir) \
			man1dir=$(man1dir) install) ; \
	else \
		true ; \
	fi

### emacs
all-emacs: force
	@if [ -d ./emacs ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./emacs; \
		$(MAKE) $(FLAGS_TO_PASS) all) ; \
	else \
		true ; \
	fi

clean-emacs: force
	@if [ -d ./emacs ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./emacs; \
		$(MAKE) $(FLAGS_TO_PASS) clean) ; \
	else \
		true ; \
	fi

install-emacs: force
	@if [ -d ./emacs ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./emacs; \
		$(MAKE) $(FLAGS_TO_PASS) install) ; \
	else \
		true ; \
	fi

### ispell
all-ispell: all-emacs
	@if [ -d ./ispell ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./ispell; \
		$(MAKE) $(FLAGS_TO_PASS) all) ; \
	else \
		true ; \
	fi

clean-ispell: force
	@if [ -d ./ispell ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./ispell; \
		$(MAKE) $(FLAGS_TO_PASS) clean) ; \
	else \
		true ; \
	fi

install-ispell: force
	@if [ -d ./ispell ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./ispell; \
		$(MAKE) $(FLAGS_TO_PASS) install) ; \
	else \
		true ; \
	fi

### send_pr
all-send_pr: force
	@if [ -d ./send_pr ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./send_pr; \
		$(MAKE) $(FLAGS_TO_PASS) all) ; \
	else \
		true ; \
	fi

clean-send_pr: force
	@if [ -d ./send_pr ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./send_pr; \
		$(MAKE) $(FLAGS_TO_PASS) clean) ; \
	else \
		true ; \
	fi

install-send_pr: force
	@if [ -d ./send_pr ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./send_pr; \
		$(MAKE) $(FLAGS_TO_PASS) install) ; \
	else \
		true ; \
	fi

### libg++

all-libg++: all-gas all-ld all-gcc
	@if [ -d ./libg++ ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./libg++; \
		$(MAKE) $(FLAGS_TO_PASS) "CC=${GXX}" all) ; \
	else \
		true ; \
	fi

clean-libg++: force
	@if [ -d ./libg++ ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./libg++; \
		$(MAKE) $(FLAGS_TO_PASS) "CC=${GXX}" clean) ; \
	else \
		true ; \
	fi

install-libg++: force
	@if [ -d ./libg++ ] ; then \
		rootme=`pwd` ; export rootme ; \
		(cd ./libg++; \
		$(MAKE) $(FLAGS_TO_PASS) "CC=${GXX}" install) ; \
	else \
		true ; \
	fi

### other supporting targets
# this is a bad hack.
all.xclib:	all.normal
	if [ -d clib ] ; then \
		(cd clib ; $(MAKE) $(FLAGS_TO_PASS)) ; \
	fi

subdir_do:
	@for i in $(DODIRS); do \
		if [ -f ./$$i/localenv ] ; then \
			if (rootme=`pwd` ; export rootme ; cd ./$$i; \
				$(MAKE) $(FLAGS_TO_PASS) $(DO)) ; then true ; \
				else exit 1 ; fi ; \
		else if [ -d ./$$i ] ; then \
			if (rootme=`pwd` ; export rootme ; cd ./$$i; \
				$(MAKE) $(FLAGS_TO_PASS) $(DO)) ; then true ; \
			else exit 1 ; fi ; \
		else true ; fi ; \
	fi ; \
	done

# The "else true" stuff is for Ultrix; the shell returns the exit code
# of the "if" command, if no commands are run in the "then" or "else" part,
# causing Make to quit.

MAKEDIRS= \
	$(prefix) \
	$(exec_prefix) \
	$(bindir) \
	$(libdir) \
	$(tooldir) \
	$(includedir) \
	$(datadir) \
	$(docdir) \
	$(mandir) \
	$(man1dir) \
	$(man5dir)

#	$(man2dir) \
#	$(man3dir) \
#	$(man4dir) \
#	$(man6dir) \
#	$(man7dir) \
#	$(man8dir)

install-dirs:
	for i in $(MAKEDIRS) ; do \
		echo Making $$i... ; \
		[ -d $$i ] || mkdir $$i || exit 1 ; \
	done

MAKEINFODIRS= \
	$(prefix) \
	$(infodir)

install-info-dirs:
	if [ -d $(prefix) ] ; then true ; else mkdir $(prefix) ; fi
	if [ -d $(datadir) ] ; then true ; else mkdir $(datadir) ; fi
	if [ -d $(infodir) ] ; then true ; else mkdir $(infodir) ; fi

dir.info:
	$(srcdir)/texinfo/gen-info-dir $(infodir) > dir.info.new
	mv -f dir.info.new dir.info

etags tags: TAGS

TAGS:
	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 $(host_makefile_frag) $(target_makefile_frag)
	$(SHELL) ./config.status

#
# Build GDB distributions that contain BFD, Include, Libiberty, Readline, etc

DEVO_SUPPORT= README cfg-paper.texi Makefile.in configure configure.in \
	config.sub config configure.man move-if-change
GDB_SUPPORT_DIRS= bfd include libiberty mmalloc readline glob
GDB_SUPPORT_FILES= $(GDB_SUPPORT_DIRS) texinfo/fsf/texinfo.tex

setup-dirs: force_update
	./configure sun4
	make clean
	./configure -rm sun4
	chmod og=u `find $(DEVO_SUPPORT) $(GDB_SUPPORT_FILES) -print`

bfd.ilrt.tar.Z: setup-dirs
	rm -f bfd.ilrt.tar.Z
	tar cf - $(DEVO_SUPPORT) $(GDB_SUPPORT_FILES) \
		| compress -v >bfd.ilrt.tar.Z

gdb.tar.Z: setup-dirs
	(cd gdb; $(MAKE) -f Makefile.in make-proto-gdb.dir)
	$(MAKE) $(MFLAGS) -f Makefile.in make-gdb.tar.Z

make-gdb.tar.Z: $(DEVO_SUPPORT) $(GDB_SUPPORT_DIRS) gdb texinfo/fsf/texinfo.tex
	rm -rf proto-toplev; mkdir proto-toplev
	ln -s ../gdb/proto-gdb.dir proto-toplev/gdb
	(cd proto-toplev; for i in $(DEVO_SUPPORT) $(GDB_SUPPORT_DIRS); do \
		ln -s ../$$i . ; \
	done)
	# Put only one copy (four hard links) of COPYING in the tar file.
	rm                          proto-toplev/bfd/COPYING
	ln proto-toplev/gdb/COPYING proto-toplev/bfd/COPYING
	rm                          proto-toplev/include/COPYING
	ln proto-toplev/gdb/COPYING proto-toplev/include/COPYING
	rm                          proto-toplev/readline/COPYING
	ln proto-toplev/gdb/COPYING proto-toplev/readline/COPYING
	# Take out texinfo from configurable dirs
	rm proto-toplev/configure.in
	sed '/^configdirs=/s/texinfo //' <configure.in >proto-toplev/configure.in
	# Take out glob from buildable dirs
	rm proto-toplev/Makefile.in

	sed -e '/^SUBDIRS =/s/glob //' \
	    -e '/^all\.normal: /s/\all-texinfo //' \
	    -e '/^clean: /s/clean-texinfo //' \
	    -e '/^install\.all: /s/install-texinfo //' \
	<Makefile.in >proto-toplev/Makefile.in

	mkdir proto-toplev/texinfo
	mkdir proto-toplev/texinfo/fsf
	ln -s ../../../texinfo/fsf/texinfo.tex proto-toplev/texinfo/fsf/
	chmod og=u `find proto-toplev -print`
	(VER=`sed <gdb/Makefile.in -n 's/VERSION = //p'`; \
		echo "==> Making gdb-$$VER.tar.Z"; \
		ln -s proto-toplev gdb-$$VER; \
		tar cfh - gdb-$$VER \
		| compress -v >gdb-$$VER.tar.Z)

force_update:

nothing:

# end of Makefile.in