emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master eaa44ca: Prefer $(info) to @echo


From: Paul Eggert
Subject: master eaa44ca: Prefer $(info) to @echo
Date: Mon, 20 Dec 2021 15:24:09 -0500 (EST)

branch: master
commit eaa44ca40e8da9ba86e6e03b76b41fd6843661d6
Author: Paul Eggert <eggert@cs.ucla.edu>
Commit: Paul Eggert <eggert@cs.ucla.edu>

    Prefer $(info) to @echo
    
    Have GNU Make output some diagnostics directly, instead of forking
    and execing a shell to do it.
    * GNUmakefile (help):
    * doc/lispref/two-volume.make (vol2.pdf, elisp2med-init)
    (elisp2-init):
    * doc/misc/Makefile.in (echo-info, echo-sources):
    * lib-src/Makefile.in (archlibdir, install, check):
    * src/verbose.mk.in (AM_V_AR, AM_V_CC, AM_V_CXX, AM_V_CCLD)
    (AM_V_CXXLD, AM_V_ELC, AM_V_ELN, AM_V_GEN, AM_V_GLOBALS)
    (AM_V_RC):
    * test/Makefile.in (subdirs, subdir-targets):
    Prefer $(info) to @echo.
    * GNUmakefile (MAKECMDGOALS, configure, Makefile):
    Prefer $(warning) to @echo >&2.
    * src/verbose.mk.in (AM_V_ELN): Output target, like the others.
---
 GNUmakefile                 | 62 ++++++++++++++++++++++-----------------------
 doc/lispref/two-volume.make |  6 ++---
 doc/misc/Makefile.in        |  6 ++---
 lib-src/Makefile.in         | 10 ++++----
 src/verbose.mk.in           | 24 +++++++++---------
 test/Makefile.in            |  4 +--
 6 files changed, 56 insertions(+), 56 deletions(-)

diff --git a/GNUmakefile b/GNUmakefile
index 76fd77b..1442cf0 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -36,31 +36,31 @@
 
 ifeq (help,$(filter help,$(MAKECMDGOALS)))
 help:
