Port to GNU Make 03ecd94488b85adc38746ec3e7c2a297a522598e

Problem reported by Collin Funk (Bug#68996).
* GNUmakefile (.): New macro.
(help): Use ‘$.’ instead of ‘$ ’.
* cross/verbose.mk.android, src/verbose.mk.in (.): New macro.
(AM_V_AR, AM_V_CC, AM_V_CXX, AM_V_CCLD, AM_V_CXXLD, AM_V_GEN):
Use ‘$.’ instead of ‘$ ’.
* lib-src/Makefile.in (install): Use ‘$.’ instead of ‘$ ’.
This commit is contained in:
Paul Eggert 2024-02-08 23:17:04 -08:00
parent 4e5068b7b3
commit 8d09e1def5
4 changed files with 50 additions and 46 deletions

View file

@ -27,6 +27,8 @@
# newly-built Makefile. If the source tree is already configured, # newly-built Makefile. If the source tree is already configured,
# this file defers to the existing Makefile. # this file defers to the existing Makefile.
. :=
# If you want non-default build options, or if you want to build in an # If you want non-default build options, or if you want to build in an
# out-of-source tree, you should run 'configure' before running 'make'. # out-of-source tree, you should run 'configure' before running 'make'.
# But run 'autogen.sh' first, if the source was checked out directly # But run 'autogen.sh' first, if the source was checked out directly
@ -36,30 +38,30 @@
ifeq (help,$(filter help,$(MAKECMDGOALS))) ifeq (help,$(filter help,$(MAKECMDGOALS)))
help: help:
$(info $ NOTE: This is a brief summary of some common make targets.) $(info $.NOTE: This is a brief summary of some common make targets.)
$(info $ For more detailed information, please read the files INSTALL,) $(info $.For more detailed information, please read the files INSTALL,)
$(info $ INSTALL.REPO, Makefile or visit this URL:) $(info $.INSTALL.REPO, Makefile or visit this URL:)
$(info $ https://www.gnu.org/prep/standards/html_node/Standard-Targets.html) $(info $.https://www.gnu.org/prep/standards/html_node/Standard-Targets.html)
$(info $ ) $(info $.)
$(info $ make all -- compile and build Emacs) $(info $.make all -- compile and build Emacs)
$(info $ make install -- install Emacs) $(info $.make install -- install Emacs)
$(info $ make TAGS -- update tags tables) $(info $.make TAGS -- update tags tables)
$(info $ make clean -- delete built files but preserve configuration) $(info $.make clean -- delete built files but preserve configuration)
$(info $ make mostlyclean -- like 'make clean', but leave those files that) $(info $.make mostlyclean -- like 'make clean', but leave those files that)
$(info $ usually do not need to be recompiled) $(info $. usually do not need to be recompiled)
$(info $ make distclean -- delete all build and configuration files,) $(info $.make distclean -- delete all build and configuration files,)
$(info $ leave only files included in source distribution) $(info $. leave only files included in source distribution)
$(info $ make maintainer-clean -- delete almost everything that can be regenerated) $(info $.make maintainer-clean -- delete almost everything that can be regenerated)
$(info $ make extraclean -- like maintainer-clean, and also delete) $(info $.make extraclean -- like maintainer-clean, and also delete)
$(info $ backup and autosave files) $(info $. backup and autosave files)
$(info $ make bootstrap -- delete all compiled files to force a new bootstrap) $(info $.make bootstrap -- delete all compiled files to force a new bootstrap)
$(info $ from a clean slate, then build in the normal way) $(info $. from a clean slate, then build in the normal way)
$(info $ make uninstall -- remove files installed by 'make install') $(info $.make uninstall -- remove files installed by 'make install')
$(info $ make check -- run the Emacs test suite) $(info $.make check -- run the Emacs test suite)
$(info $ make docs -- generate Emacs documentation in info format) $(info $.make docs -- generate Emacs documentation in info format)
$(info $ make html -- generate documentation in html format) $(info $.make html -- generate documentation in html format)
$(info $ make ps -- generate documentation in ps format) $(info $.make ps -- generate documentation in ps format)
$(info $ make pdf -- generate documentation in pdf format ) $(info $.make pdf -- generate documentation in pdf format )
@: @:
.PHONY: help .PHONY: help

View file

@ -44,12 +44,13 @@ have_working_info = $(filter notintermediate,$(value .FEATURES))
# The workaround is done only for AM_V_ELC and AM_V_ELN, # The workaround is done only for AM_V_ELC and AM_V_ELN,
# since the bug is not annoying elsewhere. # since the bug is not annoying elsewhere.
AM_V_AR = @$(info $ AR $@) . :=
AM_V_AR = @$(info $. AR $@)
AM_V_at = @ AM_V_at = @
AM_V_CC = @$(info $ CC $@) AM_V_CC = @$(info $. CC $@)
AM_V_CXX = @$(info $ CXX $@) AM_V_CXX = @$(info $. CXX $@)
AM_V_CCLD = @$(info $ CCLD $@) AM_V_CCLD = @$(info $. CCLD $@)
AM_V_CXXLD = @$(info $ CXXLD $@) AM_V_CXXLD = @$(info $. CXXLD $@)
AM_V_GEN = @$(info $ GEN $@) AM_V_GEN = @$(info $. GEN $@)
AM_V_NO_PD = --no-print-directory AM_V_NO_PD = --no-print-directory
endif endif

View file

@ -319,7 +319,7 @@ maybe-blessmail: $(BLESSMAIL_TARGET)
## up if chown or chgrp fails, as the package responsible for ## up if chown or chgrp fails, as the package responsible for
## installing Emacs can fix this problem later. ## installing Emacs can fix this problem later.
$(DESTDIR)${archlibdir}: all $(DESTDIR)${archlibdir}: all
$(info $ ) $(info $.)
$(info Installing utilities run internally by Emacs.) $(info Installing utilities run internally by Emacs.)
umask 022 && ${MKDIR_P} "$(DESTDIR)${archlibdir}" umask 022 && ${MKDIR_P} "$(DESTDIR)${archlibdir}"
exp_archlibdir=`cd "$(DESTDIR)${archlibdir}" && pwd -P` && \ exp_archlibdir=`cd "$(DESTDIR)${archlibdir}" && pwd -P` && \
@ -361,7 +361,7 @@ $(DESTDIR)${archlibdir}: all
.PHONY: bootstrap-clean check tags .PHONY: bootstrap-clean check tags
install: $(DESTDIR)${archlibdir} install: $(DESTDIR)${archlibdir}
$(info $ ) $(info $.)
$(info Installing utilities for users to run.) $(info Installing utilities for users to run.)
umask 022 && ${MKDIR_P} "$(DESTDIR)${bindir}" umask 022 && ${MKDIR_P} "$(DESTDIR)${bindir}"
for file in ${INSTALLABLES} ; do \ for file in ${INSTALLABLES} ; do \

View file

@ -53,38 +53,39 @@ have_working_info = $(filter notintermediate,$(value .FEATURES))
# The workaround is done only for AM_V_ELC and AM_V_ELN, # The workaround is done only for AM_V_ELC and AM_V_ELN,
# since the bug is not annoying elsewhere. # since the bug is not annoying elsewhere.
AM_V_AR = @$(info $ AR $@) . :=
AM_V_AR = @$(info $. AR $@)
AM_V_at = @ AM_V_at = @
AM_V_CC = @$(info $ CC $@) AM_V_CC = @$(info $. CC $@)
AM_V_CXX = @$(info $ CXX $@) AM_V_CXX = @$(info $. CXX $@)
AM_V_CCLD = @$(info $ CCLD $@) AM_V_CCLD = @$(info $. CCLD $@)
AM_V_CXXLD = @$(info $ CXXLD $@) AM_V_CXXLD = @$(info $. CXXLD $@)
ifeq ($(HAVE_NATIVE_COMP)-$(NATIVE_DISABLED)-$(ANCIENT),yes--) ifeq ($(HAVE_NATIVE_COMP)-$(NATIVE_DISABLED)-$(ANCIENT),yes--)
ifneq (,$(have_working_info)) ifneq (,$(have_working_info))
AM_V_ELC = @$(info $ ELC+ELN $@) AM_V_ELC = @$(info $. ELC+ELN $@)
AM_V_ELN = @$(info $ ELN $@) AM_V_ELN = @$(info $. ELN $@)
else else
AM_V_ELC = @echo " ELC+ELN " $@; AM_V_ELC = @echo " ELC+ELN " $@;
AM_V_ELN = @echo " ELN " $@; AM_V_ELN = @echo " ELN " $@;
endif endif
else else
ifneq (,$(have_working_info)) ifneq (,$(have_working_info))
AM_V_ELC = @$(info $ ELC $@) AM_V_ELC = @$(info $. ELC $@)
else else
AM_V_ELC = @echo " ELC " $@; AM_V_ELC = @echo " ELC " $@;
endif endif
AM_V_ELN = AM_V_ELN =
endif endif
AM_V_GEN = @$(info $ GEN $@) AM_V_GEN = @$(info $. GEN $@)
AM_V_GLOBALS = @$(info $ GEN globals.h) AM_V_GLOBALS = @$(info $. GEN globals.h)
AM_V_NO_PD = --no-print-directory AM_V_NO_PD = --no-print-directory
AM_V_RC = @$(info $ RC $@) AM_V_RC = @$(info $. RC $@)
# These are used for the Android port. # These are used for the Android port.
AM_V_JAVAC = @$(info $ JAVAC $@) AM_V_JAVAC = @$(info $. JAVAC $@)
AM_V_D8 = @$(info $ D8 $@) AM_V_D8 = @$(info $. D8 $@)
AM_V_AAPT = @$(info $ AAPT $@) AM_V_AAPT = @$(info $. AAPT $@)
AM_V_SILENT = @ AM_V_SILENT = @
endif endif