xref: /original-bsd/old/dbx/Makefile (revision 28301386)
1#
2# Copyright (c) 1983 Regents of the University of California.
3# All rights reserved.  The Berkeley software License Agreement
4# specifies the terms and conditions for redistribution.
5#
6#	@(#)Makefile	5.12 (Berkeley) 06/10/88
7#
8# make file for debugger "dbx"
9#
10# The file "defs.h" is included by all.
11#
12
13.SUFFIXES:
14.SUFFIXES: .h .c .s .o
15
16AOUT	= tdbx
17DESTDIR	=
18DEST	= /usr/ucb/dbx
19
20CC	= cc
21AS	= as
22#
23# if you want gripes
24# CFLAGS = -g '-DMAINTAINER="linton@shasta.stanford.edu"'
25#
26CFLAGS	= -O # -g
27
28LD = cc
29LDFLAGS	= # -g
30LIBRARIES = # -lPW for IRIS (System V)
31
32OBJ = \
33    y.tab.o \
34    asm.o \
35    events.o \
36    c.o \
37    cerror.o \
38    check.o \
39    coredump.o \
40    debug.o \
41    eval.o \
42    fortran.o \
43    keywords.o \
44    languages.o \
45    library.o \
46    lists.o \
47    machine.o \
48    main.o \
49    mappings.o \
50    modula-2.o \
51    names.o \
52    object.o \
53    operators.o \
54    pascal.o \
55    printsym.o \
56    process.o \
57    runtime.o \
58    scanner.o \
59    source.o \
60    stabstring.o \
61    symbols.o \
62    tree.o \
63    ops.o
64
65HDR = \
66    asm.h \
67    events.h \
68    c.h \
69    check.h \
70    coredump.h \
71    debug.h \
72    eval.h \
73    fortran.h \
74    keywords.h \
75    languages.h \
76    lists.h \
77    machine.h \
78    main.h \
79    mappings.h \
80    modula-2.h \
81    names.h \
82    object.h \
83    operators.h \
84    pascal.h \
85    printsym.h \
86    process.h \
87    runtime.h \
88    scanner.h \
89    source.h \
90    stabstring.h \
91    symbols.h \
92    tree.h \
93    ops.h
94
95SRC = \
96    defs.h \
97    commands.y \
98    asm.c \
99    events.c \
100    c.c \
101    cerror.${MACHINE}.s \
102    check.c \
103    coredump.c \
104    debug.c \
105    eval.c \
106    fortran.c \
107    keywords.c \
108    languages.c \
109    library.c \
110    lists.c \
111    main.c \
112    mappings.c \
113    modula-2.c \
114    names.c \
115    object.c \
116    operators.c \
117    pascal.c \
118    printsym.c \
119    process.c \
120    scanner.c \
121    source.c \
122    stabstring.c \
123    symbols.c \
124    tree.c \
125    ${MACHINE}.c \
126    runtime.${MACHINE}.c \
127    ops.${MACHINE}.c
128
129.c.o:
130	@echo "compiling $*.c"
131	@${CC} ${CFLAGS} -c $*.c
132
133.s.o:
134	@echo "assembling $*.s"
135	@rm -f tmp
136	@/lib/cpp $*.s | grep -v "^#" > tmp
137	@${AS} -o $*.o tmp
138	@rm -f tmp
139
140.c.h:
141	./makedefs -f $*.c $*.h
142
143${AOUT}: makedefs mkdate ${HDR} ${OBJ}
144	@rm -f date.c
145	@./mkdate > date.c
146	@echo "linking"
147	@${CC} ${CFLAGS} -c date.c
148	@${LD} ${LDFLAGS} date.o ${OBJ} ${LIBRARIES} -o ${AOUT}
149
150profile: ${HDR} ${OBJ}
151	@rm -f date.c
152	@./mkdate > date.c
153	@echo "linking with -p"
154	@${CC} ${LDFLAGS} -p date.c ${OBJ} ${LIBRARIES} -o ${AOUT}
155
156y.tab.c: commands.y
157	@echo "expect 2 shift/reduce conflicts"
158	yacc -d commands.y
159
160cerror.s: cerror.${MACHINE}.s
161	@rm -f cerror.s
162	@ln -s cerror.${MACHINE}.s cerror.s
163
164machine.c: ${MACHINE}.c
165	@rm -f machine.c
166	@ln -s ${MACHINE}.c machine.c
167
168ops.c:	ops.${MACHINE}.c
169	@rm -f ops.c
170	@ln -s ops.${MACHINE}.c ops.c
171
172runtime.c: runtime.${MACHINE}.c
173	@rm -f runtime.c
174	@ln -s runtime.${MACHINE}.c runtime.c
175
176makedefs: makedefs.c library.o cerror.o
177	${CC} -g makedefs.c library.o cerror.o -o makedefs
178
179mkdate: mkdate.c
180	${CC} -g ${CFLAGS} mkdate.c -o mkdate
181
182print:
183	@echo "don't print it, it's too long"
184
185depend:
186
187#
188# Don't worry about the removal of header files, they're created from
189# the source files.
190#
191
192clean:
193	rm -f ${HDR} ${OBJ} y.tab.c y.tab.h ${AOUT} mkdate mkdate.o \
194	    makedefs makedefs.o date.c core mon.out prof.out make.out \
195	    cerror.s ops.c machine.c runtime.c date.o
196	@chdir tests; make clean
197
198cleandefs:
199	rm -f ${HDR} y.tab.h
200
201testinstall: ${AOUT} test install
202
203test:
204	@cd tests; make
205
206install: ${AOUT}
207	install -s -o bin -g bin -m 755 ${AOUT} ${DESTDIR}${DEST}
208
209#
210# Create a tar file called "tape" containing relevant files.
211#
212
213TAPE = f tape
214
215tape:
216	@tar c${TAPE} Makefile History READ_ME ${SRC} \
217	    makedefs.c mkdate.c tests pc0mods dbx.1 newdbx.1 dbxstab.5
218
219#
220# without tests subdirectory
221#
222srconlytape:
223	@tar c${TAPE} Makefile History READ_ME ${SRC} \
224	    makedefs.c mkdate.c dbx.1 newdbx.1 dbxstab.5
225
226#
227# Header dependencies are purposely incomplete since header files
228# are "written" every time the accompanying source file changes even if
229# the resulting contents of the header don't change.  The alternative is
230# to force a "makedefs" to be invoked for every header file each time dbx
231# is made.
232#
233# Also, there should be a dependency of scanner.o and keywords.o on y.tab.h
234# but misfortunately silly make does a "makedefs y.tab.c y.tab.h" which
235# destroys y.tab.h.
236#
237
238symbols.o tree.o check.o eval.o events.o: operators.h
239