# 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 . 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 .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 cd $(top_builddir) && $(MAKE) data-directory/Makefile