#
# Makefile for directory with subdirs to build.
#
# Last Mod Thu Apr 18 17:41:48 PDT 1991, by rich@cygint.cygnus.com
#

# $Id$

srcdir = .
destdir = /usr/local

#CC = gcc -b$(target) # -B$(srcdir)/../gas/Host-$(host)/Target-$(target)/
#CFLAGS = -g -nostdinc -nostdlib -I- -I/usr/local/lib/gcc/$(target)/1.92/include -I$(srcdir) -I$(srcdir)/../include -I$(OSINCLUDE)

RANLIB = ranlib
AR = ar
AR_FLAGS = cqv

BOOTSTRAPPABLE = getopt bfd binutils ld gas gcc gnulib
OTHERS = 

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

all:
	$(MAKE) subdir_do DO=all "DODIRS=$(BOOTSTRAPPABLE) $(OTHERS)"

subdir_do: $(DODIRS)
	for i in $(DODIRS); \
	  do \
	    if (cd $(srcdir)/$$i`if [ -d $(srcdir)/$$i.$(target) ] ; \
		then echo .$(target) ; fi`$(subdir); \
		$(MAKE) \
		    "destdir=$(destdir)" \
		    "AR=$(AR)" \
		    "AR_FLAGS=$(AR_FLAGS)" \
		    "RANLIB=$(RANLIB)" $(DO)) ; \
	    then true ; \
	    else exit 1 ; \
	    fi ;\
	  done

bootstrap:
	$(MAKE) all
	$(MAKE) stage1
	$(MAKE) pass "stagepass=stage1"
	$(MAKE) stage2
	$(MAKE) pass "stagepass=stage2"

bootstrap2:
	$(MAKE) pass "stagepass=stage1"
	$(MAKE) stage2
	$(MAKE) pass "stagepass=stage2"

bootstrap3:
	$(MAKE) pass "stagepass=stage2"

pass:
	$(MAKE) subdir_do DO=all "DODIRS=$(BOOTSTRAPPABLE)" \
		"CC=$(srcdir)/../gcc`if [ -d $(srcdir)/gcc.$(target) ] ; \
		then echo .$(target) ; fi`$(subdir)/$(stagepass)/gcc -O \
		-B$(srcdir)/../gcc`if [ -d $(srcdir)/gcc.$(target) ] ; \
		then echo .$(target) ; fi`$(subdir)/$(stagepass)/ \
		-B$(srcdir)/../gas`if [ -d $(srcdir)/gas.$(target) ] ; \
		then echo .$(target) ; fi`$(subdir)/$(stagepass)/" \
		"AR=$(srcdir)/../binutils`if [ -d $(srcdir)/binutils.$(target) ] ; \
		then echo .$(target) ; fi`$(subdir)/$(stagepass)/ar" \
		"RANLIB=$(srcdir)/../binutils`if [ -d $(srcdir)/binutils.$(target) ] ; \
		then echo .$(target) ; fi`$(subdir)/$(stagepass)/ranlib" \
		"LOADLIBES=$(srcdir)/../gnulib`if [ -d $(srcdir)/binutils.$(target) ] ; \
		then echo .$(target) ; fi`$(subdir)/$(stagepass)/gnulib.a /lib/libc.a" \
		"LDFLAGS=-nostdlib /lib/crt0.o \
		-B$(srcdir)/../ld`if [ -d $(srcdir)/ld.$(target) ] ; \
		then echo .$(target) ; fi`$(subdir)/$(stagepass)/"


stage1:
	$(MAKE) subdir_do DO=stage1 "DODIRS=$(BOOTSTRAPPABLE)"

stage2:
	$(MAKE) subdir_do DO=stage2 "DODIRS=$(BOOTSTRAPPABLE)"

stage3:
	$(MAKE) subdir_do DO=stage3 "DODIRS=$(BOOTSTRAPPABLE)"

stage4:
	$(MAKE) subdir_do DO=stage4 "DODIRS=$(BOOTSTRAPPABLE)"

de-stage1:; $(MAKE) subdir_do DO=de-stage1 "DODIRS=$(BOOTSTRAPPABLE)"
de-stage2:; $(MAKE) subdir_do DO=de-stage2 "DODIRS=$(BOOTSTRAPPABLE)"
de-stage3:; $(MAKE) subdir_do DO=de-stage3 "DODIRS=$(BOOTSTRAPPABLE)"
de-stage4:; $(MAKE) subdir_do DO=de-stage4 "DODIRS=$(BOOTSTRAPPABLE)"

clean:
	rm -rf *.a TEMP errs core *.o *~ \#* TAGS *.E
	$(MAKE) subdir_do DO=clean "DODIRS=$(BOOTSTRAPPABLE) $(OTHERS)"

install:
	$(MAKE) subdir_do DO=install "DODIRS=$(BOOTSTRAPPABLE) $(OTHERS)"

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 +destdir=$(destdir) +norecurse \
		 `if [ "$(srcdir)" != "." ] ; then echo +f; fi` \
		$(host) +target=$(target))

#
# $Log$
# Revision 1.10  1991/04/24 16:50:53  rich
# Three staging checkpoint.
#
# Revision 1.9  1991/04/17  01:34:36  rich
# Added getopt for binutils, fixed problem with host dependancies in
# configure.template.
#
# Revision 1.8  1991/04/15  23:43:45  rich
# Now handles multiple hosts and targets.
#
# Revision 1.7  1991/04/13  13:06:16  tiemann
# Don't depend `install' on `all'.  Actually, the way things work, all
# depends on things being incrementally installed, and install depends
# on everything happening in a topological fashion.
#
# This will need to be worked on further, but for now it's ok.
#
# Revision 1.6  1991/04/13  10:04:14  rich
# Now can build gas for a29k on a29k.
#
# Revision 1.5  1991/04/13  07:40:41  rich
# Fixed an ordering bug.  Now everything is built, and then installed.
#
# Revision 1.4  1991/04/13  02:11:09  rich
# Config cut 3.  We now almost install a29k.
#
# Revision 1.3  1991/04/11  02:41:53  rich
# Cut 2 config.  Subdirs.
#
#
#

# end of Makefile.in