Changed installation mechanism

This commit is contained in:
ceriel 1993-03-31 13:22:17 +00:00
parent 5117853b1b
commit 6b8fbeb016
27 changed files with 303 additions and 136 deletions

View file

@ -1,5 +1,6 @@
READ_ME
Makefile
proto.make
ack.doc
basic.doc
cg.doc

View file

@ -1,3 +1,3 @@
LLgen.n
LLgen.refs
Makefile
proto.make

12
doc/LLgen/proto.make Normal file
View file

@ -0,0 +1,12 @@
# $Header$
#PARAMS do not remove this line!
SRC_DIR = $(SRC_HOME)/doc/LLgen
EQN=eqn
REFER=refer
TBL=tbl
$(TARGET_HOME)/doc/LLgen.doc: $(SRC_DIR)/LLgen.n $(SRC_DIR)/LLgen.refs
$(REFER) -sA+T -p $(SRC_DIR)/LLgen.refs $(SRC_DIR)/LLgen.n | $(EQN) | $(TBL) > $@

View file

@ -1,14 +1,13 @@
# $Header$
SUF=pr
PRINT=cat
NROFF=nroff
TBL=tbl
EQN=eqn
PIC=pic
REFER=refer
# This Makefile is not supposed to be used in the doc source directory.
# Instead, it is supposed to be copied to the target doc directory.
SUF=dit
PRINT=dis
NROFF=troff
MS=-ms
TARGET=-Tlp
OPR=dip
RESFILES= \
toolkit.$(SUF) install.$(SUF) em.$(SUF) ack.$(SUF) v7bugs.$(SUF) \
@ -18,73 +17,52 @@ RESFILES= \
m68020.$(SUF) occam.$(SUF) m2ref.$(SUF) ceg.$(SUF) nopt.$(SUF) \
sparc.$(SUF) int.$(SUF) lint.$(SUF)
.SUFFIXES: .doc .$(SUF)
.SUFFIXES: .doc .$(SUF) .lpr
.doc.$(SUF):
$(NROFF) $(MS) $(TARGET) $< > $@
$(NROFF) $(MS) $< > $@
# directly to the printer:
.doc.lpr:
$(NROFF) $(MS) $< | $(OPR)
# Exceptions, to be run without -ms
crefman.$(SUF): crefman.doc
$(EQN) $(TARGET) crefman.doc | $(NROFF) $(MS) $(TARGET) >$@
ansi_C.$(SUF): ansi_C.doc
$(TBL) ansi_C.doc | $(NROFF) $(MS) $(TARGET) >$@
v7bugs.$(SUF): v7bugs.doc
$(NROFF) $(TARGET) v7bugs.doc >$@
install.$(SUF): install.doc
$(TBL) install.doc | $(NROFF) $(MS) $(TARGET) >$@
$(NROFF) v7bugs.doc >$@
v7bugs.lpr: v7bugs.doc
$(NROFF) v7bugs.doc | $(OPR)
pcref.$(SUF): pcref.doc
$(TBL) pcref.doc | $(NROFF) $(TARGET) >$@
$(NROFF) pcref.doc >$@
pcref.lpr: pcref.doc
$(NROFF) pcref.doc | $(OPR)
val.$(SUF): val.doc
$(NROFF) $(TARGET) val.doc >$@
6500.$(SUF): 6500.doc
$(TBL) 6500.doc | $(NROFF) $(MS) $(TARGET) >$@
m68020.$(SUF): m68020.doc
$(EQN) $(TARGET) m68020.doc | $(TBL) | $(NROFF) $(MS) $(TARGET) >$@
ncg.$(SUF): ncg.doc
$(TBL) ncg.doc | $(NROFF) $(MS) $(TARGET) >$@
LLgen.doc: LLgen.X
LLgen.X:
cd LLgen; make "EQN="$(EQN) "TBL="$(TBL) "REFER="$(REFER) "TARGET="$(TARGET)
lint.doc: lint.X
lint.X:
cd lint; make
top.doc: top.X
top.X:
cd top; make "EQN="$(EQN) "TBL="$(TBL) "REFER="$(REFER) "TARGET="$(TARGET)
occam.doc: occam.X
occam.X:
cd occam; make "PIC="$(PIC) "TBL="$(TBL) "EQN="$(EQN) "TARGET="$(TARGET)
sparc.doc: sparc.X
sparc.X:
cd sparc; make "PIC="$(PIC) "TBL="$(TBL) "TARGET="$(TARGET)
ego.doc: ego.X
ego.X:
cd ego; make "REFER="$(REFER) "TARGET="$(TARGET) "TBL="$(TBL)
em.$(SUF): em.X
em.X:
cd em; make "TBL="$(TBL) "NROFF="$(NROFF) "SUF="$(SUF) "TARGET="$(TARGET)
$(NROFF) val.doc >$@
int.doc: int.X
int.X:
cd int; make "TBL="$(TBL)
ceg.doc: ceg.X
ceg.X:
cd ceg; make "PIC="$(PIC) "TBL="$(TBL) "REFER="$(REFER) "TARGET="$(TARGET)
install cmp:
distr: install.doc
tbl install.doc | nroff -Tlpr $(MS) >install.pr
val.lpr: val.doc
$(NROFF) val.doc | $(OPR)
pr:
@make "SUF="$(SUF) "NROFF="$(NROFF) "EQN="$(EQN) "TBL="$(TBL) \
"PIC="$(PIC) "MS="$(MS) "TARGET="$(TARGET) \
@make "SUF="$(SUF) "NROFF="$(NROFF) "MS="$(MS) \
$(RESFILES) >make.pr.out 2>&1
@$(PRINT) $(RESFILES)
# The 'opr' entry creates a lot of paper ... but the user must be able
# to write the doc directory. I hope that this limits the users of
# this entry to persons that know what they are doing.
opr:
make pr | opr
@make "SUF="$(SUF) "NROFF="$(NROFF) "MS="$(MS) $(RESFILES)
$(OPR) $(RESFILES)
clean:
-rm -f *.old $(RESFILES) *.t *.out LLgen.doc top.doc \
occam.doc ego.doc int.doc ceg.doc lint.doc sparc.doc
-rm -f $(RESFILES)
# The distr entry is only used when making a distribution tree.
# It makes a version of the installation manual, suitable for a simple
# line printer.
distr: install.doc
tbl install.doc | nroff -Tlpr $(MS) >install.pr

