|
|
1.1 root 1: # Copyright (c) 1982 Regents of the University of California.
2: # All rights reserved. The Berkeley software License Agreement
3: # specifies the terms and conditions for redistribution.
4: #
5: # @(#)Makefile 1.19 (Berkeley) 10/26/87
6: #
7: # make file for pdx
8: #
9: # For best results edit this file in vi with tabstop=4.
10: #
11: # The file "defs.h" is included by all, it has most of the type
12: # declarations (since you can't have forward type references in C).
13: # It also defines various things of general use and includes <stdio.h>.
14: #
15: # The file "library.c" contains routines which are generally useful
16: # and are independent from pdx.
17: #
18: # N.B.: My version of cerror in "cerror.s" automatically catches certain errors
19: # such as out of memory, I/O error. If you re-make pdx with
20: # the standard cerror, the program could fault unexpectedly.
21: #
22: # Also, this makefile contains almost NO HEADER DEPENDENCIES. So
23: # if you modify a header file in a non-trivial way, you need
24: # to touch the C files that include it.
25: #
26:
27: DESTDIR =
28: HOME = /usr/src/ucb/pdx
29: LIB = library.o cerror.o
30: SRCDIR = ../src/
31: INSTALL = ${DESTDIR}/usr/ucb/pdx
32:
33: RM = /bin/rm -f
34: CFLAGS = -I.. -I../${SRCDIR} -DOBJ -DADDR32 -O
35: LINTFLAGS= -I. -I${SRCDIR} -DOBJ -DADDR32
36: LDFLAGS = # -i for pdp-11
37:
38: .c.o:
39: @echo "compiling $*.c"
40: @csh -f -c ' \
41: set a=$*.c; \
42: if ($$a:h != $$a) cd $$a:h; \
43: ${CC} ${CFLAGS} -c $$a:t \
44: '
45:
46: #
47: # source directory specifications
48: #
49:
50: MAIN = main/
51: SYMTAB = symtab/
52: SOURCE = source/
53: COMMAND = command/
54: TREE = tree/
55: SYM = sym/
56: BREAKPOINT = breakpoint/
57: RUNTIME = runtime/
58: OBJECT = object/
59: MAPPINGS = mappings/
60: PROCESS = process/
61: MACHINE = machine/
62:
63: BPOBJ =\
64: ${BREAKPOINT}bp.o\
65: ${BREAKPOINT}bpact.o\
66: ${BREAKPOINT}fixbps.o\
67: ${BREAKPOINT}status.o\
68: ${BREAKPOINT}printnews.o\
69: ${BREAKPOINT}setbps.o\
70: ${BREAKPOINT}trinfo.o\
71: ${BREAKPOINT}trcond.o
72:
73: OBJOBJ =\
74: ${OBJECT}readobj.o\
75: ${OBJECT}readsym.o\
76: ${OBJECT}maketypes.o
77:
78: MAPOBJ =\
79: ${MAPPINGS}functab.o\
80: ${MAPPINGS}objaddr.o\
81: ${MAPPINGS}srcfile.o\
82: ${MAPPINGS}srcline.o
83:
84: CMDOBJ =\
85: ${COMMAND}y.tab.o\
86: ${COMMAND}lex.yy.o\
87: ${COMMAND}remake.o
88:
89: RUNTIMEOBJ =\
90: ${RUNTIME}frame.o\
91: ${RUNTIME}wheredump.o\
92: ${RUNTIME}isactive.o\
93: ${RUNTIME}address.o\
94: ${RUNTIME}callproc.o\
95: ${RUNTIME}entry.o
96:
97: MACHOBJ =\
98: ${MACHINE}nextaddr.o\
99: ${MACHINE}setbp.o\
100: ${MACHINE}optab.o\
101: ${MACHINE}printdata.o\
102: ${MACHINE}printerror.o\
103: ${MACHINE}printinst.o
104:
105: PROCOBJ =\
106: ${PROCESS}runcont.o\
107: ${PROCESS}pstatus.o\
108: ${PROCESS}rdwr.o\
109: ${PROCESS}resume.o\
110: ${PROCESS}start.o\
111: ${PROCESS}step.o\
112: ${PROCESS}ptrace.o
113:
114: SYMOBJ =\
115: ${SYM}predicates.o\
116: ${SYM}attributes.o\
117: ${SYM}printdecl.o\
118: ${SYM}which.o\
119: ${SYM}print.o\
120: ${SYM}printval.o\
121: ${SYM}tree.o
122:
123: TREEOBJ =\
124: ${TREE}build.o\
125: ${TREE}eval.o\
126: ${TREE}opinfo.o\
127: ${TREE}prtree.o\
128: ${TREE}tfree.o\
129: ${TREE}tr_equal.o\
130: ${TREE}tracestop.o\
131: ${TREE}misc.o\
132: ${TREE}assign.o
133:
134: OBJS =\
135: ${MAIN}main.o\
136: ${SYMTAB}symtab.o\
137: ${SOURCE}source.o\
138: ${CMDOBJ}\
139: ${TREEOBJ}\
140: ${SYMOBJ}\
141: ${BPOBJ}\
142: ${RUNTIMEOBJ}\
143: ${OBJOBJ}\
144: ${MAPOBJ}\
145: ${PROCOBJ}\
146: ${MACHOBJ}
147:
148: a.out: ${OBJS} ${LIB}
149: @echo "linking"
150: @cc ${LDFLAGS} ${OBJS} ${LIB}
151:
152: profile: ${OBJS}
153: @echo "linking with -p"
154: @cc ${LDFLAGS} -p ${OBJS} ${LIB}
155:
156: lint:
157: @cd ${COMMAND}; yacc -d grammar.yacc; lex token.lex
158: -@lint ${LINTFLAGS} `echo ${OBJS} library.c | sed 's/\.o/.c/g'`
159: @${RM} ${COMMAND}lex.yy.c ${COMMAND}y.tab.c
160:
161: cerror.o:
162: @echo "assembling `machine`/$*.s"
163: @cc -c `machine`/$*.s
164:
165: ${COMMAND}y.tab.o: ${COMMAND}grammar.yacc
166: cd ${COMMAND}; yacc -d grammar.yacc; cc -c ${CFLAGS} y.tab.c
167: ${RM} ${COMMAND}y.tab.c
168:
169: ${COMMAND}lex.yy.o: ${COMMAND}token.lex ${COMMAND}y.tab.h
170: cd ${COMMAND}; lex token.lex; cc -c ${CFLAGS} lex.yy.c
171: ${RM} ${COMMAND}lex.yy.c
172:
173: ${BPOBJ}: ${BREAKPOINT}bp.rep
174: ${RUNTIMEOBJ}: ${RUNTIME}frame.rep
175: ${PROCOBJ}: ${PROCESS}process.rep
176: ${SYMOBJ}: ${SYM}sym.rep
177: ${TREEOBJ}: ${TREE}tree.rep
178: ${OBJOBJ}: ${OBJECT}objsym.rep
179: ${OBJECT}readobj.o ${OBJECT}readsym.o: ${SRCDIR}objfmt.h
180:
181: install: a.out
182: install -s a.out ${INSTALL}
183:
184: clean:
185: ${RM} a.out *.o */*.o
186:
187: depend:
188:
189: #
190: # Warning: This will produce a very long listing. You would be better
191: # off just looking at things on-line.
192: #
193:
194: print:
195: pr *.h [a-z]*/*.{h,rep,yacc,lex,c}
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.