-# Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
+# Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998
# Free Software Foundation, Inc.
# This file is part of GDB.
infodir = @infodir@
includedir = @includedir@
-SHELL = /bin/sh
+# This can be referenced by `INTLDEPS' as computed by CY_GNU_GETTEXT.
+top_builddir = .
+
+SHELL = @SHELL@
+EXEEXT = @EXEEXT@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
RANLIB = @RANLIB@
AWK = @AWK@
DLLTOOL = @DLLTOOL@
+WINDRES = @WINDRES@
# Flags that describe where you can find the termcap library.
# This can be overridden in the host Makefile fragment file.
srcdir = @srcdir@
VPATH = @srcdir@
-YACC=@YACC@
+BISON=@YACC@
# where to find makeinfo, preferably one designed for texinfo-2
MAKEINFO=makeinfo
# Where is the "-liberty" library? Typically in ../libiberty.
LIBIBERTY = ../libiberty/libiberty.a
-# Where is the MMALLOC library? Typically in ../mmalloc.
-# Note that mmalloc can still be used on systems without mmap().
-# To use your system malloc, in the host makefile fragment set MMALLOC_CFLAGS
-# to -DNO_MMALLOC and set MMALLOC to empty.
-# To use mmalloc but not use heap checking, in the host makefile fragment set
-# MMALLOC_CFLAGS to the value below but add -DNO_MMCHECK.
-# To use mmalloc and heap checking on a system where the C runtime allocates
-# memory that is never freed, in the host makefile fragment set MMALLOC_CFLAGS
-# to the value below and add -DFORCE_MMCHECK=1
-MMALLOC_DIR = ../mmalloc
-MMALLOC_SRC = $(srcdir)/$(MMALLOC_DIR)
-MMALLOC = $(MMALLOC_DIR)/libmmalloc.a
-MMALLOC_CFLAGS = -I$(MMALLOC_SRC)
+# Configured by the --with-mmalloc option to configure.
+MMALLOC = @MMALLOC@
+MMALLOC_CFLAGS = @MMALLOC_CFLAGS@
# Where is the BFD library? Typically in ../bfd.
BFD_DIR = ../bfd
READLINE_SRC = $(srcdir)/$(READLINE_DIR)
READLINE_CFLAGS = -I$(READLINE_SRC)
+# Where is the INTL library? Typically in ../intl.
+INTL_DIR = ../intl
+INTL = @INTLLIBS@
+INTL_DEPS = @INTLDEPS@
+INTL_SRC = $(srcdir)/$(INTL_DIR)
+INTL_CFLAGS = -I$(INTL_DIR) -I$(INTL_SRC)
+
# Opcodes currently live in one of two places. Either they are in the
# opcode library, typically ../opcodes, or they are in a header file
# in INCLUDE_DIR.
LIB_RUNTIME_DIR = $(libdir)
TCL = @TCL_LD_SEARCH_FLAGS@ @TCL_BUILD_LIB_SPEC@
TCL_CFLAGS = @TCLHDIR@
+TCL_DEPS =
+GDBTKLIBS = @GDBTKLIBS@
# Where is the TK library? Typically in ../tk.
TK = @TK_BUILD_LIB_SPEC@
TK_CFLAGS = @TKHDIR@ @TK_BUILD_INCLUDES@
+TK_DEPS =
# Where is Itcl? Typically in ../itcl.
ITCL_CFLAGS = @ITCLHDIR@
ITCL = @ITCLLIB@
+ITCL_DEPS = $(ITCL)
# Where is Tix? Typically in ../tix.
TIX_CFLAGS = @TIXHDIR@
TIX = @TIXLIB@
+TIX_DEPS = @TIX_DEPS@
X11_CFLAGS = @TK_XINCLUDES@
X11_LDFLAGS =
ENABLE_GDBTK= @ENABLE_GDBTK@
ENABLE_IDE= @ENABLE_IDE@
-IDE_CFLAGS_X = ` \
- if [ x"$(ENABLE_IDE)" != x ] ; then \
- echo -DIDE -I$(srcdir)/../libide/src -I$(srcdir)/../ilu/runtime/mainloop;\
+LIBGUI = ../libgui/src/libgui.a
+
+GUI_CFLAGS_X = -I$(srcdir)/../libgui/src
+
+IDE_CFLAGS_X = -I$(srcdir)/../libidetcl/src -I$(srcdir)/../libide/src \
+ `if [ x"$(ENABLE_IDE)" != x ] ; then \
+ echo -DIDE -I$(srcdir)/../ilu/runtime/mainloop;\
fi`
+LIBIDETCL = ../libidetcl/src/libidetcl.a
+LIBIDE = ../libide/src/libide.a
+
IDE_X = ` \
if [ x"$(ENABLE_IDE)" != x ] ; then \
- echo -L../libide/src -lide -L../ilu/runtime/mainloop -lilu-Tk -L../ilu/runtime/c -lilu-c -L../ilu/runtime/kernel -lilu;\
+ echo -L../ilu/runtime/mainloop -lilu-Tk -L../ilu/runtime/c -lilu-c -L../ilu/runtime/kernel -lilu;\
fi`
+IDE_DEPS = ../ilu/runtime/mainloop/libilu-Tk.a \
+ ../ilu/runtime/c/libilu-c.a ../ilu/runtime/kernel/libilu.a
+
IDE=$(IDE_X)
-IDE_CFLAGS=$(IDE_CFLAGS_X)
+IDE_CFLAGS=$(GUI_CFLAGS_X) $(IDE_CFLAGS_X)
#end-sanitize-gdbtk
ENABLE_CFLAGS= @ENABLE_CFLAGS@
# INTERNAL_CFLAGS is the aggregate of all other *CFLAGS macros.
INTERNAL_CFLAGS = $(CFLAGS) $(GLOBAL_CFLAGS) $(PROFILE_CFLAGS) \
$(GDB_CFLAGS) $(OPCODES_CFLAGS) $(READLINE_CFLAGS) \
- $(BFD_CFLAGS) $(MMALLOC_CFLAGS) $(INCLUDE_CFLAGS) $(ENABLE_CFLAGS)
+ $(BFD_CFLAGS) $(MMALLOC_CFLAGS) $(INCLUDE_CFLAGS) \
+ $(INTL_CFLAGS) $(ENABLE_CFLAGS)
# LDFLAGS is specifically reserved for setting from the command line
# when running make.
# If you have the Cygnus libraries installed,
# you can use 'CLIBS=$(INSTALLED_LIBS)' 'CDEPS='
INSTALLED_LIBS=-lbfd -lreadline -lopcodes -liberty \
- $(TERMCAP) $(XM_CLIBS) $(TM_CLIBS) $(NAT_CLIBS) @LIBS@ \
- -lmmalloc -liberty
-CLIBS = $(SIM) $(BFD) $(READLINE) $(OPCODES) $(LIBIBERTY) \
- $(TERMCAP) $(XM_CLIBS) $(TM_CLIBS) $(NAT_CLIBS) @LIBS@ \
+ $(TERMCAP) $(XM_CLIBS) $(TM_CLIBS) $(NAT_CLIBS) $(GDBTKLIBS) @LIBS@ \
+ -lmmalloc -lintl -liberty
+CLIBS = $(SIM) $(BFD) $(READLINE) $(OPCODES) $(INTL) $(LIBIBERTY) \
+ $(TERMCAP) $(XM_CLIBS) $(TM_CLIBS) $(NAT_CLIBS) $(GDBTKLIBS) @LIBS@ \
$(MMALLOC) $(LIBIBERTY) $(WIN32LIBS)
CDEPS = $(XM_CDEPS) $(TM_CDEPS) $(NAT_CDEPS) $(SIM) $(BFD) $(READLINE) \
- $(OPCODES) $(MMALLOC) $(LIBIBERTY)
+ $(OPCODES) $(MMALLOC) $(INTL_DEPS) $(LIBIBERTY) @CONFIG_DEPS@
ADD_FILES = $(REGEX) $(XM_ADD_FILES) $(TM_ADD_FILES) $(NAT_ADD_FILES)
ADD_DEPS = $(REGEX1) $(XM_ADD_FILES) $(TM_ADD_FILES) $(NAT_ADD_FILES)
-VERSION = 4.16.1
+VERSION=4.17.1
DIST=gdb
LINT=/usr/5bin/lint
# The `remote' debugging target is supported for most architectures,
# but not all (e.g. 960)
-REMOTE_OBS = remote.o dcache.o remote-utils.o
+REMOTE_OBS = remote.o dcache.o remote-utils.o tracepoint.o
# This is remote-sim.o if a simulator is to be linked in.
SIM_OBS =
printcmd.c remote.c remote-nrom.c scm-exp.c scm-lang.c scm-valprint.c \
source.c stabsread.c stack.c symfile.c symmisc.c \
symtab.c target.c thread.c top.c \
- typeprint.c utils.c \
+ tracepoint.c typeprint.c utils.c \
valarith.c valops.c valprint.c values.c \
serial.c ser-unix.c mdebugread.c os9kread.c
-LINTFILES = $(SFILES) $(YYFILES) init.c
+LINTFILES = $(SFILES) $(YYFILES) @CONFIG_SRCS@ init.c
# "system" headers. Using these in dependencies is a rather personal
# choice. (-rich, summer 1993)
defs_h = defs.h xm.h tm.h nm.h config.status config.h
inferior_h = inferior.h $(breakpoint_h)
+tracepoint_h = tracepoint.h
# Header files that need to have srcdir added. Note that in the cases
# where we use a macro like $(gdbcmd_h), things are carefully arranged
DEPFILES = $(TDEPFILES) $(XDEPFILES) $(SER_HARDWIRE) $(NATDEPFILES) \
$(REMOTE_OBS) $(SIM_OBS) @CONFIG_OBS@
-SOURCES = $(SFILES) $(ALLDEPFILES) $(YYFILES)
+SOURCES = $(SFILES) $(ALLDEPFILES) $(YYFILES) @CONFIG_SRCS@
# Don't include YYFILES (*.tab.c) because we already include *.y in SFILES,
# and it's more useful to see it in the .y file.
TAGFILES_NO_SRCDIR = $(SFILES) $(HFILES_NO_SRCDIR) $(ALLDEPFILES) \
NTSSTART = kdb-start.o
-SUBDIRS = doc testsuite nlm mswin
+SUBDIRS = doc \
+ testsuite \
+ $(start-sanitize-mswin) \
+ mswin \
+ $(end-sanitize-mswin) \
+ nlm
# For now, shortcut the "configure GDB for fewer languages" stuff.
YYFILES = c-exp.tab.c jv-exp.tab.c f-exp.tab.c m2-exp.tab.c
.c.o:
$(CC) -c $(INTERNAL_CFLAGS) $<
-all: gdb
+all: gdb$(EXEEXT)
@$(MAKE) $(FLAGS_TO_PASS) DO=all "DODIRS=`echo $(SUBDIRS) | sed 's/testsuite//'`" subdir_do
installcheck:
else \
true ; \
fi ; \
- $(INSTALL_PROGRAM) gdb $(bindir)/$$transformed_name ; \
+ $(INSTALL_PROGRAM) gdb$(EXEEXT) $(bindir)/$$transformed_name$(EXEEXT) ; \
$(INSTALL_DATA) $(srcdir)/gdb.1 $(man1dir)/$$transformed_name.1
# start-sanitize-gdbtk
- if [ x"$(ENABLE_GDBTK)" != x ] ; then \
- $(SHELL) $(srcdir)/../mkinstalldirs $(datadir)/gdbtcl ; \
- if [ x"$(ENABLE_IDE)" = x ]; then \
- cd $(srcdir)/gdbtcl ; \
- for i in asm.tcl break.xbm breakpoint.tcl command.tcl copyright.tcl expr.tcl file.tcl main.tcl register.tcl source.tcl stop2.gif tclIndex ; \
- do \
- $(INSTALL_DATA) $$i $(datadir)/gdbtcl/$$i ; \
- done ; \
- else \
- $(SHELL) $(srcdir)/../mkinstalldirs \
- $(datadir)/gdbtcl/images \
- $(datadir)/gdbtcl/images2 ; \
- cd $(srcdir)/gdbtcl2 ; \
- for i in *.tcl images/*.gif images2/*.gif tclIndex; \
- do \
- $(INSTALL_DATA) $$i $(datadir)/gdbtcl/$$i ; \
- done ; \
- fi ; \
- else \
- true ; \
- fi
+ $(SHELL) $(srcdir)/../mkinstalldirs $(datadir)/gdbtcl ; \
+ $(SHELL) $(srcdir)/../mkinstalldirs \
+ $(datadir)/gdbtcl/images \
+ $(datadir)/gdbtcl/images2 ; \
+ $(SHELL) $(srcdir)/../mkinstalldirs $(datadir)/gdbtcl/help \
+ $(datadir)/gdbtcl/help/images; \
+ cd $(srcdir)/gdbtcl2 ; \
+ for i in *.tcl images/*.gif images2/*.gif images/icons.txt images2/icons.txt tclIndex help/*.html help/index.toc help/images/*.gif; \
+ do \
+ $(INSTALL_DATA) $$i $(datadir)/gdbtcl/$$i ; \
+ done ;
# end-sanitize-gdbtk
@$(MAKE) DO=install "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do
else \
true ; \
fi ; \
- rm -f $(bindir)/$$transformed_name $(man1dir)/$$transformed_name.1
+ rm -f $(bindir)/$$transformed_name$(EXEEXT) $(man1dir)/$$transformed_name.1
+ # start-sanitize-gdbtk
+ rm -rf $(datadir)/gdbtcl
+ # end-sanitize-gdbtk
@$(MAKE) DO=uninstall "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do
# We do this by grepping through sources. If that turns out to be too slow,
@echo '#include "ansidecl.h"' >>init.c-tmp
@echo 'extern void initialize_all_files PARAMS ((void));' >>init.c-tmp
@echo 'void initialize_all_files PARAMS ((void)) {' >>init.c-tmp
- @echo $(OBS) $(TSOBS) | \
+ @-echo $(OBS) $(TSOBS) | \
tr ' ' '\012' | \
sed -e '/^Onindy.o/d' \
-e '/^nindy.o/d' \
-e '/[a-z0-9A-Z_]*-exp.tab.o/d' \
-e 's/\.o/.c/' \
-e 's|\([^ ][^ ]*\)|$(srcdir)/\1|g' | \
- xargs grep '^_initialize_[a-z_0-9A-Z]* *(' | \
+ while read f; do grep '^_initialize_[a-z_0-9A-Z]* *(' $$f 2>/dev/null; done | \
sed -e 's/^.*://' -e 's/^\([a-z_0-9A-Z]*\).*/ {extern void \1 PARAMS ((void)); \1 ();}/' >>init.c-tmp
@echo '}' >>init.c-tmp
@mv init.c-tmp init.c
.PRECIOUS: init.c
# Removing the old gdb first works better if it is running, at least on SunOS.
-gdb: $(OBS) $(TSOBS) $(ADD_DEPS) $(CDEPS) init.o
- rm -f gdb
- $(HLDENV) $(CC_LD) $(INTERNAL_LDFLAGS) $(WIN32LDAPP) -o gdb \
+gdb$(EXEEXT): $(OBS) $(TSOBS) $(ADD_DEPS) $(CDEPS) init.o
+ rm -f gdb$(EXEEXT)
+ $(HLDENV) $(CC_LD) $(INTERNAL_LDFLAGS) $(WIN32LDAPP) -o gdb$(EXEEXT) \
init.o $(OBS) $(TSOBS) $(ADD_FILES) $(CLIBS) $(LOADLIBES)
nlm: force
#load ../bfd/libbfd.a
#load ../readline/libreadline.a
#load ../mmalloc/libmmalloc.a
+ #load ../intl/libintl.a
#load -ltermcap
#load `echo " "$(DEPFILES) | sed -e 's/\.o/.c/g' -e 's, , ../,g'`
echo "Load .c corresponding to:" $(DEPFILES)
# gdb and put a copy in gdb1, and you can run it with "gdb gdb1".
# Removing gdb1 before the copy is the right thing if gdb1 is open
# in another process.
-gdb1: gdb
- rm -f gdb1
- cp gdb gdb1
-
-### fixme - this can't be right.
-# This checks the configure.in file versus the config/ directory.
-config-check: config-check-hosts config-check-targets
-config-check-hosts:
- grep gdb_host= $(srcdir)/configure.in | \
- sed -e 's/.*gdb_host=//' -e 's/ ;;$$/.mh/' | sort -u >HOSTconf.o
- (cd $(srcdir)/config; ls *.mh) >HOSTdir.o
- diff -u HOSTconf.o HOSTdir.o
-
-### fixme - nor can this.
-config-check-targets:
- grep gdb_target= $(srcdir)/configure.in | \
- sed -e 's/.*gdb_target=//' -e 's/ ;;$$/.mh/' | sort -u >TARGconf.o
- (cd $(srcdir)/config; ls *.mt) >TARGdir.o
- diff -u HOSTconf.o HOSTdir.o
+gdb1$(EXEEXT): gdb$(EXEEXT)
+ rm -f gdb1$(EXEEXT)
+ cp gdb$(EXEEXT) gdb1$(EXEEXT)
# FIXME. These are not generated by "make depend" because they only are there
# for some machines.
@$(MAKE) $(FLAGS_TO_PASS) DO=clean "DODIRS=$(SUBDIRS)" subdir_do
rm -f *.o *.a $(ADD_FILES) *~ init.c-tmp
rm -f init.c version.c
- rm -f gdb core make.log libgdb-files
- rm -f gdb[0-9]
+ rm -f gdb$(EXEEXT) core make.log libgdb-files
+ rm -f gdb[0-9]$(EXEEXT)
# This used to depend on c-exp.tab.c m2-exp.tab.c TAGS
# I believe this is wrong; the makefile standards for distclean just
rm -f config.log config.cache
rm -f Makefile
-maintainer-clean realclean: distclean clean
+maintainer-clean: local-maintainer-clean do-maintainer-clean distclean
+realclean: maintainer-clean
+
+local-maintainer-clean:
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
- @$(MAKE) $(FLAGS_TO_PASS) DO=maintainer-clean "DODIRS=$(SUBDIRS)" subdir_do
rm -f c-exp.tab.c jv-exp.tab.c f-exp.tab.c m2-exp.tab.c
rm -f TAGS $(INFOFILES)
+ rm -f $(YYFILES)
rm -f nm.h tm.h xm.h config.status
+do-maintainer-clean:
+ @$(MAKE) $(FLAGS_TO_PASS) DO=maintainer-clean "DODIRS=$(SUBDIRS)" \
+ subdir_do
+
diststuff: $(DISTSTUFF)
cd doc; $(MAKE) $(MFLAGS) all-doc
# Makefile.in, but that was a pretty big annoyance.
c-exp.tab.o: c-exp.tab.c
c-exp.tab.c: c-exp.y
- $(YACC) $(YFLAGS) $(srcdir)/c-exp.y
+ $(BISON) $(YFLAGS) -o c-exp.tmp $(srcdir)/c-exp.y
-sed -e '/extern.*malloc/d' \
-e '/extern.*realloc/d' \
-e '/extern.*free/d' \
-e 's/malloc/xmalloc/g' \
-e 's/realloc/xrealloc/g' \
-e '/^#line.*y.tab.c/d' \
- < y.tab.c > c-exp.new
- -rm y.tab.c
+ < c-exp.tmp > c-exp.new
+ -rm c-exp.tmp
mv c-exp.new ./c-exp.tab.c
jv-exp.tab.o: jv-exp.tab.c
jv-exp.tab.c: jv-exp.y
- $(YACC) $(YFLAGS) $(srcdir)/jv-exp.y
+ $(BISON) $(YFLAGS) -o jv-exp.tmp $(srcdir)/jv-exp.y
-sed -e '/extern.*malloc/d' \
-e '/extern.*realloc/d' \
-e '/extern.*free/d' \
-e 's/malloc/xmalloc/g' \
-e 's/realloc/xrealloc/g' \
-e '/^#line.*y.tab.c/d' \
- < y.tab.c > jv-exp.new
- -rm y.tab.c
+ < jv-exp.tmp > jv-exp.new
+ -rm jv-exp.tmp
mv jv-exp.new ./jv-exp.tab.c
f-exp.tab.o: f-exp.tab.c
f-exp.tab.c: f-exp.y c-exp.tab.c
- $(YACC) $(YFLAGS) $(srcdir)/f-exp.y
+ $(BISON) $(YFLAGS) -o f-exp.tmp $(srcdir)/f-exp.y
-sed -e '/extern.*malloc/d' \
-e '/extern.*realloc/d' \
-e '/extern.*free/d' \
-e 's/malloc/xmalloc/g' \
-e 's/realloc/xrealloc/g' \
-e '/^#line.*y.tab.c/d' \
- < y.tab.c > f-exp.new
- -rm y.tab.c
+ < f-exp.tmp > f-exp.new
+ -rm f-exp.tmp
mv f-exp.new ./f-exp.tab.c
# m2-exp.tab.c is generated in objdir from m2-exp.y if it doesn't exist
# else.
m2-exp.tab.o: m2-exp.tab.c
m2-exp.tab.c: m2-exp.y
- $(YACC) $(YFLAGS) $(srcdir)/m2-exp.y
+ $(BISON) $(YFLAGS) -o m2-exp.tmp $(srcdir)/m2-exp.y
-sed -e '/extern.*malloc/d' \
-e '/extern.*realloc/d' \
-e '/extern.*free/d' \
-e 's/malloc/xmalloc/g' \
-e 's/realloc/xrealloc/g' \
-e '/^#line.*y.tab.c/d' \
- < y.tab.c > m2-exp.new
- -rm y.tab.c
+ < m2-exp.tmp > m2-exp.new
+ -rm m2-exp.tmp
mv m2-exp.new ./m2-exp.tab.c
# These files are updated atomically, so make never has to remove them
$(inferior_h) target.h terminal.h gdbthread.h gdb_string.h
# start-sanitize-gdbtk
+gdbres.o: gdb.rc gdbtool.ico
+ $(WINDRES) --include $(srcdir) $(srcdir)/gdb.rc gdbres.o
+
gdbtk.o: gdbtk.c $(defs_h) $(symtab_h) $(inferior_h) $(command_h) \
- $(bfd_h) symfile.h objfiles.h target.h gdb_string.h
+ $(bfd_h) symfile.h objfiles.h target.h gdb_string.h $(tracepoint_h)
$(CC) -c $(INTERNAL_CFLAGS) $(IDE_CFLAGS) $(ITCL_CFLAGS) $(TIX_CFLAGS) \
$(TCL_CFLAGS) $(TK_CFLAGS) $(X11_CFLAGS) \
$(srcdir)/gdbtk.c -DGDBTK_LIBRARY=\"$(datadir)/gdbtcl\"
+
+tracepoint.o: tracepoint.c $(defs_h) $(symtab_h) $(frame_h) $(tracepoint_h) \
+ $(gdbtypes_h) $(expression_h) $(gdbcmd_h) $(value_h) target.h \
+ language.h gdb_string.h $(readline_headers)
# end-sanitize-gdbtk
gdbtypes.o: gdbtypes.c $(bfd_h) complaints.h $(defs_h) $(expression_h) \
remote-array.o: remote-array.c $(wait_h) $(defs_h) $(gdbcore_h) target.h \
gdb_string.h $(command_h) serial.h monitor.h $(remote_utils_h)
+remote-rdi.o: remote-rdi.c $(wait_h) $(defs_h) $(gdbcore_h) \
+ $(inferior_h) gdb_string.h
+
+rdi-share/libangsd.a: force
+ @dir=rdi-share; \
+ if [ -f ./$${dir}/Makefile ] ; then \
+ r=`pwd`; export r; \
+ srcroot=`cd $(srcdir); pwd`; export srcroot; \
+ (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) all); \
+ else \
+ true; \
+ fi
+
+remote-d10v.o: remote-d10v.c $(bfd_h) $(wait_h) $(defs_h) $(gdbcmd_h) \
+ $(inferior_h) $(remote_utils_h) symfile.h terminal.h gdb_string.h
+
remote-rdp.o: remote-rdp.c $(wait_h) $(defs_h) $(gdbcore_h) \
$(inferior_h) gdb_string.h