View file

@ -1,3 +1,3 @@
Makefile
proto.make
ceg.ref
ceg.tr

12
doc/ceg/proto.make Normal file
View file

@ -0,0 +1,12 @@
# $Header$
#PARAMS do not remove this line!
SRC_DIR = $(SRC_HOME)/doc/ceg
PIC=pic
TBL=tbl
REFER=refer
$(TARGET_HOME)/doc/ceg.doc: $(SRC_DIR)/ceg.tr $(SRC_DIR)/ceg.ref
$(PIC) $(SRC_DIR)/ceg.tr | $(REFER) -e -p $(SRC_DIR)/ceg.ref | $(TBL) > $@

View file

@ -1,4 +1,4 @@
Makefile
proto.make
bo
ca
cf

64
doc/ego/proto.make Normal file
View file

@ -0,0 +1,64 @@
# $Header$
#PARAMS do not remove this line!
SRC_DIR = $(SRC_HOME)/doc/ego
REFS=-p $(SRC_DIR)/refs.opt -p $(SRC_DIR)/refs.stat -p $(SRC_DIR)/refs.gen
REFFILES = $(SRC_DIR)/refs.opt $(SRC_DIR)/refs.stat $(SRC_DIR)/refs.gen
INTRO=$(SRC_DIR)/intro/intro?
OV=$(SRC_DIR)/ov/ov?
IC=$(SRC_DIR)/ic/ic?
CF=$(SRC_DIR)/cf/cf?
IL=$(SRC_DIR)/il/il?
SR=$(SRC_DIR)/sr/sr?
CS=$(SRC_DIR)/cs/cs?
SP=$(SRC_DIR)/sp/sp?
UD=$(SRC_DIR)/ud/ud?
LV=$(SRC_DIR)/lv/lv?
CJ=$(SRC_DIR)/cj/cj?
BO=$(SRC_DIR)/bo/bo?
RA=$(SRC_DIR)/ra/ra?
CA=$(SRC_DIR)/ca/ca?
EGO=$(INTRO) $(OV) $(IC) $(CF) $(IL) $(SR) $(CS) $(SP) $(CJ) $(BO) \
$(UD) $(LV) $(RA) $(CA)
REFER=refer
TROFF=troff
TBL=tbl
TARGET=-Tlp
HEAD = $(SRC_DIR)/intro/head
TAIL = $(SRC_DIR)/intro/tail
$(TARGET_HOME)/doc/ego.doc: $(REFFILES) $(HEAD) $(TAIL) $(EGO)
$(REFER) -sA+T -l4,2 $(REFS) $(HEAD) $(EGO) $(TAIL) | $(TBL) > $(TARGET_HOME)/doc/ego.doc
ego.f: $(REFFILES) $(HEAD) $(TAIL) $(EGO)
$(REFER) -sA+T -l4,2 $(REFS) $(HEAD) $(EGO) $(TAIL) | $(TBL) | $(TROFF) $(TARGET) -ms > ego.f
intro.f: $(REFFILES) $(HEAD) $(TAIL) $(INTRO)
$(REFER) -sA+T -l4,2 $(REFS) $(HEAD) $(INTRO) $(TAIL) | $(TBL) | $(TROFF) $(TARGET) -ms > intro.f
ov.f: $(REFFILES) $(HEAD) $(TAIL) $(OV)
$(REFER) -sA+T -l4,2 $(REFS) $(HEAD) $(OV) $(TAIL) | $(TBL) | $(TROFF) $(TARGET) -ms > ov.f
ic.f: $(REFFILES) $(HEAD) $(TAIL) $(IC)
$(REFER) -sA+T -l4,2 $(REFS) $(HEAD) $(IC) $(TAIL) | $(TBL) | $(TROFF) $(TARGET) -ms > ic.f
cf.f: $(REFFILES) $(HEAD) $(TAIL) $(CF)
$(REFER) -sA+T -l4,2 $(REFS) $(HEAD) $(CF) $(TAIL) | $(TBL) | $(TROFF) $(TARGET) -ms > cf.f
il.f: $(REFFILES) $(HEAD) $(TAIL) $(IL)
$(REFER) -sA+T -l4,2 $(REFS) $(HEAD) $(IL) $(TAIL) | $(TBL) | $(TROFF) $(TARGET) -ms > il.f
sr.f: $(REFFILES) $(HEAD) $(TAIL) $(SR)
$(REFER) -sA+T -l4,2 $(REFS) $(HEAD) $(SR) $(TAIL) | $(TBL) | $(TROFF) $(TARGET) -ms > sr.f
cs.f: $(REFFILES) $(HEAD) $(TAIL) $(CS)
$(REFER) -sA+T -l4,2 $(REFS) $(HEAD) $(CS) $(TAIL) | $(TBL) | $(TROFF) $(TARGET) -ms > cs.f
sp.f: $(REFFILES) $(HEAD) $(TAIL) $(SP)
$(REFER) -sA+T -l4,2 $(REFS) $(HEAD) $(SP) $(TAIL) | $(TBL) | $(TROFF) $(TARGET) -ms > sp.f
cj.f: $(REFFILES) $(HEAD) $(TAIL) $(CJ)
$(REFER) -sA+T -l4,2 $(REFS) $(HEAD) $(CJ) $(TAIL) | $(TBL) | $(TROFF) $(TARGET) -ms > cj.f
bo.f: $(REFFILES) $(HEAD) $(TAIL) $(BO)
$(REFER) -sA+T -l4,2 $(REFS) $(HEAD) $(BO) $(TAIL) | $(TBL) | $(TROFF) $(TARGET) -ms > bo.f
ud.f: $(REFFILES) $(HEAD) $(TAIL) $(UD)
$(REFER) -sA+T -l4,2 $(REFS) $(HEAD) $(UD) $(TAIL) | $(TBL) | $(TROFF) $(TARGET) -ms > ud.f
lv.f: $(REFFILES) $(HEAD) $(TAIL) $(LV)
$(REFER) -sA+T -l4,2 $(REFS) $(HEAD) $(LV) $(TAIL) | $(TBL) | $(TROFF) $(TARGET) -ms > lv.f
ra.f: $(REFFILES) $(HEAD) $(TAIL) $(RA)
$(REFER) -sA+T -l4,2 $(REFS) $(HEAD) $(RA) $(TAIL) | $(TBL) | $(TROFF) $(TARGET) -ms > ra.f
ca.f: $(REFFILES) $(HEAD) $(TAIL) $(CA)
$(REFER) -sA+T -l4,2 $(REFS) $(HEAD) $(CA) $(TAIL) | $(TBL) | $(TROFF) $(TARGET) -ms > ca.f

