public inbox for gdb-cvs@sourceware.org
help / color / mirror / Atom feed
* [binutils-gdb] gdb/build: apply silent-rules.mk to the data-directory Makefile.in
@ 2024-04-08  9:27 Andrew Burgess
  0 siblings, 0 replies; only message in thread
From: Andrew Burgess @ 2024-04-08  9:27 UTC (permalink / raw)
  To: gdb-cvs

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=76bbe1f5970dd5ba5642c5e31825786226619c56

commit 76bbe1f5970dd5ba5642c5e31825786226619c56
Author: Andrew Burgess <aburgess@redhat.com>
Date:   Sat Apr 6 17:28:37 2024 +0100

    gdb/build: apply silent-rules.mk to the data-directory Makefile.in
    
    This commit makes use of gdb/silent-rules.mk in the data-directory
    Makefile.in.  I've only updated the rules that actually generate
    things, I've not touched the install or uninstall rules, this matches
    gdb/Makefile.in.
    
    I've not managed to completely silence all of the recipe output, the
    mkinstalldirs command outputs some diagnostic text which looks like
    this:
    
        GEN    stamp-python
      mkdir -p -- ./python/gdb
      mkdir -p -- ./python/gdb/command
      mkdir -p -- ./python/gdb/dap
      mkdir -p -- ./python/gdb/function
      mkdir -p -- ./python/gdb/printer
    
    I have a patch for mkinstalldirs that fixes this (by adding a new
    --silent command line flag), but that patch needs to be submitted to
    automake, then an updated mkinstalldirs sync'd to the gcc repository,
    and then copied into the binutils-gdb repository... so I'm leaving
    that for a future project.
    
    Then the guild compiler also emits some diagnostic output, which looks
    like this:
    
        GEN    stamp-guile
      mkdir -p -- ./guile/.
      mkdir -p -- ./guile/gdb
      wrote `./gdb.go'
      wrote `gdb/experimental.go'
      wrote `gdb/iterator.go'
      wrote `gdb/printing.go'
      wrote `gdb/support.go'
      wrote `gdb/types.go'
    
    The 'wrote' lines are from the guild compiler.  The only way to
    silence these would be to redirect stdout to /dev/null I think.  I did
    prototype this, but wasn't 100% convinced about that part of the
    patch, so I've decided to leave that for another day.
    
    I did need to add a new SILENT_ECHO variable to silent-rules.mk, this
    is set to a suitable 'echo' command to use within recipes.  When we
    are in silent mode then I use the 'true' command, while in verbose
    mode we actually use 'echo'.
    
    So, other than the issues outlined above, the output when building the
    data-directory is now greatly reduced, and more inline with the output
    when building in the gdb/ directory.
    
    There should be no change in what is actually built after this commit.
    
    Approved-By: Simon Marchi <simon.marchi@efficios.com>

Diff:
---
 gdb/data-directory/Makefile.in | 40 +++++++++++++++++++++++-----------------
 gdb/silent-rules.mk            |  4 ++++
 2 files changed, 27 insertions(+), 17 deletions(-)

diff --git a/gdb/data-directory/Makefile.in b/gdb/data-directory/Makefile.in
index edfa52c2217..720b983ef6c 100644
--- a/gdb/data-directory/Makefile.in
+++ b/gdb/data-directory/Makefile.in
@@ -36,6 +36,8 @@ exec_prefix = @exec_prefix@
 datarootdir = @datarootdir@
 datadir = @datadir@
 
+include $(srcdir)/../silent-rules.mk
+
 SHELL = @SHELL@
 
 LN_S = @LN_S@
@@ -202,7 +204,7 @@ FLAGS_TO_PASS = \
 all: stamp-syscalls stamp-python stamp-guile stamp-system-gdbinit
 
 %.xml: @MAINTAINER_MODE_TRUE@ %.xml.in apply-defaults.xsl linux-defaults.xml.in
-	$(XSLTPROC) -o $(SYSCALLS_SRCDIR)/$@ $(SYSCALLS_SRCDIR)/apply-defaults.xsl\
+	$(ECHO_GEN) $(XSLTPROC) -o $(SYSCALLS_SRCDIR)/$@ $(SYSCALLS_SRCDIR)/apply-defaults.xsl \
 		$(SYSCALLS_SRCDIR)/$@.in
 
 .PHONY: syscall-xml
@@ -219,16 +221,17 @@ clean-syscall-xml:
 # 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)' ; \
+	$(ECHO_GEN)
+	$(SILENCE) rm -rf ./$(SYSCALLS_DIR)
+	$(SILENCE) mkdir ./$(SYSCALLS_DIR)
+	$(SILENCE) 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 $@
+	$(SILENCE) touch $@
 
 .PHONY: clean-syscalls
 clean-syscalls:
