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. # 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$ # $Id$
@ -12,22 +12,21 @@ destdir = /usr/local
#CC = gcc -b$(target) # -B$(srcdir)/../gas/Host-$(host)/Target-$(target)/ #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) #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 RANLIB = ranlib
AR = ar AR = ar
AR_FLAGS = cqv AR_FLAGS = cqv
BOOTSTRAPPABLE = getopt bfd binutils ld gas gcc gnulib
OTHERS =
#### host and target specific makefile fragments come in here. #### host and target specific makefile fragments come in here.
### ###
subdir_do: $(SUBDIRS) $(TARGETDIRS) all:
for i in $(SUBDIRS); \ $(MAKE) subdir_do DO=all "DODIRS=$(BOOTSTRAPPABLE) $(OTHERS)"
subdir_do: $(DODIRS)
for i in $(DODIRS); \
do \ do \
if (cd $(srcdir)/$$i`if [ -d $(srcdir)/$$i.$(target) ] ; \ if (cd $(srcdir)/$$i`if [ -d $(srcdir)/$$i.$(target) ] ; \
then echo .$(target) ; fi`$(subdir); \ then echo .$(target) ; fi`$(subdir); \
@ -41,37 +40,63 @@ subdir_do: $(SUBDIRS) $(TARGETDIRS)
fi ;\ fi ;\
done done
all:
$(MAKE) subdir_do DO=all
stage1:
$(MAKE) subdir_do DO=stage1
bootstrap: bootstrap:
$(MAKE) all $(MAKE) all
$(MAKE) stage1 $(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: clean:
rm -rf *.a TEMP errs core *.o *~ \#* TAGS *.E rm -rf *.a TEMP errs core *.o *~ \#* TAGS *.E
$(MAKE) subdir_do DO=clean $(MAKE) subdir_do DO=clean "DODIRS=$(BOOTSTRAPPABLE) $(OTHERS)"
install: install:
$(MAKE) subdir_do DO=install $(MAKE) subdir_do DO=install "DODIRS=$(BOOTSTRAPPABLE) $(OTHERS)"
# 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 etags tags: TAGS
@ -103,7 +128,10 @@ Makefile: $(srcdir)/Makefile.in $(srcdir)/configure
# #
# $Log$ # $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 # Added getopt for binutils, fixed problem with host dependancies in
# configure.template. # 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) PROGS = $(SIZE_PROG) $(COPY_PROG) $(OBJDUMP_PROG) $(NM_PROG) $(AR_PROG) $(STRIP_PROG) $(RANLIB_PROG)
#CC = gcc -Wall
#CC=gcc
BASEDIR = $(srcdir)/.. BASEDIR = $(srcdir)/..
# Let rich do this for now:
LIBDIR = $(srcdir)/../bfd$(subdir) 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. #### host and target dependant Makefile fragments come in here.
### ###
INCDIR = $(BASEDIR)/include INCDIR = $(BASEDIR)/include
CFLAGS = -g -I$(srcdir)/../include-cygnus -I$(INCDIR) $(DEFINES) $(CDEFINES) CFLAGS = -g -I$(srcdir)/../include-cygnus -I$(INCDIR) $(HDEFINES) $(TDEFINES)
bindir=$(BASEDIR)/bin
DISASMS = m68k-pinsn.o i960-pinsn.o sparc-pinsn.o DISASMS = m68k-pinsn.o i960-pinsn.o sparc-pinsn.o
# #
## Random definitions ## Random definitions
# Hopefully all these may be flushed once we get configuration down pat. # 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. # Code shared by all the binutils.
BULIBS = bucomm.o version.o filemode.o 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 BFD = $(LIBDIR)/libbfd.a
# #
@ -103,19 +81,19 @@ all: $(ADDL_LIBS) $(PROGS)
# (cd $(LIBDIR); make) # (cd $(LIBDIR); make)
$(SIZE_PROG): $(ADDL_LIBS) size.o $(BFD) $(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) $(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) $(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) $(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) $(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) $(RANLIB_PROG): $(AR_PROG)
-rm -f $(RANLIB_PROG) -rm -f $(RANLIB_PROG)
@ -125,12 +103,36 @@ $(STRIP_PROG): $(COPY_PROG)
-rm -f $(STRIP_PROG) -rm -f $(STRIP_PROG)
-ln $(COPY_PROG) $(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: clean:
-rm -f *.o *~ \#* core $(PROGS) TAGS -rm -f *.o *~ \#* core $(PROGS) TAGS
etags tags: TAGS etags tags: TAGS
TAGS: .force TAGS: force
etags $(INCDIR)/*.h $(BFDSRC)/*.[hc] *.[hc] etags $(INCDIR)/*.h $(BFDSRC)/*.[hc] *.[hc]
realclean: clean realclean: clean
@ -169,8 +171,7 @@ ver960.c: FORCE
# Dummy target to force execution of dependent targets. # Dummy target to force execution of dependent targets.
# #
.force: force:
FORCE:
# Target to uncomment host-specific lines in this makefile. Such lines must # Target to uncomment host-specific lines in this makefile. Such lines must
# have the following string beginning in column 1: #__<hostname>__# # 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 # script appropriate for this directory. For more information, check
# any existing configure script. # 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 srctrigger=README.configure
srcname="gnu development package" srcname="gnu development package"
@ -553,7 +553,10 @@ exit 0
# #
# $Log$ # $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 # Added getopt for binutils, fixed problem with host dependancies in
# configure.template. # configure.template.
# #

View file

@ -3,7 +3,7 @@
# script appropriate for this directory. For more information, check # script appropriate for this directory. For more information, check
# any existing configure script. # 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 srctrigger=README.configure
srcname="gnu development package" srcname="gnu development package"

View file

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