View file

@ -1,4 +1,4 @@
Makefile
proto.make
READ_ME
em.p
emdmp.c

33
doc/em/int/proto.make Normal file
View file

@ -0,0 +1,33 @@
# $Header$
#PARAMS do not remove this line!
SRC_DIR = $(SRC_HOME)/doc/em/int
install \
all: em emdmp tables
tables: mktables $(SRC_HOME)/etc/ip_spec.t
mktables $(SRC_HOME)/etc/ip_spec.t tables
mktables: mktables.c $(TARGET_HOME)/h/em_spec.h \
$(TARGET_HOME)/h/em_flag.h \
$(TARGET_HOME)/lib.bin/em_data.$(LIBSUF) $(TARGET_HOME)/h/ip_spec.h
$(CC) -I$(TARGET_HOME)/h -O -o mktables mktables.c $(TARGET_HOME)/lib.bin/em_data.$(LIBSUF)
em: $(SRC_DIR)/em.p
apc -O $(SRC_DIR)/em.p >emerrs ; mv a.out em
nem.p: $(SRC_DIR)/em.p
sed -e '/maxadr = t16/s//maxadr =t15/' -e '/maxdata = 8191; /s//maxdata = 14335;/' -e '/ adr=.*long/s// adr= 0..maxadr/' <$(SRC_DIR)/em.p >nem.p
nem: nem.p
apc -O nem.p >emerrs ; mv a.out nem
emdmp: $(SRC_DIR)/emdmp.c
$(CC) -I$(TARGET_HOME)/h -I$(TARGET_HOME)/config -o emdmp -O $(SRC_DIR)/emdmp.c
cmp:
pr:
@pr $(SRC_DIR)/em.p $(SRC_DIR)/mktables.c $(SRC_DIR)/emdmp.c

