+2010-10-06 Doug Evans <dje@google.com>
+
+ Create subdir data-directory.
+ * Makefile.in (XML_SYSCALL_DIR, XML_SYSCALL_FILES): Moved to
+ data-directory/Makefile.in.
+ (SUBDIRS): Add data-directory.
+ (all): Remove xml-syscall-copy dependency.
+ (xml-syscall-copy): Moved to data-directory/Makefile.in as
+ stamp-syscalls.
+ (xml-syscall-install): Moved to data-directory/Makefile.in as
+ install-syscalls.
+ (install-only): Remove xml-syscall-install dependency.
+ (all-data-directory): New rule.
+ (data-directory/Makefile): New rule.
+ * configure.ac (AC_OUTPUT): Add data-directory/Makefile.
+ * configure: Regenerate.
+ * data-directory/Makefile.in: New file.
+ * python/lib/gdb/__init__.py: New file.
+
2010-10-06 Joel Brobecker <brobecker@adacore.com>
Fix ARI warnings in advance_wild_match.
inferior.o osdata.o gdb_usleep.o record.o gcore.o \
jit.o progspace.o
-# Definitions for the syscall's XML files and dir
-XML_SYSCALLS_DIR = syscalls/
-XML_SYSCALLS_FILES = gdb-syscalls.dtd \
- ppc-linux.xml ppc64-linux.xml \
- i386-linux.xml amd64-linux.xml \
- sparc-linux.xml sparc64-linux.xml
-
TSOBS = inflow.o
-SUBDIRS = @subdirs@
+SUBDIRS = @subdirs@ data-directory
CLEANDIRS = $(SUBDIRS) gnulib
# For now, shortcut the "configure GDB for fewer languages" stuff.
$(COMPILE) $<
$(POSTCOMPILE)
-all: gdb$(EXEEXT) $(CONFIG_ALL) xml-syscall-copy
+all: gdb$(EXEEXT) $(CONFIG_ALL)
@$(MAKE) $(FLAGS_TO_PASS) DO=all "DODIRS=`echo $(SUBDIRS) | sed 's/testsuite//'`" subdir_do
.PHONY: all-tui
all-tui: $(TUI)$(EXEEXT)
-# This is needed for running GDB from the build directory
-.PHONY: xml-syscall-copy
-xml-syscall-copy:
- if [ "`cd $(srcdir) && pwd`" != "`pwd`" ] ; then \
- mkdir -p ./$(XML_SYSCALLS_DIR) ; \
- list='$(XML_SYSCALLS_FILES)' ; \
- for file in $$list ; do \
- f=$(srcdir)/$(XML_SYSCALLS_DIR)/$$file ; \
- if test -f $$f ; then \
- $(INSTALL_DATA) $$f \
- ./$(XML_SYSCALLS_DIR) ; \
- fi ; \
- done ; \
- fi ;
-
-# This target is responsible for properly installing the syscalls'
-# XML files in the system.
-.PHONY: xml-syscall-install
-xml-syscall-install:
- $(SHELL) $(srcdir)/../mkinstalldirs \
- $(DESTDIR)$(GDB_DATADIR)/$(XML_SYSCALLS_DIR) ; \
- list='$(XML_SYSCALLS_FILES)' ; \
- for file in $$list ; do \
- f=$(srcdir)/$(XML_SYSCALLS_DIR)/$$file ; \
- if test -f $$f ; then \
- $(INSTALL_DATA) $$f \
- $(DESTDIR)$(GDB_DATADIR)/$(XML_SYSCALLS_DIR) ; \
- fi ; \
- done ;
-
installcheck:
# The check target can not use subdir_do, because subdir_do does not
# install-only is intended to address that need.
install: all install-only
-# The "install-only" target also installs the syscalls' XML files in
-# the system.
-install-only: $(CONFIG_INSTALL) xml-syscall-install
+install-only: $(CONFIG_INSTALL)
transformed_name=`t='$(program_transform_name)'; \
echo gdb | sed -e "$$t"` ; \
if test "x$$transformed_name" = x; then \
@$(MAKE) $(FLAGS_TO_PASS) DO=all DODIRS=gnulib subdir_do
.PHONY: all-lib
+# Convenience rule to handle recursion.
+.PHONY: all-data-directory
+all-data-directory: data-directory/Makefile
+ @$(MAKE) $(FLAGS_TO_PASS) DO=all DODIRS=data-directory subdir_do
+
# Create a library of the gdb object files and build GDB by linking
# against that.
#
CONFIG_LINKS= \
$(SHELL) config.status
+data-directory/Makefile: data-directory/Makefile.in config.status @frags@
+ CONFIG_FILES="data-directory/Makefile" \
+ CONFIG_COMMANDS="depfiles" \
+ CONFIG_HEADERS= \
+ CONFIG_LINKS= \
+ $(SHELL) config.status
+
config.h: stamp-h ; @true
stamp-h: $(srcdir)/config.in config.status
CONFIG_HEADERS=config.h:config.in \
$as_echo "#define GDB_DEFAULT_HOST_CHARSET \"UTF-8\"" >>confdefs.h
-ac_config_files="$ac_config_files Makefile .gdbinit:gdbinit.in gnulib/Makefile"
+ac_config_files="$ac_config_files Makefile .gdbinit:gdbinit.in gnulib/Makefile data-directory/Makefile"
ac_config_commands="$ac_config_commands default"
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
".gdbinit") CONFIG_FILES="$CONFIG_FILES .gdbinit:gdbinit.in" ;;
"gnulib/Makefile") CONFIG_FILES="$CONFIG_FILES gnulib/Makefile" ;;
+ "data-directory/Makefile") CONFIG_FILES="$CONFIG_FILES data-directory/Makefile" ;;
"default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
*) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "UTF-8",
[Define to be a string naming the default host character set.])
-AC_OUTPUT(Makefile .gdbinit:gdbinit.in gnulib/Makefile,
+AC_OUTPUT(Makefile .gdbinit:gdbinit.in gnulib/Makefile data-directory/Makefile,
[
case x$CONFIG_HEADERS in
xconfig.h:config.in)
--- /dev/null
+# Copyright (C) 2010 Free Software Foundation, Inc.
+
+# Makefile for building a staged copy of the data-directory.
+# This file is part of GDB.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+srcdir = @srcdir@
+SYSCALLS_SRCDIR = $(srcdir)/../syscalls
+PYTHON_SRCDIR = $(srcdir)/../python/lib
+VPATH = $(srcdir):$(SYSCALLS_SRCDIR):$(PYTHON_SRCDIR)
+
+top_srcdir = @top_srcdir@
+top_builddir = @top_builddir@
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+datarootdir = @datarootdir@
+datadir = @datadir@
+
+SHELL = @SHELL@
+
+LN_S = @LN_S@
+
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_DIR = $(SHELL) $(srcdir)/../../mkinstalldirs
+
+GDB_DATADIR = @GDB_DATADIR@
+
+SYSCALLS_DIR = syscalls
+SYSCALLS_INSTALL_DIR = $(DESTDIR)/$(GDB_DATADIR)/$(SYSCALLS_DIR)
+SYSCALLS_FILES = \
+ gdb-syscalls.dtd \
+ ppc-linux.xml ppc64-linux.xml \
+ i386-linux.xml amd64-linux.xml \
+ sparc-linux.xml sparc64-linux.xml
+
+PYTHON_DIR = python
+PYTHON_INSTALL_DIR = $(DESTDIR)/$(GDB_DATADIR)/$(PYTHON_DIR)
+PYTHON_FILES = \
+ gdb/__init__.py
+
+# Host-dependent makefile fragment comes in here.
+@host_makefile_frag@
+# End of host-dependent makefile fragment
+
+.PHONY: all
+all: stamp-syscalls stamp-python
+
+# For portability's sake, we need to handle systems that don't have
+# symbolic links.
+stamp-syscalls: Makefile $(SYSCALLS_FILES)
+ rm -rf ./$(SYSCALLS_DIR)
+ mkdir ./$(SYSCALLS_DIR)
+ files='$(SYSCALLS_FILES)' ; \
+ for file in $$files ; do \
+ f=$(SYSCALLS_SRCDIR)/$$file ; \
+ if test -f $$f ; then \
+ $(INSTALL_DATA) $$f ./$(SYSCALLS_DIR) ; \
+ fi ; \
+ done
+ touch $@
+
+.PHONY: clean-syscalls
+clean-syscalls:
+ rm -rf $(SYSCALLS_DIR)
+ rm -f stamp-syscalls
+
+# This target is responsible for properly installing the syscalls'
+# XML files in the system.
+.PHONY: install-syscalls
+install-syscalls:
+ $(INSTALL_DIR) $(SYSCALLS_INSTALL_DIR)
+ files='$(SYSCALLS_FILES)' ; \
+ for file in $$files; do \
+ f=$(SYSCALLS_SRCDIR)/$$file ; \
+ if test -f $$f ; then \
+ $(INSTALL_DATA) $$f $(SYSCALLS_INSTALL_DIR) ; \
+ fi ; \
+ done
+
+.PHONY: uninstall-syscalls
+uninstall-syscalls:
+ files='$(SYSCALLS_FILES)' ; \
+ for file in $$files ; do \
+ slashdir=`echo "/$$file" | sed 's,/[^/]*$$,,'` ; \
+ rm -f $(SYSCALLS_INSTALL_DIR)/$$file ; \
+ while test "x$$file" != "x$$slashdir" ; do \
+ rmdir 2>/dev/null "$(SYSCALLS_INSTALL_DIR)$$slashdir" ; \
+ file="$$slashdir" ; \
+ slashdir=`echo "$$file" | sed 's,/[^/]*$$,,'` ; \
+ done \
+ done
+
+stamp-python: Makefile $(PYTHON_FILES)
+ rm -rf ./$(PYTHON_DIR)
+ files='$(PYTHON_FILES)' ; \
+ for file in $$files ; do \
+ dir=`echo "$$file" | sed 's,/[^/]*$$,,'` ; \
+ $(INSTALL_DIR) ./$(PYTHON_DIR)/$$dir ; \
+ $(INSTALL_DATA) $(PYTHON_SRCDIR)/$$file ./$(PYTHON_DIR)/$$dir ; \
+ done
+ touch $@
+
+.PHONY: clean-python
+clean-python:
+ rm -rf $(PYTHON_DIR)
+ rm -f stamp-python
+
+.PHONY: install-python
+install-python:
+ files='$(PYTHON_FILES)' ; \
+ for file in $$files ; do \
+ dir=`echo "$$file" | sed 's,/[^/]*$$,,'` ; \
+ $(INSTALL_DIR) $(PYTHON_INSTALL_DIR)/$$dir ; \
+ $(INSTALL_DATA) ./$(PYTHON_DIR)/$$file $(PYTHON_INSTALL_DIR)/$$dir ; \
+ done
+
+.PHONY: uninstall-python
+uninstall-python:
+ files='$(PYTHON_FILES)' ; \
+ for file in $$files ; do \
+ slashdir=`echo "/$$file" | sed 's,/[^/]*$$,,'` ; \
+ rm -f $(PYTHON_INSTALL_DIR)/$$file ; \
+ while test "x$$file" != "x$$slashdir" ; do \
+ rmdir 2>/dev/null "$(PYTHON_INSTALL_DIR)$$slashdir" ; \
+ file="$$slashdir" ; \
+ slashdir=`echo "$$file" | sed 's,/[^/]*$$,,'` ; \
+ done \
+ done
+
+# Traditionally "install" depends on "all". But it may be useful
+# not to; for example, if the user has made some trivial change to a
+# source file and doesn't care about rebuilding or just wants to save the
+# time it takes for make to check that all is up to date.
+# install-only is intended to address that need.
+.PHONY: install
+install: all
+ $(MAKE) install-only
+
+.PHONY: install-only
+install-only: install-syscalls install-python
+
+.PHONY: uninstall
+uninstall: uninstall-syscalls uninstall-python
+
+.PHONY: clean
+clean: clean-syscalls clean-python
+
+.PHONY: maintainer-clean realclean distclean
+maintainer-clean realclean distclean: clean
+ rm -f Makefile
+
+.PHONY: check installcheck info dvi pdf html
+.PHONY: install-info install-pdf install-html clean-info
+check installcheck:
+info dvi pdf html:
+install-info install-pdf install-html:
+clean-info:
+
+# GNU Make has an annoying habit of putting *all* the Makefile variables
+# into the environment, unless you include this target as a circumvention.
+# Rumor is that this will be fixed (and this target can be removed)
+# in GNU Make 4.0.
+.NOEXPORT:
+
+# GNU Make 3.63 has a different problem: it keeps tacking command line
+# overrides onto the definition of $(MAKE). This variable setting
+# will remove them.
+MAKEOVERRIDES=
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @frags@
+ cd $(top_builddir) && $(MAKE) data-directory/Makefile
--- /dev/null
+# Copyright (C) 2010 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+2010-10-06 Doug Evans <dje@google.com>
+
+ * gdb.base/catch-syscall.exp (do_syscall_tests): Update location
+ of syscall staging area.
+
2010-10-06 Ken Werner <ken.werner@de.ibm.com>
* gdb.base/gnu_vector.c: Add variable c4.
global gdb_prompt srcdir
# First, we need to set GDB datadir.
- gdb_test_no_output "set data-directory $srcdir/.."
+ gdb_test_no_output "set data-directory [pwd]/../data-directory"
# Verify that the 'catch syscall' help is available
set thistest "help catch syscall"