-       @echo "NOTE:  This is a brief summary of some common make targets."
-       @echo "For more detailed information, please read the files INSTALL,"
-       @echo "INSTALL.REPO, Makefile or visit this URL:"
-       @echo 
"https://www.gnu.org/prep/standards/html_node/Standard-Targets.html";
-       @echo ""
-       @echo "make all              -- compile and build Emacs"
-       @echo "make install          -- install Emacs"
-       @echo "make TAGS             -- update tags tables"
-       @echo "make clean            -- delete built files but preserve 
configuration"
-       @echo "make mostlyclean      -- like 'make clean', but leave those 
files that"
-       @echo "                         usually do not need to be recompiled"
-       @echo "make distclean        -- delete all build and configuration 
files,"
-       @echo "                         leave only files included in source 
distribution"
-       @echo "make maintainer-clean -- delete almost everything that can be 
regenerated"
-       @echo "make extraclean       -- like maintainer-clean, and also delete"
-       @echo "                         backup and autosave files"
-       @echo "make bootstrap        -- delete all compiled files to force a 
new bootstrap"
-       @echo "                         from a clean slate, then build in the 
normal way"
-       @echo "make uninstall        -- remove files installed by 'make 
install'"
-       @echo "make check            -- run the Emacs test suite"
-       @echo "make docs             -- generate Emacs documentation in info 
format"
-       @echo "make html             -- generate documentation in html format"
-       @echo "make ps               -- generate documentation in ps format"
-       @echo "make pdf              -- generate documentation in pdf format "
-       @exit
+       $(info $ NOTE:  This is a brief summary of some common make targets.)
+       $(info $ For more detailed information, please read the files INSTALL,)
+       $(info $ INSTALL.REPO, Makefile or visit this URL:)
+       $(info $ 
https://www.gnu.org/prep/standards/html_node/Standard-Targets.html)
+       $(info $ )
+       $(info $ make all              -- compile and build Emacs)
+       $(info $ make install          -- install Emacs)
+       $(info $ make TAGS             -- update tags tables)
+       $(info $ make clean            -- delete built files but preserve 
configuration)
+       $(info $ make mostlyclean      -- like 'make clean', but leave those 
files that)
+       $(info $                          usually do not need to be recompiled)
+       $(info $ make distclean        -- delete all build and configuration 
files,)
+       $(info $                          leave only files included in source 
distribution)
+       $(info $ make maintainer-clean -- delete almost everything that can be 
regenerated)
+       $(info $ make extraclean       -- like maintainer-clean, and also 
delete)
+       $(info $                          backup and autosave files)
+       $(info $ make bootstrap        -- delete all compiled files to force a 
new bootstrap)
+       $(info $                          from a clean slate, then build in the 
normal way)
+       $(info $ make uninstall        -- remove files installed by 'make 
install')
+       $(info $ make check            -- run the Emacs test suite)
+       $(info $ make docs             -- generate Emacs documentation in info 
format)
+       $(info $ make html             -- generate documentation in html format)
+       $(info $ make ps               -- generate documentation in ps format)
+       $(info $ make pdf              -- generate documentation in pdf format )
+       @:
 
 .PHONY: help
 
@@ -79,7 +79,7 @@ else
 ifeq ($(filter-out %clean,$(or $(MAKECMDGOALS),default)),)
 
 $(MAKECMDGOALS):
-       @echo >&2 'No Makefile; skipping $@.'
+       $(warning No Makefile; skipping $@.)
 
 else
 
@@ -97,18 +97,18 @@ default $(ORDINARY_GOALS): Makefile
 .NOTPARALLEL:
 
 configure:
-       @echo >&2 'There seems to be no "configure" file in this directory.'
-       @echo >&2 Running ./autogen.sh ...
+       $(warning There seems to be no "configure" file in this directory.)
+       $(warning Running ./autogen.sh ...)
        ./autogen.sh
        @echo >&2 '"configure" file built.'
 
 Makefile: configure
-       @echo >&2 'There seems to be no Makefile in this directory.'
+       $(warning There seems to be no Makefile in this directory.)
 ifeq ($(configure),default)
-       @echo >&2 'Running ./configure ...'
+       $(warning Running ./configure ...)
        ./configure
 else
-       @echo >&2 'Running ./configure '$(configure)'...'
+       $(warning Running ./configure $(configure)...)
        ./configure $(configure)
 endif
        @echo >&2 'Makefile built.'
diff --git a/doc/lispref/two-volume.make b/doc/lispref/two-volume.make
index cf612b1..c791e25 100644
--- a/doc/lispref/two-volume.make
+++ b/doc/lispref/two-volume.make
@@ -35,7 +35,7 @@ vol1.pdf: elisp1med-fns-ready elisp1med-aux-ready 
elisp1med-toc-ready
        $(tex1)
 #
 vol2.pdf: elisp2med-fns-ready elisp2med-aux-ready elisp2med-toc-ready
-       @echo "Final TeX run for volume 2..."
+       $(info Final TeX run for volume 2...)
        cp elisp2med-toc-ready elisp2-toc-ready.toc
        cp elisp2med-fns-ready vol2.fns
        cp elisp2med-aux-ready vol2.aux
@@ -123,7 +123,7 @@ elisp1med-init: elisp1-fns-ready elisp1-aux-ready 
elisp1init-toc-ready $(texinfo
        mv vol1.toc elisp1med-toc
 #
 elisp2med-init: elisp2-fns-ready elisp2-aux-ready elisp2init-toc-ready 
$(texinfodir)/texinfo.tex
-       @echo "Final TeX run for volume 2..."
+       $(info Final TeX run for volume 2...)
        cp elisp2init-toc-ready elisp2-toc-ready.toc
        cp elisp2-fns-ready vol2.fns
        cp elisp2-aux-ready vol2.aux
@@ -211,7 +211,7 @@ elisp1-init: elisp.texi
        touch $@
 #
 elisp2-init: elisp.texi
-       @echo "Initial TeX run for volume 2..."
+       $(info Initial TeX run for volume 2...)
        rm -f vol2.aux vol2.toc
        $(tex2)
        texindex vol2.??
diff --git a/doc/misc/Makefile.in b/doc/misc/Makefile.in
index 7982c0d..8be84e3 100644
--- a/doc/misc/Makefile.in
+++ b/doc/misc/Makefile.in
@@ -130,12 +130,12 @@ info: $(INFO_TARGETS)
 
 ## Used by top-level Makefile.
 ## Base file names of output info files.
+INFO_BASES = $(patsubst %.info,%,$(notdir $(INFO_INSTALL)))
 echo-info:
-       @echo "$(INFO_INSTALL) " | \
-         sed -e 's|[^ ]*/||g' -e 's/\.info//g' -e "s/  */.info /g"
+       @: $(info $(addsuffix .info,$(INFO_BASES)))
 
 echo-sources:
-       @echo ${SOURCES}
+       @: $(info $(SOURCES))
 
 dvi: $(DVI_TARGETS)
 
diff --git a/lib-src/Makefile.in b/lib-src/Makefile.in
index c07b678..835b601 100644
--- a/lib-src/Makefile.in
+++ b/lib-src/Makefile.in
@@ -297,8 +297,8 @@ maybe-blessmail: $(BLESSMAIL_TARGET)
 ## up if chown or chgrp fails, as the package responsible for
 ## installing Emacs can fix this problem later.
 $(DESTDIR)${archlibdir}: all
-       @echo
-       @echo "Installing utilities run internally by Emacs."
+       $(info $ )
+       $(info Installing utilities run internally by Emacs.)
        umask 022 && ${MKDIR_P} "$(DESTDIR)${archlibdir}"
        exp_archlibdir=`cd "$(DESTDIR)${archlibdir}" && /bin/pwd` && \
        if [ "$$exp_archlibdir" != "`/bin/pwd`" ]; then \
@@ -339,8 +339,8 @@ $(DESTDIR)${archlibdir}: all
 .PHONY: bootstrap-clean check tags
 
 install: $(DESTDIR)${archlibdir}
-       @echo
-       @echo "Installing utilities for users to run."
+       $(info $ )
+       $(info Installing utilities for users to run.)
        umask 022 && ${MKDIR_P} "$(DESTDIR)${bindir}"
        for file in ${INSTALLABLES} ; do \
          $(INSTALL_PROGRAM) $(INSTALL_STRIP) $${file} \
@@ -375,7 +375,7 @@ bootstrap-clean maintainer-clean: distclean
 
 ## Test the contents of the directory.
 check:
-       @echo "We don't have any tests for the lib-src/ directory yet."
+       $(info We don't have any tests for the lib-src/ directory yet.)
 
 tagsfiles = $(wildcard ${srcdir}/*.[ch])
 
diff --git a/src/verbose.mk.in b/src/verbose.mk.in
index 9252971..eee9d21 100644
--- a/src/verbose.mk.in
+++ b/src/verbose.mk.in
@@ -33,26 +33,26 @@ AM_V_GLOBALS =
 AM_V_NO_PD =
 AM_V_RC =
 else
-AM_V_AR = @echo "  AR      " $@;
+AM_V_AR      = @$(info $   AR       $@)
 AM_V_at = @
-AM_V_CC = @echo "  CC      " $@;
-AM_V_CXX = @echo "  CXX     " $@;
-AM_V_CCLD = @echo "  CCLD    " $@;
-AM_V_CXXLD = @echo "  CXXLD   " $@;
+AM_V_CC      = @$(info $   CC       $@)
+AM_V_CXX     = @$(info $   CXX      $@)
+AM_V_CCLD    = @$(info $   CCLD     $@)
+AM_V_CXXLD   = @$(info $   CXXLD    $@)
 ifeq ($(HAVE_NATIVE_COMP),yes)
 ifeq ($(NATIVE_DISABLED),1)
-AM_V_ELC = @echo "  ELC     " $@;
+AM_V_ELC     = @$(info $   ELC      $@)
 AM_V_ELN =
 else
-AM_V_ELC = @echo "  ELC+ELN " $@;
-AM_V_ELN = @echo "  ELN " $@;
+AM_V_ELC     = @$(info $   ELC+ELN  $@)
+AM_V_ELN     = @$(info $   ELN      $@)
 endif
 else
-AM_V_ELC = @echo "  ELC     " $@;
+AM_V_ELC     = @$(info $   ELC      $@)
 AM_V_ELN =
 endif
-AM_V_GEN = @echo "  GEN     " $@;
-AM_V_GLOBALS = @echo "  GEN     " globals.h;
+AM_V_GEN     = @$(info $   GEN      $@)
+AM_V_GLOBALS = @$(info $   GEN      globals.h)
 AM_V_NO_PD = --no-print-directory
-AM_V_RC = @echo "  RC      " $@;
+AM_V_RC      = @$(info $   RC       $@)
 endif
diff --git a/test/Makefile.in b/test/Makefile.in
index eeda291..0bb3558 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -375,10 +375,10 @@ check-declare:
 .PHONY: subdirs subdir-targets generate-test-jobs
 
 subdirs:
-       @echo $(SUBDIRS)
+       @: $(info $(SUBDIRS))
 
 subdir-targets:
-       @echo $(SUBDIR_TARGETS)
+       @: $(info $(SUBDIR_TARGETS))
 
 generate-test-jobs:
        @$(MAKE) -C infra generate-test-jobs SUBDIRS="$(SUBDIRS)"



reply via email to

[Prev in Thread] Current Thread [Next in Thread]