48
doc/em/proto.make Normal file
View file

@ -0,0 +1,48 @@
# $Header$
#PARAMS do not remove this line!
TBL=tbl
TARGET_DIR = $(TARGET_HOME)/doc
head: $(TARGET_DIR)/em.doc
FILES = $(SRC_DIR)/macr.nr \
$(SRC_DIR)/title.nr \
$(SRC_DIR)/intro.nr \
$(SRC_DIR)/mem.nr \
$(SRC_DIR)/ispace.nr \
$(SRC_DIR)/dspace.nr \
$(SRC_DIR)/mapping.nr \
$(SRC_DIR)/types.nr \
$(SRC_DIR)/descr.nr \
$(SRC_DIR)/env.nr \
$(SRC_DIR)/traps.nr \
$(SRC_DIR)/mach.nr \
$(SRC_DIR)/assem.nr \
$(SRC_DIR)/em.i \
$(SRC_DIR)/app.codes.nr \
$(SRC_DIR)/app.exam.nr \
$(SRC_DIR)/cont.nr
IOP=$(SRC_HOME)/etc/ip_spec.t# # to construct itables from
$(TARGET_DIR)/em.doc: $(FILES) itables dispatdummy
$(TBL) $(FILES) > $(TARGET_DIR)/em.doc
itables: $(IOP) $(SRC_DIR)/ip.awk
awk -f $(SRC_DIR)/ip.awk $(IOP) | sed 's/-/\\-/g' | $(TBL) >itables
dispatdummy: $(IOP) mkdispatch
mkdispatch < $(IOP) > dispatdummy
sed -f $(SRC_DIR)/dispat1.sed < dispatdummy | $(TBL) > dispat1
sed -f $(SRC_DIR)/dispat2.sed < dispatdummy | $(TBL) > dispat2
sed -f $(SRC_DIR)/dispat3.sed < dispatdummy | $(TBL) > dispat3
mkdispatch: $(SRC_DIR)/mkdispatch.c
$(UCC) -c -I$(UTIL_HOME)/h $(SRC_DIR)/mkdispatch.c
$(UCC) $(ULDOPTIONS) -o mkdispatch mkdispatch.$(USUF) $(UTIL_HOME)/lib.bin/em_data.$(ULIBSUF)
clean:
rm -f itables dispatdummy dispat? *.o mkdispatch Out

