Three staging checkpoint.

This commit is contained in:
K. Richard Pixley 1991-04-24 16:52:32 +00:00
parent b039ac3a20
commit 6a3958b22d
5 changed files with 132 additions and 101 deletions

View File

@ -1,7 +1,7 @@
#
# Makefile for directory with subdirs to build.
#
# Last Mod Tue Apr 16 12:57:52 PDT 1991, by rich@sendai
# Last Mod Thu Apr 18 17:41:48 PDT 1991, by rich@cygint.cygnus.com
#
# $Id$
@ -12,22 +12,21 @@ 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)
# These are roughly topologically sorted in order to make porting more
# streamlined.
SUBDIRS =
NONSUBDIRS =
SUBDIRS_INCLUDE = machine-dep
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.
###
subdir_do: $(SUBDIRS) $(TARGETDIRS)
for i in $(SUBDIRS); \
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); \
@ -41,37 +40,63 @@ subdir_do: $(SUBDIRS) $(TARGETDIRS)
fi ;\
done
all:
$(MAKE) subdir_do DO=all
stage1:
$(MAKE) subdir_do DO=stage1
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
$(MAKE) subdir_do DO=clean "DODIRS=$(BOOTSTRAPPABLE) $(OTHERS)"
install:
$(MAKE) subdir_do DO=install
# 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
$(MAKE) subdir_do DO=install "DODIRS=$(BOOTSTRAPPABLE) $(OTHERS)"
etags tags: TAGS
@ -103,7 +128,10 @@ Makefile: $(srcdir)/Makefile.in $(srcdir)/configure
#
# $Log$
# Revision 1.9 1991/04/17 01:34:36 rich
# 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.
#

View File

