[RFA 08/10] Minimize yacc and lex output

Tom Tromey tom@tromey.com
Mon Jul 2 20:16:00 GMT 2018


This minimizes the "make" output from the yacc and lex rules,
following the same technique as the rest of the Makefile.

The lex rule had a special case to deal with the situation where flex
is not available.  I don't think this is needed, so I removed it.  If
flex is truly unavailable, the person building gdb can simply "touch"
the output file.

gdb/ChangeLog
2018-07-02  Tom Tromey  <tom@tromey.com>

	* Makefile.in (%.c: %.y): Use ECHO_YACC.
	(%.c: %.l): Use ECHO_LEX.  Just fail if flex not available.
	* silent-rules.mk (ECHO_YACC, ECHO_LEX): New variables.
---
 gdb/ChangeLog       |  6 ++++++
 gdb/Makefile.in     | 17 +++++------------
 gdb/silent-rules.mk |  2 ++
 3 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index 047d06b6121..36d2c44a2a1 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -2477,9 +2477,9 @@ po/$(PACKAGE).pot: force
 # Makefile.in, but that was a pretty big annoyance.
 
 %.c: %.y
-	$(SHELL) $(YLWRAP) $< y.tab.c $@.tmp -- $(YACC) $(YFLAGS) \
-		|| (rm -f $@.tmp; false)
-	sed -e '/extern.*malloc/d' \
+	$(ECHO_YACC) $(SHELL) $(YLWRAP) $< y.tab.c $@.tmp -- \
+		$(YACC) $(YFLAGS) || (rm -f $@.tmp; false)
+	@sed -e '/extern.*malloc/d' \
 	     -e '/extern.*realloc/d' \
 	     -e '/extern.*free/d' \
 	     -e '/include.*malloc.h/d' \
@@ -2493,8 +2493,7 @@ po/$(PACKAGE).pot: force
 	  rm -f $@.tmp && \
 	  mv $@.new $@
 %.c: %.l
-	if [ "$(FLEX)" ] && $(FLEX) --version >/dev/null 2>&1; then \
-	    $(FLEX) -t $<  \
+	$(ECHO_LEX) $(FLEX) -t $<  \
 	    | sed -e '/extern.*malloc/d' \
 	        -e '/extern.*realloc/d' \
 	        -e '/extern.*free/d' \
@@ -2505,13 +2504,7 @@ po/$(PACKAGE).pot: force
 	        -e 's/\([ \t;,(]\)free$$/\1xfree/g' \
 		-e 's/yy_flex_xrealloc/yyxrealloc/g' \
 	      > $@.new && \
-	    mv $@.new $@; \
-	elif [ -f $@ ]; then \
-	    echo "Warning: $*.c older than $*.l and flex not available."; \
-	else \
-	    echo "$@ missing and flex not available."; \
-	    false; \
-	fi
+	    mv $@.new $@
 
 .PRECIOUS: ada-lex.c
 
diff --git a/gdb/silent-rules.mk b/gdb/silent-rules.mk
index ade77ad1c51..7ed73a767c6 100644
--- a/gdb/silent-rules.mk
+++ b/gdb/silent-rules.mk
@@ -11,5 +11,7 @@ ECHO_GEN_XML_BUILTIN_GENERATED = \
               @echo "  GEN    xml-builtin-generated.c";
 ECHO_INIT_C =  echo "  GEN    init.c" ||
 ECHO_SIGN =   @echo "  SIGN   gdb";
+ECHO_YACC =   @echo "  YACC   $@";
+ECHO_LEX  =   @echo "  LEX    $@";
 SILENCE = @
 endif
-- 
2.13.6



More information about the Binutils mailing list