|
|
1.1 root 1: #
2: # Copyright (c) 1983 The Regents of the University of California.
3: # All rights reserved.
4: #
5: # Redistribution and use in source and binary forms are permitted
6: # provided that the above copyright notice and this paragraph are
7: # duplicated in all such forms and that any documentation,
8: # advertising materials, and other materials related to such
9: # distribution and use acknowledge that the software was developed
10: # by the University of California, Berkeley. The name of the
11: # University may not be used to endorse or promote products derived
12: # from this software without specific prior written permission.
13: # THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
14: # IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
15: # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
16: #
17: # @(#)Makefile 5.18 (Berkeley) 6/29/90
18: #
19:
20: # The file "defs.h" is included by all.
21:
22: .SUFFIXES:
23: .SUFFIXES: .h .c .s .o .1 .0
24:
25: AOUT = tdbx
26: DESTDIR =
27: DEST = /usr/bin/dbx
28:
29: CC = cc
30: AS = as
31: #
32: # if you want gripes
33: # CFLAGS = -g '-DMAINTAINER="[email protected]"'
34: #
35: CFLAGS = -O # -g
36:
37: LD = cc
38: LDFLAGS = # -g
39: LIBRARIES = # -lPW for IRIS (System V)
40:
41: OBJ = \
42: y.tab.o \
43: asm.o \
44: events.o \
45: c.o \
46: cerror.o \
47: check.o \
48: coredump.o \
49: debug.o \
50: eval.o \
51: fortran.o \
52: keywords.o \
53: languages.o \
54: library.o \
55: lists.o \
56: machine.o \
57: main.o \
58: mappings.o \
59: modula-2.o \
60: names.o \
61: object.o \
62: operators.o \
63: pascal.o \
64: printsym.o \
65: process.o \
66: runtime.o \
67: scanner.o \
68: source.o \
69: stabstring.o \
70: symbols.o \
71: tree.o \
72: ops.o
73:
74: HDR = \
75: asm.h \
76: events.h \
77: c.h \
78: check.h \
79: coredump.h \
80: debug.h \
81: eval.h \
82: fortran.h \
83: keywords.h \
84: languages.h \
85: lists.h \
86: machine.h \
87: main.h \
88: mappings.h \
89: modula-2.h \
90: names.h \
91: object.h \
92: operators.h \
93: pascal.h \
94: printsym.h \
95: process.h \
96: runtime.h \
97: scanner.h \
98: source.h \
99: stabstring.h \
100: symbols.h \
101: tree.h \
102: ops.h
103:
104: SRC = \
105: defs.h \
106: commands.y \
107: asm.c \
108: events.c \
109: c.c \
110: cerror.${MACHINE}.s \
111: check.c \
112: coredump.c \
113: debug.c \
114: eval.c \
115: fortran.c \
116: keywords.c \
117: languages.c \
118: library.c \
119: lists.c \
120: main.c \
121: mappings.c \
122: modula-2.c \
123: names.c \
124: object.c \
125: operators.c \
126: pascal.c \
127: printsym.c \
128: process.c \
129: scanner.c \
130: source.c \
131: stabstring.c \
132: symbols.c \
133: tree.c \
134: ${MACHINE}.c \
135: runtime.${MACHINE}.c \
136: ops.${MACHINE}.c
137:
138: .c.o:
139: @echo "compiling $*.c"
140: @${CC} ${CFLAGS} -c $*.c
141:
142: .s.o:
143: @echo "assembling $*.s"
144: @rm -f tmp
145: @cpp $*.s | egrep -v "^#" > tmp
146: @${AS} -o $*.o tmp
147: @rm -f tmp
148:
149: .c.h:
150: ./makedefs -f $*.c $*.h
151:
152: all ${AOUT}: makedefs mkdate ${HDR} ${OBJ}
153: @rm -f date.c
154: @./mkdate > date.c
155: @echo "linking"
156: @${CC} ${CFLAGS} -c date.c
157: @${LD} ${LDFLAGS} date.o ${OBJ} ${LIBRARIES} -o ${AOUT}
158:
159: profile: ${HDR} ${OBJ}
160: @rm -f date.c
161: @./mkdate > date.c
162: @echo "linking with -p"
163: @${CC} ${LDFLAGS} -p date.c ${OBJ} ${LIBRARIES} -o ${AOUT}
164:
165: y.tab.c: commands.y
166: @echo "expect 2 shift/reduce conflicts"
167: yacc -d commands.y
168:
169: cerror.s: cerror.${MACHINE}.s
170: @rm -f cerror.s
171: @ln -s cerror.${MACHINE}.s cerror.s
172:
173: machine.c: ${MACHINE}.c
174: @rm -f machine.c
175: @ln -s ${MACHINE}.c machine.c
176:
177: ops.c: ops.${MACHINE}.c
178: @rm -f ops.c
179: @ln -s ops.${MACHINE}.c ops.c
180:
181: runtime.c: runtime.${MACHINE}.c
182: @rm -f runtime.c
183: @ln -s runtime.${MACHINE}.c runtime.c
184:
185: makedefs: makedefs.c library.o cerror.o
186: ${CC} -g makedefs.c library.o cerror.o -o makedefs
187:
188: mkdate: mkdate.c
189: ${CC} -g ${CFLAGS} mkdate.c -o mkdate
190:
191: dbx.0: dbx.1
192: nroff -mandoc dbx.1 > dbx.0
193:
194: print:
195: @echo "don't print it, it's too long"
196:
197: depend:
198:
199: #
200: # Don't worry about the removal of header files, they're created from
201: # the source files.
202: #
203:
204: clean:
205: rm -f ${HDR} ${OBJ} y.tab.c y.tab.h ${AOUT} mkdate mkdate.o \
206: makedefs makedefs.o date.c core mon.out prof.out make.out \
207: cerror.s ops.c machine.c runtime.c date.o
208: @chdir tests; make clean
209:
210: cleandir: clean
211: rm -f dbx.0 tags .depend
212:
213: cleandefs:
214: rm -f ${HDR} y.tab.h
215:
216: testinstall: ${AOUT} test install
217:
218: test:
219: @cd tests; make
220:
221: install: ${AOUT} dbx.0
222: install -s -o bin -g bin -m 755 ${AOUT} ${DESTDIR}${DEST}
223: install -c -o bin -g bin -m 444 dbx.0 ${DESTDIR}/usr/share/man/cat1
224:
225: #
226: # Create a tar file called "tape" containing relevant files.
227: #
228:
229: TAPE = f tape
230:
231: tape:
232: @tar c${TAPE} Makefile History READ_ME ${SRC} \
233: makedefs.c mkdate.c tests pc0mods dbx.1 newdbx.1 dbxstab.5
234:
235: #
236: # without tests subdirectory
237: #
238: srconlytape:
239: @tar c${TAPE} Makefile History READ_ME ${SRC} \
240: makedefs.c mkdate.c dbx.1 newdbx.1 dbxstab.5
241:
242: #
243: # Header dependencies are purposely incomplete since header files
244: # are "written" every time the accompanying source file changes even if
245: # the resulting contents of the header don't change. The alternative is
246: # to force a "makedefs" to be invoked for every header file each time dbx
247: # is made.
248: #
249: # Also, there should be a dependency of scanner.o and keywords.o on y.tab.h
250: # but misfortunately silly make does a "makedefs y.tab.c y.tab.h" which
251: # destroys y.tab.h.
252: #
253:
254: symbols.o tree.o check.o eval.o events.o: operators.h
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.