@@ -262,8 +265,9 @@ uninstall-syscalls:
 	done
 
 stamp-python: Makefile $(PYTHON_FILES)
-	rm -rf ./$(PYTHON_DIR)
-	files='$(PYTHON_FILES)' ; \
+	$(ECHO_GEN)
+	$(SILENCE) rm -rf ./$(PYTHON_DIR)
+	$(SILENCE) files='$(PYTHON_FILES)' ; \
 	if test "x$$files" != x ; then \
 	  for file in $$files ; do \
 	    dir=`echo "$$file" | sed 's,/[^/]*$$,,'` ; \
@@ -271,7 +275,7 @@ stamp-python: Makefile $(PYTHON_FILES)
 	    $(INSTALL_DATA) $(PYTHON_SRCDIR)/$$file ./$(PYTHON_DIR)/$$dir ; \
 	  done ; \
 	fi
-	touch $@
+	$(SILENCE) touch $@
 
 .PHONY: clean-python
 clean-python:
@@ -305,8 +309,9 @@ uninstall-python:
 	fi
 
 stamp-guile: Makefile $(GUILE_SOURCE_FILES)
-	rm -rf ./$(GUILE_DIR)
-	if test "x$(GUILE_FILES)" != x ; then \
+	$(ECHO_GEN)
+	$(SILENCE) rm -rf ./$(GUILE_DIR)
+	$(SILENCE) if test "x$(GUILE_FILES)" != x ; then \
 	  files='$(GUILE_SOURCE_FILES)' ; \
 	  for file in $$files ; do \
 	    dir=`echo "$$file" | sed 's,/[^/]*$$,,'` ; \
@@ -317,11 +322,11 @@ stamp-guile: Makefile $(GUILE_SOURCE_FILES)
 	  cd ./$(GUILE_DIR) ; \
 	  for go in $$files ; do \
 	    source="`echo $$go | sed 's/\.go$$/.scm/'`" ; \
-	    echo $(GUILD) compile $(GUILD_COMPILE_FLAGS) -o "$$go" "$$source" ; \
+	    $(SILENT_ECHO) $(GUILD) compile $(GUILD_COMPILE_FLAGS) -o "$$go" "$$source" ; \
 	    $(GUILD) compile $(GUILD_COMPILE_FLAGS) -o "$$go" "$$source" || exit 1 ; \
 	  done ; \
 	fi
-	touch $@
+	$(SILENCE) touch $@
 
 .PHONY: clean-guile
 clean-guile:
@@ -355,16 +360,17 @@ uninstall-guile:
 	fi
 
 stamp-system-gdbinit: Makefile $(SYSTEM_GDBINIT_FILES)
-	rm -rf ./$(SYSTEM_GDBINIT_DIR)
-	mkdir ./$(SYSTEM_GDBINIT_DIR)
-	files='$(SYSTEM_GDBINIT_FILES)' ; \
+	$(ECHO_GEN)
+	$(SILENCE) rm -rf ./$(SYSTEM_GDBINIT_DIR)
+	$(SILENCE) mkdir ./$(SYSTEM_GDBINIT_DIR)
+	$(SILENCE) files='$(SYSTEM_GDBINIT_FILES)' ; \
 	for file in $$files ; do \
 	  f=$(SYSTEM_GDBINIT_SRCDIR)/$$file ; \
 	  if test -f $$f ; then \
 	    $(INSTALL_DATA) $$f ./$(SYSTEM_GDBINIT_DIR) ; \
 	  fi ; \
 	done
-	touch $@
+	$(SILENCE) touch $@
 
 .PHONY: clean-system-gdbinit
 clean-system-gdbinit:
@@ -438,7 +444,7 @@ clean-info:
 MAKEOVERRIDES=
 
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	cd .. && $(SHELL) ./config.status data-directory/Makefile
+	$(ECHO_GEN) cd .. && $(SHELL) ./config.status $(SILENT_FLAG) data-directory/Makefile
 
 # Disable implicit make rules.
 include $(srcdir)/../disable-implicit-rules.mk
diff --git a/gdb/silent-rules.mk b/gdb/silent-rules.mk
index 36791f6683f..43dc2bf3aca 100644
--- a/gdb/silent-rules.mk
+++ b/gdb/silent-rules.mk
@@ -20,4 +20,8 @@ ECHO_RANLIB = @echo "  RANLIB $@";
 SILENCE = @
 # Silence libtool.
 SILENT_FLAG = --silent
+# Used in shell snippets instead of 'echo'.
+SILENT_ECHO = true
+else
+SILENT_ECHO = echo
 endif

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2024-04-08  9:27 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-08  9:27 [binutils-gdb] gdb/build: apply silent-rules.mk to the data-directory Makefile.in Andrew Burgess

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).