View file

@ -154,10 +154,7 @@ include files for some of the modules.
.IP "doc"
this directory contains the unformatted documents for the Kit.
A list of the available documents can be found in the last section.
.IP "doc/em"
the EM-manual IR-81.
.IP "doc/em/int"
the EM interpreter written in Pascal.
These documents must be processed by [nt]roff.
.IP "man"
man files for various utilities.
.if n .nr PD 1v
@ -196,13 +193,6 @@ the main description of EM sits here.
Files (e.g. em_table) describing
the opcodes and pseudos in use,
the operands allowed, effect in stack etc. etc.
.IP "mkun"
the PUBMAC macro package for nroff/troff from the Katholieke Universiteit at
Nijmegen.
It is used for the EM reference manual.
The Makefile installs the macro package in
/usr/lib/tmac.
This package is in the public domain.
.IP "mach"
just there to group the directories with all sources for each machine.
The section about "Machines" of this manual indicates which subdirectories
@ -580,20 +570,6 @@ Asking for things that don't have to be installed.
.IP \-
Producing a shell script called "INSTALL" that will take care of the
ACK installation process.
.if n .sp 1
.if n .nr PD 1v
.LP
Some actions still have to be done by hand:
.if n .sp 1
.if n .nr PD 0
.IP \-
The installation of the PUBMAC macro package is not done
automatically because super-user privileges are needed to do
that on most systems.
This macro package is used with several of the documents
provided in the Kit.
.if n .sp 1
.if n .nr PD 0
.NH
Compiling the Kit
.PP
@ -1209,42 +1185,40 @@ An example of the output of a make is present in the file Out.std.
Documentation
.PP
After installationm manual pages for Amsterdam Compiler Kit can be found
in the $TARGET_HOME/man directory.
.LP
Several documents are provided:
in the $TARGET_HOME/man directory. Also, the following documents are provided
in the $TARGET_HOME/doc directory:
.TS
l l.
doc/toolkit.doc general overview (CACM article)
doc/em description of the EM machine architecture
doc/ack.doc format of machine description files (lib/*/descr)
doc/ansi_C.doc ANSI C implementation description
doc/basic.doc Basic reference manual
doc/pcref.doc Pascal-frontend reference manual
doc/val.doc results of running the Pascal Validation Suite
doc/crefman.doc C-frontend description
doc/LLgen description of the LL(1) parser generator
doc/peep.doc internal documentation for the peephole optimizer
doc/cg.doc documentation for backend writers and maintainers
doc/regadd.doc addendum to previous document describing register variables
doc/ncg.doc documentation for the newest backends
doc/v7bugs.doc bugs in the V7 system and how to fix them
doc/6500.doc MSC 6500 backend description
doc/i80.doc Intel 8080 backend description
doc/z80.doc Zilog Z80 backend description
doc/m68020.doc Motorola M68000/M68020 backend description
doc/sparc SPARC code expander description
doc/occam occam-frontend description
doc/ego Global Optimizer description
doc/top Target Optimizer description
doc/int description of the EM interpreter written in C
doc/ceg documentation for code-expander writers and maintainers
doc/lint documentation of LINT
doc/m2ref.doc Modula-2 frontend description
doc/install.doc this document
doc/install.pr this document (formatted)
toolkit.doc general overview (CACM article)
em.doc description of the EM machine architecture
ack.doc format of machine description files (lib/*/descr)
ansi_C.doc ANSI C implementation description
basic.doc Basic reference manual
pcref.doc Pascal-frontend reference manual
val.doc results of running the Pascal Validation Suite
crefman.doc C-frontend description
LLgen description of the LL(1) parser generator
peep.doc internal documentation for the peephole optimizer
cg.doc documentation for backend writers and maintainers
regadd.doc addendum to previous document describing register variables
ncg.doc documentation for the newest backends
v7bugs.doc bugs in the V7 system and how to fix them
6500.doc MSC 6500 backend description
i80.doc Intel 8080 backend description
z80.doc Zilog Z80 backend description
m68020.doc Motorola M68000/M68020 backend description
sparc.doc SPARC code expander description
occam.doc occam-frontend description
ego.doc Global Optimizer description
top.doc Target Optimizer description
int.doc description of the EM interpreter written in C
ceg.doc documentation for code-expander writers and maintainers
lint.doc documentation of LINT
m2ref.doc Modula-2 frontend description
install.doc this document
install.pr this document (formatted for a simple line printer)
.TE
.LP
The names in this list without a suffix are in fact a subdirectory.
Use the Makefile to get readable copies.
.LP
Good luck.