@ -34,40 +34,18 @@ OBJDUMP_PROG=objdump
PROGS = $(SIZE_PROG) $(COPY_PROG) $(OBJDUMP_PROG) $(NM_PROG) $(AR_PROG) $(STRIP_PROG) $(RANLIB_PROG)
#CC = gcc -Wall
#CC=gcc
BASEDIR = $(srcdir)/..
# Let rich do this for now:
LIBDIR = $(srcdir)/../bfd$(subdir)
#__dgux__#DEFINES=-DHOST_SYS=DGUX_SYS
#__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
#### host and target dependant Makefile fragments come in here.
###
INCDIR = $(BASEDIR)/include
CFLAGS = -g -I$(srcdir)/../include-cygnus -I$(INCDIR) $(DEFINES) $(CDEFINES)
bindir=$(BASEDIR)/bin
CFLAGS = -g -I$(srcdir)/../include-cygnus -I$(INCDIR) $(HDEFINES) $(TDEFINES)
DISASMS = m68k-pinsn.o i960-pinsn.o sparc-pinsn.o
#
## Random definitions
# Hopefully all these may be flushed once we get configuration down pat.
@ -90,7 +68,7 @@ GNU_GETOPT_LONG = $(srcdir)/../getopt$(subdir)/libgetopt.a
# Code shared by all the binutils.
BULIBS = bucomm.o version.o filemode.o
ADDL_LIBS = $(GNU_GETOPT_LONG) $(MALLOC) $(BULIBS)
ADDL_LIBS = $(GNU_GETOPT_LONG) $(MALLOC) $(BULIBS) $(BFD)
BFD = $(LIBDIR)/libbfd.a
#
@ -103,19 +81,19 @@ all: $(ADDL_LIBS) $(PROGS)
# (cd $(LIBDIR); make)
$(SIZE_PROG): $(ADDL_LIBS) size.o $(BFD)
$(CC) $(LDFLAGS) $(CFLAGS) -o $(SIZE_PROG) size.o $(ADDL_LIBS) $(BFD)
$(CC) $(LDFLAGS) $(CFLAGS) -o $(SIZE_PROG) size.o $(ADDL_LIBS) $(LOADLIBES)
$(COPY_PROG): $(ADDL_LIBS) copy.o $(BFD)
$(CC) $(LDFLAGS) $(CFLAGS) -o $(COPY_PROG) copy.o $(ADDL_LIBS) $(BFD)
$(CC) $(LDFLAGS) $(CFLAGS) -o $(COPY_PROG) copy.o $(ADDL_LIBS) $(LOADLIBES)
$(NM_PROG): $(ADDL_LIBS) nm.o $(BFD)
$(CC) $(LDFLAGS) $(CFLAGS) -o $(NM_PROG) nm.o $(MALLOC) $(ADDL_LIBS) $(BFD)
$(CC) $(LDFLAGS) $(CFLAGS) -o $(NM_PROG) nm.o $(ADDL_LIBS) $(LOADLIBES)
$(OBJDUMP_PROG): $(ADDL_LIBS) size.o objdump.o $(DISASMS) $(BFD)
$(CC) $(LDFLAGS) $(CFLAGS) -o $(OBJDUMP_PROG) objdump.o $(DISASMS) $(ADDL_LIBS) $(BFD)
$(CC) $(LDFLAGS) $(CFLAGS) -o $(OBJDUMP_PROG) objdump.o $(DISASMS) $(ADDL_LIBS) $(LOADLIBES)
$(AR_PROG): $(ADDL_LIBS) ar.o $(BFD)
$(CC) $(LDFLAGS) $(CFLAGS) -o $(AR_PROG) ar.o $(MALLOC) $(ADDL_LIBS) $(BFD)
$(CC) $(LDFLAGS) $(CFLAGS) -o $(AR_PROG) ar.o $(ADDL_LIBS) $(LOADLIBES)
$(RANLIB_PROG): $(AR_PROG)
-rm -f $(RANLIB_PROG)
@ -125,12 +103,36 @@ $(STRIP_PROG): $(COPY_PROG)
-rm -f $(STRIP_PROG)
-ln $(COPY_PROG) $(STRIP_PROG)
stage1: force
- mkdir stage1
- mv -f *.o $(PROGS) stage1
stage2: force
- mkdir stage2
- mv -f *.o $(PROGS) stage2
stage3: force
- mkdir stage3
- mv -f *.o $(PROGS) stage3
de-stage1: force
- (cd stage1 ; mv -f * ..)
- rmdir stage1
de-stage2: force
- (cd stage2 ; mv -f * ..)
- rmdir stage2
de-stage3: force
- (cd stage3 ; mv -f * ..)
- rmdir stage3
clean:
-rm -f *.o *~ \#* core $(PROGS) TAGS
etags tags: TAGS
TAGS: .force
TAGS: force
etags $(INCDIR)/*.h $(BFDSRC)/*.[hc] *.[hc]
realclean: clean
@ -169,8 +171,7 @@ ver960.c: FORCE
# Dummy target to force execution of dependent targets.
#
.force:
FORCE:
force:
# Target to uncomment host-specific lines in this makefile. Such lines must
# have the following string beginning in column 1: #__<hostname>__#

7
configure vendored
View File

@ -175,7 +175,7 @@ fi
# script appropriate for this directory. For more information, check
# any existing configure script.
configdirs="getopt bfd binutils ld gas gnulib1 gcc clib"
configdirs="getopt bfd binutils ld gas gcc gnulib clib"
srctrigger=README.configure
srcname="gnu development package"
@ -553,7 +553,10 @@ exit 0
#
# $Log$
# Revision 1.8 1991/04/17 01:34:44 rich
# Revision 1.9 1991/04/24 16:50:54 rich
# Three staging checkpoint.
#
# Revision 1.7 1991/04/17 01:34:47 rich
# Added getopt for binutils, fixed problem with host dependancies in
# configure.template.
#

View File

@ -3,7 +3,7 @@
# script appropriate for this directory. For more information, check
# any existing configure script.
configdirs="getopt bfd binutils ld gas gnulib1 gcc clib"
configdirs="getopt bfd binutils ld gas gcc gnulib clib"
srctrigger=README.configure
srcname="gnu development package"

View File

@ -126,7 +126,7 @@ HOST_LDFLAGS=$(LDFLAGS)
HOST_CPPFLAGS=$(CPPFLAGS)
# Choose the real default target.
ALL=gas
ALL=as
# End of variables for you to override.
@ -236,7 +236,7 @@ all: $(ALL)
# Now figure out from those variables how to compile and link.
# This is the variable actually used when we compile.
ALL_CFLAGS = $(INTERNAL_CFLAGS) $(CFLAGS)
ALL_CFLAGS = $(INTERNAL_CFLAGS) $(CFLAGS) $(HDEFINES) $(TDEFINES)
# Even if ALLOCA is set, don't use it if compiling with GCC.
USE_ALLOCA= `if [ x"${CC}" = x"${OLDCC}" ] ; then echo ${ALLOCA}; else true; fi`
@ -277,7 +277,7 @@ SUBDIR_INCLUDES = -I.. -I../$(srcdir) -I../$(srcdir)/config
# Files to be copied away after each stage in building.
STAGE_GCC=gcc
STAGESTUFF = *.o gas
STAGESTUFF = *.o as
# The files that "belong" in CONFIG_H are deliberately omitted
# because having them there would not be useful in actual practice.
@ -288,14 +288,14 @@ STAGESTUFF = *.o gas
# CONFIG_H = config.h tm.h
CONFIG_H =
gas: $(OBJS) $(LIBDEPS)
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o gas $(OBJS) $(LIBS)
as: $(OBJS) $(LIBDEPS)
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o as $(OBJS) $(LIBS) $(LOADLIBES)
objdump:
all.internal: native
# This is what is made with the host's compiler if making a cross assembler.
native: config.status gas
native: config.status as
config.status:
@echo You must configure gas. Look at the INSTALL file for details.
@ -464,8 +464,8 @@ realclean: cleanconfig
# Entry points `install', `includes' and `uninstall'.
# Copy the files into directories where they will be run.
install: gas
$(INSTALL_PROGRAM) gas $(libsubdir)/as
install: as
$(INSTALL_PROGRAM) as $(libsubdir)/as
# Create the installation directory.
install-dir:
@ -494,7 +494,7 @@ install-man: install-dir $(srcdir)/gcc.1 protoize.1 unprotoize.1
# Cancel installation by deleting the installed files.
uninstall:
-rm -rf $(libsubdir)
-rm -rf $(bindir)/gas
-rm -rf $(bindir)/as
-rm -rf $(mandir)/gas.$(manext)
@ -503,48 +503,47 @@ uninstall:
tags TAGS: force
etags $(REAL_SOURCES) $(REAL_HEADERS) README Makefile config/*.[hc]
bootstrap: gas force
bootstrap: as force
$(MAKE) stage1
$(MAKE) CC="$(CC)" CFLAGS="-O -Bstage1/ $(CFLAGS)" libdir=$(libdir) ALLOCA= gas
$(MAKE) CC="$(CC)" CFLAGS="-O -Bstage1/ $(CFLAGS)" libdir=$(libdir) ALLOCA= as
$(MAKE) stage2
$(MAKE) CC="$(CC)" CFLAGS="-O -Bstage2/ $(CFLAGS)" libdir=$(libdir) ALLOCA= gas
$(MAKE) CC="$(CC)" CFLAGS="-O -Bstage2/ $(CFLAGS)" libdir=$(libdir) ALLOCA= as
for i in *.o; do cmp $$i stage2/$$i; done
bootstrap2: force
$(MAKE) CC="$(CC)" CFLAGS="-O -Bstage1/ $(CFLAGS)" libdir=$(libdir) ALLOCA= gas
$(MAKE) CC="$(CC)" CFLAGS="-O -Bstage1/ $(CFLAGS)" libdir=$(libdir) ALLOCA= as
$(MAKE) stage2
$(MAKE) CC="$(CC)" CFLAGS="-O -Bstage2/ $(CFLAGS)" libdir=$(libdir) ALLOCA= gas
$(MAKE) CC="$(CC)" CFLAGS="-O -Bstage2/ $(CFLAGS)" libdir=$(libdir) ALLOCA= as
$(MAKE) stage-last
bootstrap3: force
$(MAKE) CC="$(CC)" CFLAGS="-O -Bstage2/ $(CFLAGS)" libdir=$(libdir) ALLOCA= gas
$(MAKE) CC="$(CC)" CFLAGS="-O -Bstage2/ $(CFLAGS)" libdir=$(libdir) ALLOCA= as
$(MAKE) comparison
# Copy the object files from a particular stage into a subdirectory.
stage1: force
-mkdir stage1
-mv $(STAGESTUFF) stage1
-(cd stage1 ; ln -s gas as)
stage2: force
-mkdir stage2
-mv $(STAGESTUFF) stage2
-(cd stage2 ; ln -s gas as)
stage3: force
-mkdir stage3
-mv $(STAGESTUFF) $(STAGE_GCC) stage3
-rm -f stage3/gnulib
-cp gnulib stage3
-if $(RANLIB_TEST) ; then $(RANLIB) stage3/gnulib; else true; fi
-mv $(STAGESTUFF) stage3
stage4: force
-mkdir stage4
-mv $(STAGESTUFF) $(STAGE_GCC) stage4
-rm -f stage4/gnulib
-cp gnulib stage4
-if $(RANLIB_TEST) ; then $(RANLIB) stage4/gnulib; else true; fi
de-stage1: force
- (cd stage1 ; mv -f * ..)
- rmdir stage1
de-stage2: force
- (cd stage2 ; mv -f * ..)
- rmdir stage2
de-stage3: force
- (cd stage3 ; mv -f * ..)
- rmdir stage3
stage-last:
for i in *.o; do cmp $$i stage2/$$i; done
@ -585,11 +584,11 @@ risky-stage4: force
.PHONY: risky-stage1 risky-stage2 risky-stage3 risky-stage4
comparison: clean
$(MAKE) "CC=/usr/local/bin/gcc -Wall" gas
$(MAKE) "CC=/usr/local/bin/gcc -Wall" as
$(MAKE) stage1
- $(MAKE) "CC=/usr/local/bin/gcc -Wall -b$(target) -Bstage1/" gas -k
- $(MAKE) "CC=/usr/local/bin/gcc -Wall -b$(target) -Bstage1/" as -k
$(MAKE) stage2
- $(MAKE) "CC=/usr/local/bin/gcc -Wall -b$(target)" gas -k
- $(MAKE) "CC=/usr/local/bin/gcc -Wall -b$(target)" as -k
$(MAKE) stage-last
force: