Add diclaimer of copyright to _osname() manual page.
[unix-history] / gnu / usr.bin / kgdb / Makefile.dist
CommitLineData
04497f0b
NW
1/* This file should be run through the C preprocessor by config.gdb
2 to produce the Makefile. */
3
4/* Define this to xgdb if you want to compile xgdb as well as gdb. */
5XGDB=
6/* Place to install binaries. */
7bindir=/usr/local/bin
8/* Place to install X binaries. */
9xbindir=$(bindir)
10
11/* System V: If you compile gdb with a compiler which uses the coff
12 encapsulation feature (this is a function of the compiler used, NOT
13 of the m-?.h file selected by config.gdb), you must make sure that
14 the GNU nm is the one that is used by munch. */
15
16/* If you are compiling with GCC, make sure that either 1) You use the
17 -traditional flag, or 2) You have the fixed include files where GCC
18 can reach them. Otherwise the ioctl calls in inflow.c and readline.c
19 will be incorrectly compiled. The "fixincludes" script in the gcc
20 distribution will fix your include files up. */
21/* CC=gcc -traditional */
22CC=cc
23
24/* It is also possible that you will need to add -I/usr/include/sys to the
25 CFLAGS section if your system doesn't have fcntl.h in /usr/include (which
26 is where it should be according to Posix). */
27
28YACC=bison -y -v
29/* YACC=yacc */
30SHELL=/bin/sh
31MAKE=make
32
33/* Set this up with gcc if you have gnu ld and the loader will print out
34 line numbers for undefinded refs. */
35/* CC-LD=gcc -static */
36CC-LD=${CC}
37
38/* If you are using the GNU C library, uncomment the following line. */
39/* HAVE_VPRINTF_DEFINE = -DHAVE_VPRINTF */
40
41/* -I. for "#include <obstack.h>". Possibly regex.h also. */
42
43/* M_CFLAGS, if defined, has system-dependent CFLAGS. */
44#if !defined(M_CFLAGS)
45#define M_CFLAGS
46#endif
47
48/* CFLAGS for both GDB and readline. */
49GLOBAL_CFLAGS = -g M_CFLAGS
50CFLAGS = -I. ${HAVE_VPRINTF_DEFINE} ${GLOBAL_CFLAGS}
51/* None of the things in CFLAGS will do any harm, and on some systems
52 (e.g. SunOS4) it is important to use the M_CFLAGS. */
53LDFLAGS = $(CFLAGS)
54
55/*
56 define this to be "obstack.o" if you don't have the obstack library installed
57 you must at the same time define OBSTACK1 as "obstack.o"
58 so that the dependencies work right. Similarly with REGEX and "regex.o".
59 You must define REGEX and REGEX1 on USG machines.
60 If your sysyem is missing alloca(), or, more likely, it's there but
61 it doesn't work, define ALLOCA & ALLOCA1 */
62OBSTACK = obstack.o
63OBSTACK1 = obstack.o
64
65#ifdef M_REGEX
66REGEX = M_REGEX
67REGEX1 = M_REGEX
68#else
69REGEX =
70REGEX1 =
71#endif
72
73#ifdef M_ALLOCA
74ALLOCA = M_ALLOCA
75ALLOCA1 = M_ALLOCA
76#else
77ALLOCA =
78ALLOCA1 =
79#endif
80
81/*
82 define this to be "malloc.o" if you want to use the gnu malloc routine
83 (useful for debugging memory allocation problems in gdb). Otherwise, leave
84 it blank. */
85/* GNU_MALLOC = */
86GNU_MALLOC = malloc.o
87
88/* Flags to be used in compiling malloc.o
89 Specify range checking for storage allocation. */
90/* MALLOC_FLAGS = ${CFLAGS} */
91MALLOC_FLAGS = ${CFLAGS} -Drcheck -Dbotch=fatal_dump_core -DMSTATS
92
93/* Define SYSV if compiling on a system V or HP machine. */
94#ifdef M_SYSV
95SYSV_DEFINE = -DSYSV
96#else
97SYSV_DEFINE =
98#endif
99
100/* MUNCH_DEFINE should be -DSYSV if have System V-style nm,
101 or null if have BSD-style nm. */
102#ifdef M_BSD_NM
103MUNCH_DEFINE =
104#else
105MUNCH_DEFINE = ${SYSV_DEFINE}
106#endif
107
108/* Flags that describe where you can find the termcap library.
109 You may need to make other arrangements for USG. */
110TERMCAP = -ltermcap
111
112/* M_CLIBS, if defined, has system-dependent libs
113 For example, -lPW for System V to get alloca(). */
114#ifndef M_CLIBS
115#define M_CLIBS
116#endif
117CLIBS = ${ADD_FILES} ${TERMCAP} M_CLIBS
118
119ADD_FILES = ${OBSTACK} ${REGEX} ${ALLOCA} ${GNU_MALLOC}
120ADD_DEPS = ${OBSTACK1} ${REGEX1} ${ALLOCA1} ${GNU_MALLOC}
121
122SFILES = blockframe.c breakpoint.c dbxread.c coffread.c command.c core.c \
123 environ.c eval.c expprint.c findvar.c infcmd.c inflow.c infrun.c \
124 kdb-start.c main.c printcmd.c \
125 remote.c source.c stack.c standalone.c stuff.c symmisc.c symtab.c \
126 utils.c valarith.c valops.c valprint.c values.c version.c expread.y \
127 xgdb.c
128
129DEPFILES = umax-dep.c gould-dep.c default-dep.c sun3-dep.c \
130 sparc-dep.c hp9k320-dep.c hp300bsd-dep.c news-dep.c i386-dep.c \
131 symmetry-dep.c convex-dep.c altos-dep.c isi-dep.c pyr-dep.c
132
133PINSNS = gld-pinsn.c i386-pinsn.c sparc-pinsn.c vax-pinsn.c m68k-pinsn.c \
134 ns32k-pinsn.c convex-pinsn.c pyr-pinsn.c
135
136HFILES = command.h defs.h environ.h expression.h frame.h getpagesize.h \
137 inferior.h symseg.h symtab.h value.h wait.h \
138 a.out.encap.h a.out.gnu.h stab.gnu.h
139
140OPCODES = m68k-opcode.h pn-opcode.h sparc-opcode.h npl-opcode.h vax-opcode.h \
141 ns32k-opcode.h convex-opcode.h pyr-opcode.h
142
143MFILES = m-hp9k320.h m-hp300bsd.h m-i386.h m-i386gas.h \
144 m-i386-sv32.h m-i386g-sv32.h m-isi.h m-merlin.h \
145 m-altos.h m-news.h m-newsos3.h m-npl.h m-pn.h \
146 m-sparc.h m-sun2.h m-sun3.h m-sun2os4.h \
147 m-sun3os4.h m-sun4os4.h m-umax.h m-vax.h m-symmetry.h m-convex.h \
148 m-pyr.h
149
150/* This list of files really shouldn't be in this makefile, but I can't think
151 of any good way to get the readline makefile to tell us what files
152 to put in our tarfile. */
153READLINE = readline.c history.c funmap.c \
154 emacs_keymap.c vi_keymap.c vi_mode.c keymaps.c \
155 readline.h history.h keymaps.h chardefs.h \
156 inc-readline.texinfo inc-history.texinfo \
157 readline.texinfo history.texinfo \
158 Makefile ChangeLog
159
160REMOTE_EXAMPLES = remote-sa.m68k.shar remote-multi.shar
161
162POSSLIBS = obstack.h obstack.c regex.c regex.h malloc.c alloca.c
163
164TESTS = testbpt.c testfun.c testrec.c testreg.c testregs.c
165
166OTHERS = Makefile.dist createtags munch config.gdb ChangeLog README TAGS \
167 gdb.texinfo .gdbinit COPYING expread.tab.c stab.def \
168 XGDB-README copying.c Projects Convex.notes copying.awk hp-include
169
170TAGFILES = ${SFILES} ${DEPFILES} ${PINSNS} ${HFILES} ${OPCODES} ${MFILES} \
171 ${POSSLIBS}
172TARFILES = ${TAGFILES} ${OTHERS} ${REMOTE_EXAMPLES}
173
174OBS = main.o blockframe.o breakpoint.o findvar.o stack.o source.o \
175 values.o eval.o valops.o valarith.o valprint.o printcmd.o \
176 symtab.o symmisc.o coffread.o dbxread.o infcmd.o infrun.o remote.o \
177 command.o utils.o expread.o expprint.o pinsn.o environ.o version.o \
178 copying.o ${READLINEOBS}
179
180TSOBS = core.o inflow.o dep.o
181
182NTSOBS = standalone.o
183
184TSSTART = /lib/crt0.o
185
186NTSSTART = kdb-start.o
187
188RL_LIB = readline/libreadline.a
189
190/* Do some fancy trickery to produce a line like
191 -DM_MAKEDEFINE="-DM_SYSV -DM_BSD_NM".
192*/
193MD=M_MAKEDEFINE
194
195/* Avoid funny things that Sun's make throws in for us. */
196/* TARGET_ARCH is supposed to get around it putting in the machine type.
197 If the "things" up there really is plural, we'll need to do something
198 else as well. */
199/*.c.o:
200 ${CC} -c ${CFLAGS} $< */
201TARGET_ARCH=
202
203all: gdb $(XGDB)
204
205install: gdb $(XGDB)
206 cp gdb $(bindir)/gdb.new
207 mv $(bindir)/gdb.new $(bindir)/gdb
208 -if [ "$(XGDB)" = xgdb ]; then \
209 cp xgdb $(xbindir)/xgdb.new; \
210 mv $(xbindir)/xgdb.new $(xbindir)xgdb; \
211 fi
212
213gdb : $(OBS) $(TSOBS) ${ADD_DEPS} ${RL_LIB}
214 rm -f init.c
215 ./munch ${MUNCH_DEFINE} $(OBS) $(TSOBS) > init.c
216 ${CC-LD} $(LDFLAGS) -o gdb init.c $(OBS) $(TSOBS) ${RL_LIB} $(CLIBS)
217
218/* This is useful when debugging GDB, because Unix doesn't let you run GDB
219 on itself without copying the executable. So "make gdb1" will make
220 gdb and put a copy in gdb1, and you can run it with "gdb gdb1". */
221gdb1 : gdb
222 cp gdb gdb1
223
224Makefile : Makefile.dist
225 cp Makefile.dist tmp.c
226 $(CC) -E >Makefile tmp.c $(MD) "-DM_MAKEDEFINE=$(MD)"
227 -rm tmp.c
228/* This did not work-- -Usparc became "-Usparc" became "-Usparc.
229 Or something like that. */
230/* $(CC) -E >Makefile tmp.c $(MD) "-DM_MAKEDEFINE=\"$(MD)\"" */
231
232xgdb : $(OBS) $(TSOBS) xgdb.o ${ADD_DEPS} ${RL_LIB}
233 rm -f init.c
234 ./munch ${MUNCH_DEFINE} $(OBS) $(TSOBS) xgdb.o > init.c
235 $(CC-LD) $(LDFLAGS) -o xgdb init.c $(OBS) $(TSOBS) xgdb.o \
236 -lXaw -lXmu -lXt -lX11 ${RL_LIB} $(CLIBS)
237
238/* Old (pre R3) xgdb comp.
239 $(CC-LD) $(LDFLAGS) -o xgdb init.c $(OBS) $(TSOBS) xgdb.o \
240 -lXaw -lXt -lX11 $(CLIBS) */
241
242kdb : $(NTSSTART) $(OBS) $(NTSOBS) ${ADD_DEPS} ${RL_LIB}
243 rm -f init.c
244 ./munch ${MUNCH_DEFINE} $(OBS) $(NTSOBS) > init.c
245 $(CC) $(LDFLAGS) -c init.c $(CLIBS)
246 ld -o kdb $(NTSSTART) $(OBS) $(NTSOBS) init.o ${RL_LIB} -lc $(CLIBS)
247
248/* If it can figure out the appropriate order, createtags will make sure
249 that the proper m-*, *-dep, *-pinsn, and *-opcode files come first
250 in the tags list. It will attempt to do the same for dbxread.c and
251 coffread.c. This makes using M-. on machine dependent routines much
252 easier. */
253
254TAGS: ${TAGFILES}
255 createtags ${TAGFILES}
256tags: TAGS
257
258gdb.tar: ${TARFILES}
259 rm -f gdb.tar
260 mkdir dist-gdb
261 cd dist-gdb ; for i in ${TARFILES} ; do ln -s ../$$i . ; done
262 mkdir dist-gdb/readline
263 cd dist-gdb/readline ; for i in ${READLINE} ; do ln -s ../../readline/$$i . ; done
264 tar chf gdb.tar dist-gdb
265 rm -rf dist-gdb
266
267/* Remove gdb.tar.Z so stupid compress doesn't ask whether we want to
268 overwrite it. compress -f is not what we want, because we do want
269 to know if compress would not make it smaller. */
270gdb.tar.Z: gdb.tar
271 if [ -f gdb.tar.Z ]; then rm -f gdb.tar.Z; else true; fi
272 compress gdb.tar
273
274clean:
275 rm -f ${OBS} ${TSOBS} ${NTSOBS} ${OBSTACK} ${REGEX} ${GNU_MALLOC}
276 rm -f init.c init.o
277 rm -f xgdb.o xgdb
278 rm -f gdb core gdb.tar gdb.tar.Z make.log
279 rm -f gdb[0-9]
280 cd readline ; make clean
281
282distclean: clean expread.tab.c TAGS
283 rm -f dep.c opcode.h param.h pinsn.c config.status
284 rm -f y.output yacc.acts yacc.tmp
285 rm -f ${TESTS} Makefile
286
287realclean: clean
288 rm -f expread.tab.c TAGS
289 rm -f dep.c opcode.h param.h pinsn.c config.status
290 rm -f Makefile
291
292xgdb.o : defs.h param.h symtab.h frame.h
293
294/* Make copying.c from COPYING */
295copying.c : COPYING copying.awk
296 awk -f copying.awk < COPYING > copying.c
297
298expread.tab.c : expread.y
299 @echo 'Expect 4 shift/reduce conflict.'
300 ${YACC} expread.y
301 mv y.tab.c expread.tab.c
302
303expread.o : expread.tab.c defs.h param.h symtab.h frame.h expression.h
304 $(CC) -c ${CFLAGS} expread.tab.c
305 mv expread.tab.o expread.o
306
307readline/libreadline.a : force_update
308 cd readline ; ${MAKE} "SYSV=${SYSV_DEFINE}" \
309 "DEBUG_FLAGS=${GLOBAL_CFLAGS}" "CC=${CC}" libreadline.a
310
311force_update :
312
313/* Only useful if you are using the gnu malloc routines. */
314malloc.o : malloc.c
315 ${CC} -c ${MALLOC_FLAGS} malloc.c
316
317/* dep.o depends on config.status in case someone reconfigures gdb out
318 from under an already compiled gdb. */
319dep.o : dep.c config.status defs.h param.h frame.h inferior.h obstack.h \
320 a.out.encap.h
321
322/* pinsn.o depends on config.status in case someone reconfigures gdb out
323 from under an already compiled gdb. */
324pinsn.o : pinsn.c config.status defs.h param.h symtab.h obstack.h symseg.h \
325 frame.h opcode.h
326
327/* The rest of this is a standard dependencies list (hand edited output of
328 cpp -M). It does not include dependencies of .o files on .c files. */
329/* All files which depend on config.status also depend on param.h in case
330 someone reconfigures gdb out from under an already compiled gdb. */
331blockframe.o : defs.h param.h config.status symtab.h obstack.h symseg.h frame.h
332breakpoint.o : defs.h param.h config.status symtab.h obstack.h symseg.h frame.h
333coffread.o : defs.h param.h config.status
334command.o : command.h defs.h
335core.o : defs.h param.h config.status a.out.encap.h
336dbxread.o : param.h config.status defs.h symtab.h obstack.h symseg.h a.out.encap.h \
337 stab.gnu.h
338environ.o : environ.h
339eval.o : defs.h param.h config.status symtab.h obstack.h symseg.h value.h expression.h
340expprint.o : defs.h symtab.h obstack.h symseg.h param.h config.status expression.h
341findvar.o : defs.h param.h config.status symtab.h obstack.h symseg.h frame.h value.h
342infcmd.o : defs.h param.h config.status symtab.h obstack.h symseg.h frame.h inferior.h \
343 environ.h value.h
344inflow.o : defs.h param.h config.status frame.h inferior.h
345infrun.o : defs.h param.h config.status symtab.h obstack.h symseg.h frame.h inferior.h \
346 wait.h
347kdb-start.o : defs.h param.h config.status
348main.o : defs.h command.h param.h config.status
349malloc.o : getpagesize.h
350obstack.o : obstack.h
351printcmd.o : defs.h param.h config.status frame.h symtab.h obstack.h symseg.h value.h \
352 expression.h
353regex.o : regex.h
354remote.o : defs.h param.h config.status frame.h inferior.h wait.h
355source.o : defs.h symtab.h obstack.h symseg.h param.h config.status
356stack.o : defs.h param.h config.status symtab.h obstack.h symseg.h frame.h
357standalone.o : defs.h param.h config.status symtab.h obstack.h symseg.h frame.h \
358 inferior.h wait.h
359symmisc.o : defs.h symtab.h obstack.h symseg.h obstack.h
360symtab.o : defs.h symtab.h obstack.h symseg.h param.h config.status obstack.h
361utils.o : defs.h param.h config.status
362valarith.o : defs.h param.h config.status symtab.h obstack.h symseg.h value.h expression.h
363valops.o : defs.h param.h config.status symtab.h obstack.h symseg.h value.h frame.h \
364 inferior.h
365valprint.o : defs.h param.h config.status symtab.h obstack.h symseg.h value.h
366values.o : defs.h param.h config.status symtab.h obstack.h symseg.h value.h
367
368robotussin.h : getpagesize.h
369symtab.h : obstack.h symseg.h
370a.out.encap.h : a.out.gnu.h
371