View file

@ -1,4 +1,4 @@
Makefile
proto.make
abstract
appendix_A
appendix_B

View file

@ -11,5 +11,5 @@ note_on_reg_wins
refs
timing
title
Makefile
proto.make
pics

View file

@ -1,4 +1,4 @@
.so init
.In
.NH
INTRODUCTION
.NH 2

View file

@ -1,4 +1,4 @@
.so init
.In
.nr H1 1
.NH
CLOSE-UP LOOK

View file

@ -1,4 +1,4 @@
.so init
.In
.nr H1 2
.NH
PROBLEMS

View file

@ -1,4 +1,4 @@
.so init
.In
.hw data-structures
.nr H1 3
.NH

View file

@ -1,4 +1,4 @@
.so init
.In
.nr H1 4
.NH
FUTURE WORK

View file

@ -1,4 +1,4 @@
.so init
.In
.SH
A. MEASUREMENTS
.SH

View file

@ -1,4 +1,4 @@
.so init
.In
.SH
B. IMPLEMENTATION
.SH

View file

@ -1,3 +1,4 @@
.de In
.nr PS 12
.nr VS 14
.\" .fp 6 AM
@ -6,6 +7,7 @@
.ds So \f1\s+1
.ds OQ `\h'-1p'`
.ds CQ '\h'-1p''
..
.de UX
.ie \\n(UX \s-1UNIX\s0\\$1
.el \{\

View file

@ -1,4 +1,4 @@
.so init
.In
.hw de-vised
.TL
A fast backend for SPARC processors

32
doc/sparc/proto.make Normal file
View file

@ -0,0 +1,32 @@
# $Header$
#PARAMS do not remove this line!
SRC_DIR = $(SRC_HOME)/doc/sparc
TARGET = $(TARGET_HOME)/doc/sparc.doc
REFER=refer
TBL=tbl
PIC=pic
GRAP=grap
SRC = $(SRC_DIR)/init \
$(SRC_DIR)/refs \
$(SRC_DIR)/title \
$(SRC_DIR)/intro \
$(SRC_DIR)/1 \
$(SRC_DIR)/2 \
$(SRC_DIR)/3 \
4 \
$(SRC_DIR)/5 \
A \
$(SRC_DIR)/B
$(TARGET)/sparc.doc: $(SRC)
$(REFER) -sA+T '-l\", ' -p $(SRC) | $(GRAP) | $(PIC) | $(TBL) > $@
4: $(SRC_DIR)/4
sed 's^pics/^$(SRC_DIR)/pics/^' < $(SRC_DIR)/4 > 4
A: $(SRC_DIR)/A
sed 's^pics/^$(SRC_DIR)/pics/^' < $(SRC_DIR)/A > A

View file

@ -1,4 +1,4 @@
.so init
.In
.TL
.sp 1.2c
A fast backend for SPARC processors

View file

@ -1,3 +1,3 @@
Makefile
proto.make
refs.top
top.n

11
doc/top/proto.make Normal file
View file

@ -0,0 +1,11 @@
# $Header$
#PARAMS do not remove this line!
REFER=refer
TBL=tbl
SRC_DIR = $(SRC_HOME)/doc/top
$(TARGET_HOME)/doc/top.doc: $(SRC_DIR)/top.n $(SRC_DIR)/refs.top
$(REFER) -sA+T -l4,2 -p $(SRC_DIR)/refs.top $(SRC_DIR)/top.n | $(TBL) > $@