372 lines
13 KiB
Makefile
372 lines
13 KiB
Makefile
|
/* This file should be run through the C preprocessor by config.gdb
|
||
|
to produce the Makefile. */
|
||
|
|
||
|
/* Define this to xgdb if you want to compile xgdb as well as gdb. */
|
||
|
XGDB=
|
||
|
/* Place to install binaries. */
|
||
|
bindir=/usr/local/bin
|
||
|
/* Place to install X binaries. */
|
||
|
xbindir=$(bindir)
|
||
|
|
||
|
/* System V: If you compile gdb with a compiler which uses the coff
|
||
|
encapsulation feature (this is a function of the compiler used, NOT
|
||
|
of the m-?.h file selected by config.gdb), you must make sure that
|
||
|
the GNU nm is the one that is used by munch. */
|
||
|
|
||
|
/* If you are compiling with GCC, make sure that either 1) You use the
|
||
|
-traditional flag, or 2) You have the fixed include files where GCC
|
||
|
can reach them. Otherwise the ioctl calls in inflow.c and readline.c
|
||
|
will be incorrectly compiled. The "fixincludes" script in the gcc
|
||
|
distribution will fix your include files up. */
|
||
|
/* CC=gcc -traditional */
|
||
|
CC=cc
|
||
|
|
||
|
/* It is also possible that you will need to add -I/usr/include/sys to the
|
||
|
CFLAGS section if your system doesn't have fcntl.h in /usr/include (which
|
||
|
is where it should be according to Posix). */
|
||
|
|
||
|
YACC=bison -y -v
|
||
|
/* YACC=yacc */
|
||
|
SHELL=/bin/sh
|
||
|
MAKE=make
|
||
|
|
||
|
/* Set this up with gcc if you have gnu ld and the loader will print out
|
||
|
line numbers for undefinded refs. */
|
||
|
/* CC-LD=gcc -static */
|
||
|
CC-LD=${CC}
|
||
|
|
||
|
/* If you are using the GNU C library, uncomment the following line. */
|
||
|
/* HAVE_VPRINTF_DEFINE = -DHAVE_VPRINTF */
|
||
|
|
||
|
/* -I. for "#include <obstack.h>". Possibly regex.h also. */
|
||
|
|
||
|
/* M_CFLAGS, if defined, has system-dependent CFLAGS. */
|
||
|
#if !defined(M_CFLAGS)
|
||
|
#define M_CFLAGS
|
||
|
#endif
|
||
|
|
||
|
/* CFLAGS for both GDB and readline. */
|
||
|
GLOBAL_CFLAGS = -g M_CFLAGS
|
||
|
CFLAGS = -I. ${HAVE_VPRINTF_DEFINE} ${GLOBAL_CFLAGS}
|
||
|
/* None of the things in CFLAGS will do any harm, and on some systems
|
||
|
(e.g. SunOS4) it is important to use the M_CFLAGS. */
|
||
|
LDFLAGS = $(CFLAGS)
|
||
|
|
||
|
/*
|
||
|
define this to be "obstack.o" if you don't have the obstack library installed
|
||
|
you must at the same time define OBSTACK1 as "obstack.o"
|
||
|
so that the dependencies work right. Similarly with REGEX and "regex.o".
|
||
|
You must define REGEX and REGEX1 on USG machines.
|
||
|
If your sysyem is missing alloca(), or, more likely, it's there but
|
||
|
it doesn't work, define ALLOCA & ALLOCA1 */
|
||
|
OBSTACK = obstack.o
|
||
|
OBSTACK1 = obstack.o
|
||
|
|
||
|
#ifdef M_REGEX
|
||
|
REGEX = M_REGEX
|
||
|
REGEX1 = M_REGEX
|
||
|
#else
|
||
|
REGEX =
|
||
|
REGEX1 =
|
||
|
#endif
|
||
|
|
||
|
#ifdef M_ALLOCA
|
||
|
ALLOCA = M_ALLOCA
|
||
|
ALLOCA1 = M_ALLOCA
|
||
|
#else
|
||
|
ALLOCA =
|
||
|
ALLOCA1 =
|
||
|
#endif
|
||
|
|
||
|
/*
|
||
|
define this to be "malloc.o" if you want to use the gnu malloc routine
|
||
|
(useful for debugging memory allocation problems in gdb). Otherwise, leave
|
||
|
it blank. */
|
||
|
/* GNU_MALLOC = */
|
||
|
GNU_MALLOC = malloc.o
|
||
|
|
||
|
/* Flags to be used in compiling malloc.o
|
||
|
Specify range checking for storage allocation. */
|
||
|
/* MALLOC_FLAGS = ${CFLAGS} */
|
||
|
MALLOC_FLAGS = ${CFLAGS} -Drcheck -Dbotch=fatal_dump_core -DMSTATS
|
||
|
|
||
|
/* Define SYSV if compiling on a system V or HP machine. */
|
||
|
#ifdef M_SYSV
|
||
|
SYSV_DEFINE = -DSYSV
|
||
|
#else
|
||
|
SYSV_DEFINE =
|
||
|
#endif
|
||
|
|
||
|
/* MUNCH_DEFINE should be -DSYSV if have System V-style nm,
|
||
|
or null if have BSD-style nm. */
|
||
|
#ifdef M_BSD_NM
|
||
|
MUNCH_DEFINE =
|
||
|
#else
|
||
|
MUNCH_DEFINE = ${SYSV_DEFINE}
|
||
|
#endif
|
||
|
|
||
|
/* Flags that describe where you can find the termcap library.
|
||
|
You may need to make other arrangements for USG. */
|
||
|
TERMCAP = -ltermcap
|
||
|
|
||
|
/* M_CLIBS, if defined, has system-dependent libs
|
||
|
For example, -lPW for System V to get alloca(). */
|
||
|
#ifndef M_CLIBS
|
||
|
#define M_CLIBS
|
||
|
#endif
|
||
|
CLIBS = ${ADD_FILES} ${TERMCAP} M_CLIBS
|
||
|
|
||
|
ADD_FILES = ${OBSTACK} ${REGEX} ${ALLOCA} ${GNU_MALLOC}
|
||
|
ADD_DEPS = ${OBSTACK1} ${REGEX1} ${ALLOCA1} ${GNU_MALLOC}
|
||
|
|
||
|
SFILES = blockframe.c breakpoint.c dbxread.c coffread.c command.c core.c \
|
||
|
environ.c eval.c expprint.c findvar.c infcmd.c inflow.c infrun.c \
|
||
|
kdb-start.c main.c printcmd.c \
|
||
|
remote.c source.c stack.c standalone.c stuff.c symmisc.c symtab.c \
|
||
|
utils.c valarith.c valops.c valprint.c values.c version.c expread.y \
|
||
|
xgdb.c
|
||
|
|
||
|
DEPFILES = umax-dep.c gould-dep.c default-dep.c sun3-dep.c \
|
||
|
sparc-dep.c hp9k320-dep.c hp300bsd-dep.c news-dep.c i386-dep.c \
|
||
|
symmetry-dep.c convex-dep.c altos-dep.c isi-dep.c pyr-dep.c
|
||
|
|
||
|
PINSNS = gld-pinsn.c i386-pinsn.c sparc-pinsn.c vax-pinsn.c m68k-pinsn.c \
|
||
|
ns32k-pinsn.c convex-pinsn.c pyr-pinsn.c
|
||
|
|
||
|
HFILES = command.h defs.h environ.h expression.h frame.h getpagesize.h \
|
||
|
inferior.h symseg.h symtab.h value.h wait.h \
|
||
|
a.out.encap.h a.out.gnu.h stab.gnu.h
|
||
|
|
||
|
OPCODES = m68k-opcode.h pn-opcode.h sparc-opcode.h npl-opcode.h vax-opcode.h \
|
||
|
ns32k-opcode.h convex-opcode.h pyr-opcode.h
|
||
|
|
||
|
MFILES = m-hp9k320.h m-hp300bsd.h m-i386.h m-i386gas.h \
|
||
|
m-i386-sv32.h m-i386g-sv32.h m-isi.h m-merlin.h \
|
||
|
m-altos.h m-news.h m-newsos3.h m-npl.h m-pn.h \
|
||
|
m-sparc.h m-sun2.h m-sun3.h m-sun2os4.h \
|
||
|
m-sun3os4.h m-sun4os4.h m-umax.h m-vax.h m-symmetry.h m-convex.h \
|
||
|
m-pyr.h
|
||
|
|
||
|
/* This list of files really shouldn't be in this makefile, but I can't think
|
||
|
of any good way to get the readline makefile to tell us what files
|
||
|
to put in our tarfile. */
|
||
|
READLINE = readline.c history.c funmap.c \
|
||
|
emacs_keymap.c vi_keymap.c vi_mode.c keymaps.c \
|
||
|
readline.h history.h keymaps.h chardefs.h \
|
||
|
inc-readline.texinfo inc-history.texinfo \
|
||
|
readline.texinfo history.texinfo \
|
||
|
Makefile ChangeLog
|
||
|
|
||
|
REMOTE_EXAMPLES = remote-sa.m68k.shar remote-multi.shar
|
||
|
|
||
|
POSSLIBS = obstack.h obstack.c regex.c regex.h malloc.c alloca.c
|
||
|
|
||
|
TESTS = testbpt.c testfun.c testrec.c testreg.c testregs.c
|
||
|
|
||
|
OTHERS = Makefile.dist createtags munch config.gdb ChangeLog README TAGS \
|
||
|
gdb.texinfo .gdbinit COPYING expread.tab.c stab.def \
|
||
|
XGDB-README copying.c Projects Convex.notes copying.awk hp-include
|
||
|
|
||
|
TAGFILES = ${SFILES} ${DEPFILES} ${PINSNS} ${HFILES} ${OPCODES} ${MFILES} \
|
||
|
${POSSLIBS}
|
||
|
TARFILES = ${TAGFILES} ${OTHERS} ${REMOTE_EXAMPLES}
|
||
|
|
||
|
OBS = main.o blockframe.o breakpoint.o findvar.o stack.o source.o \
|
||
|
values.o eval.o valops.o valarith.o valprint.o printcmd.o \
|
||
|
symtab.o symmisc.o coffread.o dbxread.o infcmd.o infrun.o remote.o \
|
||
|
command.o utils.o expread.o expprint.o pinsn.o environ.o version.o \
|
||
|
copying.o ${READLINEOBS}
|
||
|
|
||
|
TSOBS = core.o inflow.o dep.o
|
||
|
|
||
|
NTSOBS = standalone.o
|
||
|
|
||
|
TSSTART = /lib/crt0.o
|
||
|
|
||
|
NTSSTART = kdb-start.o
|
||
|
|
||
|
RL_LIB = readline/libreadline.a
|
||
|
|
||
|
/* Do some fancy trickery to produce a line like
|
||
|
-DM_MAKEDEFINE="-DM_SYSV -DM_BSD_NM".
|
||
|
*/
|
||
|
MD=M_MAKEDEFINE
|
||
|
|
||
|
/* Avoid funny things that Sun's make throws in for us. */
|
||
|
/* TARGET_ARCH is supposed to get around it putting in the machine type.
|
||
|
If the "things" up there really is plural, we'll need to do something
|
||
|
else as well. */
|
||
|
/*.c.o:
|
||
|
${CC} -c ${CFLAGS} $< */
|
||
|
TARGET_ARCH=
|
||
|
|
||
|
all: gdb $(XGDB)
|
||
|
|
||
|
install: gdb $(XGDB)
|
||
|
cp gdb $(bindir)/gdb.new
|
||
|
mv $(bindir)/gdb.new $(bindir)/gdb
|
||
|
-if [ "$(XGDB)" = xgdb ]; then \
|
||
|
cp xgdb $(xbindir)/xgdb.new; \
|
||
|
mv $(xbindir)/xgdb.new $(xbindir)xgdb; \
|
||
|
fi
|
||
|
|
||
|
gdb : $(OBS) $(TSOBS) ${ADD_DEPS} ${RL_LIB}
|
||
|
rm -f init.c
|
||
|
./munch ${MUNCH_DEFINE} $(OBS) $(TSOBS) > init.c
|
||
|
${CC-LD} $(LDFLAGS) -o gdb init.c $(OBS) $(TSOBS) ${RL_LIB} $(CLIBS)
|
||
|
|
||
|
/* This is useful when debugging GDB, because Unix doesn't let you run GDB
|
||
|
on itself without copying the executable. So "make gdb1" will make
|
||
|
gdb and put a copy in gdb1, and you can run it with "gdb gdb1". */
|
||
|
gdb1 : gdb
|
||
|
cp gdb gdb1
|
||
|
|
||
|
Makefile : Makefile.dist
|
||
|
cp Makefile.dist tmp.c
|
||
|
$(CC) -E >Makefile tmp.c $(MD) "-DM_MAKEDEFINE=$(MD)"
|
||
|
-rm tmp.c
|
||
|
/* This did not work-- -Usparc became "-Usparc" became "-Usparc.
|
||
|
Or something like that. */
|
||
|
/* $(CC) -E >Makefile tmp.c $(MD) "-DM_MAKEDEFINE=\"$(MD)\"" */
|
||
|
|
||
|
xgdb : $(OBS) $(TSOBS) xgdb.o ${ADD_DEPS} ${RL_LIB}
|
||
|
rm -f init.c
|
||
|
./munch ${MUNCH_DEFINE} $(OBS) $(TSOBS) xgdb.o > init.c
|
||
|
$(CC-LD) $(LDFLAGS) -o xgdb init.c $(OBS) $(TSOBS) xgdb.o \
|
||
|
-lXaw -lXmu -lXt -lX11 ${RL_LIB} $(CLIBS)
|
||
|
|
||
|
/* Old (pre R3) xgdb comp.
|
||
|
$(CC-LD) $(LDFLAGS) -o xgdb init.c $(OBS) $(TSOBS) xgdb.o \
|
||
|
-lXaw -lXt -lX11 $(CLIBS) */
|
||
|
|
||
|
kdb : $(NTSSTART) $(OBS) $(NTSOBS) ${ADD_DEPS} ${RL_LIB}
|
||
|
rm -f init.c
|
||
|
./munch ${MUNCH_DEFINE} $(OBS) $(NTSOBS) > init.c
|
||
|
$(CC) $(LDFLAGS) -c init.c $(CLIBS)
|
||
|
ld -o kdb $(NTSSTART) $(OBS) $(NTSOBS) init.o ${RL_LIB} -lc $(CLIBS)
|
||
|
|
||
|
/* If it can figure out the appropriate order, createtags will make sure
|
||
|
that the proper m-*, *-dep, *-pinsn, and *-opcode files come first
|
||
|
in the tags list. It will attempt to do the same for dbxread.c and
|
||
|
coffread.c. This makes using M-. on machine dependent routines much
|
||
|
easier. */
|
||
|
|
||
|
TAGS: ${TAGFILES}
|
||
|
createtags ${TAGFILES}
|
||
|
tags: TAGS
|
||
|
|
||
|
gdb.tar: ${TARFILES}
|
||
|
rm -f gdb.tar
|
||
|
mkdir dist-gdb
|
||
|
cd dist-gdb ; for i in ${TARFILES} ; do ln -s ../$$i . ; done
|
||
|
mkdir dist-gdb/readline
|
||
|
cd dist-gdb/readline ; for i in ${READLINE} ; do ln -s ../../readline/$$i . ; done
|
||
|
tar chf gdb.tar dist-gdb
|
||
|
rm -rf dist-gdb
|
||
|
|
||
|
/* Remove gdb.tar.Z so stupid compress doesn't ask whether we want to
|
||
|
overwrite it. compress -f is not what we want, because we do want
|
||
|
to know if compress would not make it smaller. */
|
||
|
gdb.tar.Z: gdb.tar
|
||
|
if [ -f gdb.tar.Z ]; then rm -f gdb.tar.Z; else true; fi
|
||
|
compress gdb.tar
|
||
|
|
||
|
clean:
|
||
|
rm -f ${OBS} ${TSOBS} ${NTSOBS} ${OBSTACK} ${REGEX} ${GNU_MALLOC}
|
||
|
rm -f init.c init.o
|
||
|
rm -f xgdb.o xgdb
|
||
|
rm -f gdb core gdb.tar gdb.tar.Z make.log
|
||
|
rm -f gdb[0-9]
|
||
|
cd readline ; make clean
|
||
|
|
||
|
distclean: clean expread.tab.c TAGS
|
||
|
rm -f dep.c opcode.h param.h pinsn.c config.status
|
||
|
rm -f y.output yacc.acts yacc.tmp
|
||
|
rm -f ${TESTS} Makefile
|
||
|
|
||
|
realclean: clean
|
||
|
rm -f expread.tab.c TAGS
|
||
|
rm -f dep.c opcode.h param.h pinsn.c config.status
|
||
|
rm -f Makefile
|
||
|
|
||
|
xgdb.o : defs.h param.h symtab.h frame.h
|
||
|
|
||
|
/* Make copying.c from COPYING */
|
||
|
copying.c : COPYING copying.awk
|
||
|
awk -f copying.awk < COPYING > copying.c
|
||
|
|
||
|
expread.tab.c : expread.y
|
||
|
@echo 'Expect 4 shift/reduce conflict.'
|
||
|
${YACC} expread.y
|
||
|
mv y.tab.c expread.tab.c
|
||
|
|
||
|
expread.o : expread.tab.c defs.h param.h symtab.h frame.h expression.h
|
||
|
$(CC) -c ${CFLAGS} expread.tab.c
|
||
|
mv expread.tab.o expread.o
|
||
|
|
||
|
readline/libreadline.a : force_update
|
||
|
cd readline ; ${MAKE} "SYSV=${SYSV_DEFINE}" \
|
||
|
"DEBUG_FLAGS=${GLOBAL_CFLAGS}" "CC=${CC}" libreadline.a
|
||
|
|
||
|
force_update :
|
||
|
|
||
|
/* Only useful if you are using the gnu malloc routines. */
|
||
|
malloc.o : malloc.c
|
||
|
${CC} -c ${MALLOC_FLAGS} malloc.c
|
||
|
|
||
|
/* dep.o depends on config.status in case someone reconfigures gdb out
|
||
|
from under an already compiled gdb. */
|
||
|
dep.o : dep.c config.status defs.h param.h frame.h inferior.h obstack.h \
|
||
|
a.out.encap.h
|
||
|
|
||
|
/* pinsn.o depends on config.status in case someone reconfigures gdb out
|
||
|
from under an already compiled gdb. */
|
||
|
pinsn.o : pinsn.c config.status defs.h param.h symtab.h obstack.h symseg.h \
|
||
|
frame.h opcode.h
|
||
|
|
||
|
/* The rest of this is a standard dependencies list (hand edited output of
|
||
|
cpp -M). It does not include dependencies of .o files on .c files. */
|
||
|
/* All files which depend on config.status also depend on param.h in case
|
||
|
someone reconfigures gdb out from under an already compiled gdb. */
|
||
|
blockframe.o : defs.h param.h config.status symtab.h obstack.h symseg.h frame.h
|
||
|
breakpoint.o : defs.h param.h config.status symtab.h obstack.h symseg.h frame.h
|
||
|
coffread.o : defs.h param.h config.status
|
||
|
command.o : command.h defs.h
|
||
|
core.o : defs.h param.h config.status a.out.encap.h
|
||
|
dbxread.o : param.h config.status defs.h symtab.h obstack.h symseg.h a.out.encap.h \
|
||
|
stab.gnu.h
|
||
|
environ.o : environ.h
|
||
|
eval.o : defs.h param.h config.status symtab.h obstack.h symseg.h value.h expression.h
|
||
|
expprint.o : defs.h symtab.h obstack.h symseg.h param.h config.status expression.h
|
||
|
findvar.o : defs.h param.h config.status symtab.h obstack.h symseg.h frame.h value.h
|
||
|
infcmd.o : defs.h param.h config.status symtab.h obstack.h symseg.h frame.h inferior.h \
|
||
|
environ.h value.h
|
||
|
inflow.o : defs.h param.h config.status frame.h inferior.h
|
||
|
infrun.o : defs.h param.h config.status symtab.h obstack.h symseg.h frame.h inferior.h \
|
||
|
wait.h
|
||
|
kdb-start.o : defs.h param.h config.status
|
||
|
main.o : defs.h command.h param.h config.status
|
||
|
malloc.o : getpagesize.h
|
||
|
obstack.o : obstack.h
|
||
|
printcmd.o : defs.h param.h config.status frame.h symtab.h obstack.h symseg.h value.h \
|
||
|
expression.h
|
||
|
regex.o : regex.h
|
||
|
remote.o : defs.h param.h config.status frame.h inferior.h wait.h
|
||
|
source.o : defs.h symtab.h obstack.h symseg.h param.h config.status
|
||
|
stack.o : defs.h param.h config.status symtab.h obstack.h symseg.h frame.h
|
||
|
standalone.o : defs.h param.h config.status symtab.h obstack.h symseg.h frame.h \
|
||
|
inferior.h wait.h
|
||
|
symmisc.o : defs.h symtab.h obstack.h symseg.h obstack.h
|
||
|
symtab.o : defs.h symtab.h obstack.h symseg.h param.h config.status obstack.h
|
||
|
utils.o : defs.h param.h config.status
|
||
|
valarith.o : defs.h param.h config.status symtab.h obstack.h symseg.h value.h expression.h
|
||
|
valops.o : defs.h param.h config.status symtab.h obstack.h symseg.h value.h frame.h \
|
||
|
inferior.h
|
||
|
valprint.o : defs.h param.h config.status symtab.h obstack.h symseg.h value.h
|
||
|
values.o : defs.h param.h config.status symtab.h obstack.h symseg.h value.h
|
||
|
|
||
|
robotussin.h : getpagesize.h
|
||
|
symtab.h : obstack.h symseg.h
|
||
|
a.out.encap.h : a.out.gnu.h
|
||
|
|