Create subdir data-directory.
authorDoug Evans <dje@google.com>
Wed, 6 Oct 2010 16:02:45 +0000 (16:02 +0000)
committerDoug Evans <dje@google.com>
Wed, 6 Oct 2010 16:02:45 +0000 (16:02 +0000)
* 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.

testsuite/
* gdb.base/catch-syscall.exp (do_syscall_tests): Update location
of syscall staging area.

gdb/ChangeLog
gdb/Makefile.in
gdb/configure
gdb/configure.ac
gdb/data-directory/Makefile.in [new file with mode: 0644]
gdb/python/lib/gdb/__init__.py [new file with mode: 0644]
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/catch-syscall.exp

index 8bfa6bfdcf49af4d56adb92025899ac804139af3..3031dc4bc6681616e758c3a19041d4e0119f5082 100644 (file)
@@ -1,3 +1,22 @@
+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.
index 21354764e43fde2b50da3d0719b07736b1fec50d..bfb4b59634b0305ee7d0a5c65638cd493b994de0 100644 (file)
@@ -870,16 +870,9 @@ COMMON_OBS = $(DEPFILES) $(CONFIG_OBS) $(YYOBJ) \
        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.
@@ -910,41 +903,11 @@ generated_files = config.h observer.h observer.inc ada-lex.c \
        $(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
@@ -1003,9 +966,7 @@ gdb.z:gdb.1
 # 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 \
@@ -1178,6 +1139,11 @@ all-lib: gnulib/Makefile
        @$(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.
 #
@@ -1294,6 +1260,13 @@ gnulib/Makefile: gnulib/Makefile.in gnulib/Makefile.in config.status @frags@
          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 \
index bee391d7c7914d6224cc1fec96e6266ac1368666..dd3d04cf939992213e83d1a7f6d8d67331baf6d4 100755 (executable)
@@ -15891,7 +15891,7 @@ ac_config_links="$ac_config_links $ac_config_links_1"
 $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"
 
@@ -16658,6 +16658,7 @@ do
     "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;;
index e462274a0901ee966a869d0158eeaee9cfbf6324..1f00c924be82bd2906b6b5a98c29ca69a9797678 100644 (file)
@@ -2140,7 +2140,7 @@ dnl  At the moment, we just assume it's UTF-8.
 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)
diff --git a/gdb/data-directory/Makefile.in b/gdb/data-directory/Makefile.in
new file mode 100644 (file)
index 0000000..92a690b
--- /dev/null
@@ -0,0 +1,186 @@
+# 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
diff --git a/gdb/python/lib/gdb/__init__.py b/gdb/python/lib/gdb/__init__.py
new file mode 100644 (file)
index 0000000..102939b
--- /dev/null
@@ -0,0 +1,14 @@
+# 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/>.
index f7d3eb5c258946325481939456b0aeda69bd79e2..ded8355d92a5e09af69cf3acc9c05b441aeb6030 100644 (file)
@@ -1,3 +1,8 @@
+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.
index 2d9cad420002ab04dd028ff0721622041e69041b..7845655c9e80c4aa9aa0f39e4adf37a147a734d7 100644 (file)
@@ -278,7 +278,7 @@ proc do_syscall_tests {} {
     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"