|
|
1.1 root 1: #
2: # Makefile 1.13 86/03/11
3: #
4: # Makefile for PCC
5: #
6: # These symbols are used to configure the compiler:
7: # ASSTRINGS assembler handles string initializations
8: # STABDOT assembler understands .stabd
9: # LCOMM assembler supports .lcomm
10: # FIXSTRUCT no trickery (just output structure)
11: #
12: # Some symbols are specific to certain compilers:
13: # ONEPASS compile pass 1 and pass 2 together
14: # SPRECC do single precision in single not double
15: # FORT get f77-style pass 2
16: #
17: CONFIG= -DASSTRINGS -DSTABDOT -DLCOMM "-DFIXSTRUCT=outstruct"
18: O = -O
19: CFLAGS = $(O) -I. -I$(M) $(CONFIG)
20:
21: COPTS = -DONEPASS $(CFLAGS)
22: SCOPTS = -DONEPASS -DSPRECC $(CFLAGS)
23: FOPTS = -DFORT $(CFLAGS)
24: LDFLAGS =
25:
26: RM= /bin/rm -f
27: LN= /bin/ln -s
28:
29: SFILES= strees.c slocal.c slocal2.c sallo.c sorder.c stable.c
30: SOBJS= strees.o slocal.o slocal2.o sallo.o sorder.o stable.o
31: FFILES= freader.c fallo.c fmatch.c ftable.c forder.c flocal2.c fcomm2.c
32: FOBJS= freader.o fallo.o fmatch.o ftable.o forder.o flocal2.o fcomm2.o
33:
34: P1INCS= $M/pass1.h macdefs.h $M/manifest.h pcclocal.h $M/config.h $M/ndu.h \
35: /usr/include/stdio.h
36: P1ONEP= $(P1INCS) $M/onepass.h
37: P2INCS= $M/pass2.h macdefs.h mac2defs.h $M/manifest.h pcclocal.h $M/config.h \
38: $M/ndu.h /usr/include/stdio.h
39: P2ONEP= $(P2INCS) $M/onepass.h
40:
41: M=../mip
42: TESTDIR = .
43:
44: all: ccom sccom f1
45:
46: #
47: # 'ccom' is a one-pass C compiler.
48: #
49: ccom: rodata.o cgram.o xdefs.o scan.o pftn.o trees.o optim.o code.o local.o \
50: reader.o local2.o order.o match.o allo.o comm1.o table.o stab.o
51: $(CC) $(LDFLAGS) rodata.o cgram.o xdefs.o scan.o pftn.o trees.o \
52: optim.o code.o local.o reader.o local2.o order.o match.o \
53: allo.o comm1.o table.o stab.o -o $(TESTDIR)/ccom
54: trees.o: $(P1ONEP) $M/trees.c
55: $(CC) -c $(COPTS) $M/trees.c
56: optim.o: $(P1ONEP) $M/optim.c
57: $(CC) -c $(COPTS) $M/optim.c
58: pftn.o: $(P1ONEP) $M/pftn.c
59: $(CC) -c $(COPTS) $M/pftn.c
60: code.o: $(P1ONEP) code.c
61: $(CC) -c $(COPTS) code.c
62: local.o: $(P1ONEP) local.c
63: $(CC) -c $(COPTS) local.c
64: scan.o: $(P1ONEP) $M/scan.c
65: $(CC) -c $(COPTS) $M/scan.c
66: xdefs.o: $(P1ONEP) $M/xdefs.c
67: $(CC) -c $(COPTS) $M/xdefs.c
68: cgram.o: $(P1ONEP) cgram.c
69: $(CC) -c $(COPTS) cgram.c
70: rodata.o: rodata.c
71: $(CC) -c $(COPTS) -R rodata.c
72: rodata.c cgram.c: $M/cgram.y pcctokens
73: cat pcctokens $M/cgram.y > gram.in
74: $(YACC) gram.in
75: $(RM) rodata.c
76: sh ./:yyfix yyexca yyact yypact yypgo yyr1 yyr2 yychk yydef
77: mv y.tab.c cgram.c
78: comm1.o: $(P1ONEP) $M/common.c
79: $(LN) $M/common.c comm1.c
80: $(CC) -c $(COPTS) -DPASS1COMMON comm1.c
81: $(RM) comm1.c
82: stab.o: $(P1ONEP) stab.c \
83: /usr/include/stab.h /usr/include/a.out.h /usr/include/sys/types.h
84: $(CC) -c $(COPTS) stab.c
85: table.o: $(P2ONEP) table.c
86: $(CC) -c $(COPTS) -R table.c
87: reader.o: $(P2ONEP) $M/reader.c
88: $(CC) -c $(COPTS) $M/reader.c
89: local2.o: $(P2ONEP) local2.c
90: $(CC) -c $(COPTS) local2.c
91: order.o: $(P2ONEP) order.c
92: $(CC) -c $(COPTS) order.c
93: match.o: $(P2ONEP) $M/match.c
94: $(CC) -c $(COPTS) $M/match.c
95: allo.o: $(P2ONEP) $M/allo.c
96: $(CC) -c $(COPTS) $M/allo.c
97:
98: #
99: # 'sccom' is a C compiler that does single precision computations in
100: # single precision rather than double precision.
101: #
102: sccom: rodata.o cgram.o xdefs.o scan.o pftn.o strees.o optim.o code.o slocal.o \
103: reader.o slocal2.o sorder.o match.o sallo.o comm1.o stable.o stab.o
104: $(CC) $(LDFLAGS) rodata.o cgram.o xdefs.o scan.o pftn.o strees.o \
105: optim.o code.o slocal.o reader.o slocal2.o sorder.o match.o \
106: sallo.o comm1.o stable.o stab.o -o $(TESTDIR)/sccom
107: strees.o: $(P1ONEP) $M/trees.c
108: $(LN) $M/trees.c strees.c
109: $(CC) -c $(SCOPTS) strees.c
110: $(RM) strees.c
111: slocal.o: $(P1ONEP) local.c
112: $(LN) local.c slocal.c
113: $(CC) -c $(SCOPTS) slocal.c
114: $(RM) slocal.c
115: slocal2.o: $(P2ONEP) local2.c
116: $(LN) local2.c slocal2.c
117: $(CC) -c $(SCOPTS) slocal2.c
118: $(RM) slocal2.c
119: sallo.o: $(P2ONEP) $M/allo.c
120: $(LN) $M/allo.c sallo.c
121: $(CC) -c $(SCOPTS) sallo.c
122: $(RM) sallo.c
123: sorder.o: $(P2ONEP) order.c
124: $(LN) order.c sorder.c
125: $(CC) -c $(SCOPTS) sorder.c
126: $(RM) sorder.c
127: stable.o: $(P2ONEP) table.c
128: $(LN) table.c stable.c
129: $(CC) -c $(SCOPTS) -R stable.c
130: $(RM) stable.c
131:
132: #
133: # 'f1' is the f77 and pc code generator.
134: #
135: f1: fort.o freader.o fallo.o fmatch.o ftable.o forder.o flocal2.o \
136: fcomm2.o
137: $(CC) $(LDFLAGS) fort.o freader.o fallo.o fmatch.o ftable.o \
138: forder.o flocal2.o fcomm2.o -o $(TESTDIR)/f1
139: fort.o: $(P2INCS) fort.h $M/fort.c
140: $(CC) -c $(FOPTS) $M/fort.c
141: freader.o: $(P2INCS) $M/reader.c
142: $(LN) $M/reader.c freader.c
143: $(CC) -c $(FOPTS) freader.c
144: $(RM) freader.c
145: fallo.o: $(P2INCS) $M/allo.c
146: $(LN) $M/allo.c fallo.c
147: $(CC) -c $(FOPTS) fallo.c
148: $(RM) fallo.c
149: fmatch.o: $(P2INCS) $M/match.c
150: $(LN) $M/match.c fmatch.c
151: $(CC) -c $(FOPTS) fmatch.c
152: $(RM) fmatch.c
153: ftable.o: $(P2INCS) table.c
154: $(LN) table.c ftable.c
155: $(CC) -c -R $(FOPTS) ftable.c
156: $(RM) ftable.c
157: forder.o: $(P2INCS) order.c
158: $(LN) order.c forder.c
159: $(CC) -c $(FOPTS) forder.c
160: $(RM) forder.c
161: flocal2.o: $(P2INCS) local2.c
162: $(LN) local2.c flocal2.c
163: $(CC) -c $(FOPTS) flocal2.c
164: $(RM) flocal2.c
165: fcomm2.o: $(P2INCS) $M/common.c
166: $(LN) $M/common.c fcomm2.c
167: $(CC) -c $(FOPTS) -DPASS2COMMON fcomm2.c
168: $(RM) fcomm2.c
169:
170: install: all
171: install -s ${TESTDIR}/ccom ${DESTDIR}/lib/ccom
172: install -s ${TESTDIR}/sccom ${DESTDIR}/lib/sccom
173: install -s ${TESTDIR}/f1 ${DESTDIR}/lib/f1
174:
175: GREP= egrep
176:
177: pcclocal.h: localdefs.h /usr/include/pcc.h
178: $(RM) pcclocal.h
179: cat /usr/include/pcc.h localdefs.h | $(GREP) '^#[ ]*(define[ ][ ]*PCC(F|T|TM|OM)?_|ifdef|ifndef|endif)' | sed -e 's/PCC[A-Z]*_//' > pcclocal.h
180:
181: pcctokens: localdefs.h /usr/include/pcc.h
182: $(RM) pcctokens
183: cat /usr/include/pcc.h localdefs.h | $(GREP) '^#[ ]*define[ ][ ]*PCC_' | sed -e 's/^#[ ]*define[ ][ ]*PCC_/%term /' > pcctokens
184:
185: DUMMIES= $(SFILES) $(FFILES)
186:
187: shrink:
188: $(RM) *.o ccom sccom f1 $(DUMMIES)
189: clean:
190: $(RM) *.o ccom sccom f1 cgram.c rodata.c pcctokens pcclocal.h gram.in $(DUMMIES)
191: sfix:
192: $(RM) $(SFILES)
193: sclean:
194: $(RM) $(SOBJS) $(SFILES)
195: ffix:
196: $(RM) $(FFILES)
197: fclean:
198: $(RM) $(FOBJS) $(FFILES)
199:
200: lintall:
201: lint -hax -I. -I$M cgram.c $M/xdefs.c $M/scan.c $M/pftn.c \
202: $M/trees.c $M/optim.c code.c local.c stab.c $M/reader.c \
203: local2.c order.c $M/match.c $M/allo.c $M/comm1.c table.c
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.