Files
Arquivotheca.SunOS-4.1.4/lang/boot/Makefile
seta75D ff309bfe1c Init
2021-10-11 18:37:13 -03:00

455 lines
12 KiB
Makefile

#
# @(#)Makefile 1.1 (Sun) 10/31/94
# compiler bootstrap and fixed-point test
# Step 0 of a crank turn
#
RELEASEBIN = /usr/release/bin
SRCDIR = /usr/src
LANGSRC = $(SRCDIR)/lang
LANGUCB = $(SRCDIR)/ucblib
MAKE = make ${MFLAGS} CPU=$(CPU)
MAKE_ALT= make ${MFLAGS} CPU=$(CPU) \
YACC="$(alt)/yacc -P$(alt)/yaccpar" \
CC="$(CC)" AS="$(alt)/as" LD="$(alt)/ld "
CC = $(alt)/cc -Qpath $(alt)
bin = $(LANGSRC)/bin
alt = $(LANGSRC)/bin/$(CPU)
as = $(LANGSRC)/as
c2 = $(LANGSRC)/c2
vroot = $(LANGSRC)/vroot
compile = $(LANGUCB)/compile
yaccdir = $(LANGSRC)/yacc
cpp = $(LANGSRC)/cpp
iropt = $(LANGSRC)/iropt
inline = $(LANGSRC)/inline
ld = $(LANGSRC)/ld
ld.so = $(LANGSRC)/rtld
lint = $(LANGSRC)/lint
pcc = $(LANGSRC)/pcc
libc = $(SRCDIR)/lib/libc
csu = $(SRCDIR)/lib/csu/$(CPU)
libm = $(SRCDIR)/usr.lib/libm
5lib_compile = $(LANGSRC)/compile
ld.path = LD_LIBRARY_PATH=$(alt)
VERS-mc68010 = vers-m68k
VERS-mc68020 = vers-m68k
VERS-sparc = vers-sparc
CMDS = cc
INSTALLCMDS = /usr/ucb/cc /usr/bin/cc /usr/bin/lint
STEP1PROGS = \
step1cc step1yacc step1cpp step1pcc step1lint step1c2 step1as step1ld \
step1iropt step1inline
STEP3PROGS = \
step3cc step3yacc step3cpp step3pcc step3lint step3c2 step3as step3ld \
step3ldso step3iropt step3inline
STEP5PROGS = \
step5cc step5yacc step5cpp step5pcc step5lint step5c2 step5as step5ld \
step5ldso step5iropt step5inline
#
# goal: install stabilized compilers & libraries
#
all: finish
${RELEASEBIN}/makeinstall
#
# Initialize for step 0
#
step0clean:
cd $(libc) ; make clean > clean.out 2>&1 ; rm -f Make.out
cd $(csu) ; make clean > clean.out 2>&1 ; rm -f Make.out
rm -f sanity step*
rm -rf $(bin)
if test ! -d $(bin); then mkdir $(bin); fi
if test ! -d $(alt); then mkdir $(alt); fi
touch $@
#
# step 0: Make a library with the old compiler components and install it.
#
step0libc: step0clean
cd $(libc) ; $(MAKE) libc.a libc.so libc.sa >> Make.out 2>&1
touch $@
step0csu: step0libc
cd $(csu) ; $(MAKE) >> Make.out 2>&1
touch $@
step0: step0csu
cd $(libc) ; \
if [ -s $(VERS$(TARGET_MACH)) ]; then \
install libc.so $(alt)/libc.so.`cat $(VERS$(TARGET_MACH))`; \
install libc.sa $(alt)/libc.sa.`cat $(VERS$(TARGET_MACH))`; \
ranlib $(alt)/libc.sa.`cat $(VERS$(TARGET_MACH))`; \
else echo "/usr/src/lang/boot/Makefile:WARNING shared libraries not installed"; \
fi; \
install libc.a $(alt)/libc.a ; ranlib $(alt)/libc.a;
cd $(csu) ; cp *[01].o $(alt)
touch $@
#
# Initialize for step 1
#
step1clean: step0
cd $(vroot) ; make clean
cd $(compile) ; make clean
cd $(yaccdir) ; make clean
cd $(cpp) ; make clean
cd $(pcc) ; make clean
cd $(c2) ; make clean
cd $(as) ; make clean
cd $(ld) ; make clean
cd $(ld.so) ; make clean
cd $(iropt) ; make clean
cd $(inline) ; make clean
cd $(libm) ; make clean
cd $(5lib_compile) ; make clean
touch $@
#
# step 1: make new components using existing components.
#
step1cc: step1clean
cd $(compile) ; $(ld.path) $(MAKE)
touch $@
step1yacc: step1clean
cd $(yaccdir) ; $(ld.path) $(MAKE)
touch $@
step1cpp: step1clean
cd $(cpp) ; $(ld.path) $(MAKE)
touch $@
step1pcc: step1clean
cd $(pcc) ; $(ld.path) $(MAKE)
touch $@
step1lint: step1clean
cd $(lint) ; $(ld.path) $(MAKE)
touch $@
step1c2: step1clean
cd $(c2) ; $(ld.path) $(MAKE)
touch $@
step1as: step1clean
cd $(as) ; $(ld.path) $(MAKE)
touch $@
step1ld: step1clean
cd $(ld) ; $(ld.path) $(MAKE)
touch $@
step1iropt: step1clean
cd $(iropt) ; $(ld.path) $(MAKE)
touch $@
step1inline: step1clean
cd $(inline) ; $(ld.path) $(MAKE)
touch $@
#
# Install the new compiler passes.
#
step1: $(STEP1PROGS)
cd $(compile) ; install compile $(alt)/compile ; \
for i in ${CMDS}; do \
(rm -f $(alt)/$$i; ln -s compile $(alt)/$$i)\
done
cd $(yaccdir) ; install yacc $(alt)/yacc
cd $(yaccdir) ; install yaccpar $(alt)/yaccpar
cd $(cpp) ; install cpp $(alt)/cpp
cd $(pcc)/$(CPU) ; install ccom $(alt)/ccom
cd $(pcc)/$(CPU) ; install cg $(alt)/cg
case $(CPU) in \
m68k) cd $(c2)/m68k ; install c2 $(alt)/c2 ;\
esac
cd $(as)/$(CPU) ; install as $(alt)/as
cd $(ld)/$(CPU) ; install ld $(alt)/ld
cd $(iropt)/$(CPU) ; install iropt $(alt)/iropt
cd $(inline)/$(CPU) ; install inline $(alt)/inline
touch $@
#
# Initialize for step 2
#
step2clean: step1
cd $(libc) ; make clean > clean.out 2>&1 ; rm -f Make.out
cd $(csu) ; make clean > clean.out 2>&1 ; rm -f Make.out
touch $@
#
# step 2: Make a library with the new components and install it.
#
step2libc: step2clean
cd $(libc) ; $(MAKE_ALT) MAKE='$(MAKE_ALT)' \
libc.a libc.so libc.sa >> Make.out 2>&1
touch $@
step2csu: step2libc
cd $(csu) ; $(MAKE_ALT) MAKE='$(MAKE_ALT)' >> Make.out 2>&1
touch $@
step2: step2csu
cd $(libc) ; \
if [ -s $(VERS$(TARGET_MACH)) ]; then \
install libc.so $(alt)/libc.so.`cat $(VERS$(TARGET_MACH))`; \
install libc.sa $(alt)/libc.sa.`cat $(VERS$(TARGET_MACH))`; \
ranlib $(alt)/libc.sa.`cat $(VERS$(TARGET_MACH))`; \
else echo "/usr/src/lang/boot/Makefile:WARNING shared libraries not installed"; \
fi; \
install libc.a $(alt)/libc.a ; ranlib $(alt)/libc.a;
cd $(csu) ; cp *[01].o $(alt)
touch $@
#
# step 3: Make new compiler passes with the new compiler
# and link them with the new library.
#
step3clean: step2
cd $(vroot) ; make clean
cd $(compile) ; make clean
cd $(yaccdir) ; make clean
cd $(cpp) ; make clean
cd $(pcc) ; make clean
cd $(c2) ; make clean
cd $(as) ; make clean
cd $(ld) ; make clean
cd $(iropt) ; make clean
cd $(inline) ; make clean
touch $@
step3cc: step3clean
cd $(compile) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)'
touch $@
step3yacc: step3clean
cd $(yaccdir) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)'
touch $@
step3cpp: step3clean
cd $(cpp) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)'
touch $@
step3pcc: step3clean
cd $(pcc) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)'
touch $@
step3lint: step3clean
cd $(lint) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)'
touch $@
step3c2: step3clean
cd $(c2) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)'
touch $@
step3as: step3clean
cd $(as) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)'
touch $@
step3ld: step3clean
cd $(ld) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)'
touch $@
# ld.so needs to be compiled pic so it waits until new cc is installed
step3ldso: step3clean
cd $(ld.so); $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)'
touch $@
step3iropt: step3clean
cd $(iropt) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)'
touch $@
step3inline: step3clean
cd $(inline) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)'
touch $@
#
# install new components...
#
step3: $(STEP3PROGS)
cd $(compile) ; install compile $(alt)/compile ; \
for i in ${CMDS}; do \
(rm -f $(alt)/$$i; ln -s compile $(alt)/$$i)\
done
cd $(yaccdir) ; install yacc $(alt)/yacc
cd $(yaccdir) ; install yaccpar $(alt)/yaccpar
cd $(cpp) ; install cpp $(alt)/cpp
cd $(pcc)/$(CPU) ; install ccom $(alt)/ccom
cd $(pcc)/$(CPU) ; install cg $(alt)/cg
case $(CPU) in \
m68k) cd $(c2)/m68k ; install c2 $(alt)/c2 ;\
esac
cd $(as)/$(CPU) ; install as $(alt)/as
cd $(ld)/$(CPU) ; install ld $(alt)/ld
cd $(ld.so)/$(CPU) ; install ld.so $(alt)/ld.so
cd $(iropt)/$(CPU) ; install iropt $(alt)/iropt
cd $(inline)/$(CPU) ; install inline $(alt)/inline
touch $@
#
# At this point, we should have achieved a 'fixed point'.
# To test this, repeat steps 2 and 3 and compare results.
#
step4clean: step3
-cd $(libc) ; \
if [ -s $(VERS$(TARGET_MACH)) ]; then \
mv libc.so libc.so.bak ; mv libc.sa libc.sa.bak ; \
fi; \
mv libc.a libc.a.bak ; make clean > clean.out 2>&1 ;
-cd $(csu) ; make clean > clean.out 2>&1 ;
touch $@
step4libc: step4clean
cd $(libc) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)' \
libc.a libc.so libc.sa libbsdmalloc.a >> Make.out 2>&1
touch $@
step4csu: step4libc
cd $(csu) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)' \
>> Make.out 2>&1
touch $@
step4: step4csu
cd $(libc) ; \
if [ -s $(VERS$(TARGET_MACH)) ]; then \
install libc.so $(alt)/libc.so.`cat $(VERS$(TARGET_MACH))`; \
install libc.sa $(alt)/libc.sa.`cat $(VERS$(TARGET_MACH))`; \
ranlib $(alt)/libc.sa.`cat $(VERS$(TARGET_MACH))`; \
else echo "/usr/src/lang/boot/Makefile:WARNING shared libraries not installed"; \
fi; \
install libc.a $(alt)/libc.a ; ranlib $(alt)/libc.a
cd $(csu) ; cp *[01].o $(alt)
touch $@
#
# ...rebuild the new components
#
step5clean: step4
cd $(vroot) ; make clean
cd $(compile) ; make clean
cd $(yaccdir) ; make clean
cd $(cpp) ; make clean
cd $(pcc) ; make clean
cd $(c2) ; make clean
cd $(as) ; make clean
cd $(ld) ; make clean
cd $(ld.so) ; make clean
cd $(iropt) ; make clean
cd $(inline) ; make clean
touch $@
step5cc: step5clean
cd $(compile) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)'
touch $@
step5yacc: step5clean
cd $(yaccdir) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)'
touch $@
step5cpp: step5clean
cd $(cpp) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)'
touch $@
step5pcc: step5clean
cd $(pcc) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)'
touch $@
step5lint: step5clean
cd $(lint) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)'
touch $@
step5c2: step5clean
cd $(c2) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)'
touch $@
step5as: step5clean
cd $(as) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)'
touch $@
step5ld: step5clean
cd $(ld) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)'
touch $@
step5ldso: step5clean
cd $(ld.so); $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)'
touch $@
step5iropt: step5clean
cd $(iropt) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)'
touch $@
step5inline: step5clean
cd $(inline) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)'
touch $@
#
# ...and if the results differ, something is broken.
# note: the special case treatment for the assembler is necessary
# because it always gets timestamped
#
sanity: $(STEP5PROGS)
cd $(compile) ; cmp compile $(alt)/compile
cd $(yaccdir) ; cmp yacc $(alt)/yacc
cd $(cpp) ; cmp cpp $(alt)/cpp
cd $(pcc)/$(CPU) ; cmp ccom $(alt)/ccom
cd $(pcc)/$(CPU) ; cmp cg $(alt)/cg
case $(CPU) in \
m68k) cd $(c2)/m68k ; cmp c2 $(alt)/c2 ;\
esac
cd $(as)/$(CPU) ; cmp as $(alt)/as ;\
cd $(ld)/$(CPU) ; cmp ld $(alt)/ld
cd $(ld.so)/$(CPU) ; cmp ld.so $(alt)/ld.so
cd $(iropt)/$(CPU) ; cmp iropt $(alt)/iropt
cd $(inline)/$(CPU) ; cmp inline $(alt)/inline
touch $@
#
# This stuff isn't part of the C compiler, but needs to
# be built before getting on with the rest of the crank-turn.
#
libc_p: sanity
cd $(libc) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)' libc_p.a
touch $@
libcs5: sanity
cd $(libc) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)' libcs5.a libcs5.so libcs5_p.a libcs5.sa
touch $@
_libm: sanity
cd $(libm) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)' fsoft
touch $@
5compile: sanity
cd $(5lib_compile) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)'
touch $@
finish: libc_p libcs5 _libm 5compile
touch $@
install: finish
cd $(compile) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)' install DESTDIR=$(DESTDIR)
for i in ${INSTALLCMDS}; do \
(rm -f $(DESTDIR)/$$i; ln -s /usr/lib/compile $(DESTDIR)/$$i); \
done
cd $(yaccdir) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)' install DESTDIR=$(DESTDIR)
cd $(cpp) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)' install DESTDIR=$(DESTDIR)
cd $(pcc) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)' install DESTDIR=$(DESTDIR)
cd $(lint) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)' install DESTDIR=$(DESTDIR)
cd $(c2) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)' install DESTDIR=$(DESTDIR)
cd $(as) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)' install DESTDIR=$(DESTDIR)
cd $(ld) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)' install DESTDIR=$(DESTDIR)
cd $(ld.so) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)' install DESTDIR=$(DESTDIR)
cd $(iropt) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)' install DESTDIR=$(DESTDIR)
cd $(inline) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)' install DESTDIR=$(DESTDIR)
cd $(libc) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)' install DESTDIR=$(DESTDIR)
cd $(csu) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)' install DESTDIR=$(DESTDIR)
cd $(libm) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)' installfsoft DESTDIR=$(DESTDIR)
cd $(5lib_compile) ; $(ld.path) $(MAKE_ALT) MAKE='$(MAKE_ALT)' install DESTDIR=$(DESTDIR)
/usr/etc/ldconfig
depend:
@echo 'are you kidding?'