diff options
| author | Paul Eggert | 2022-01-21 14:45:57 -0800 |
|---|---|---|
| committer | Paul Eggert | 2022-01-21 14:48:56 -0800 |
| commit | fac8d0ac2f4cbdbd5828a57ddc90adf6601d956b (patch) | |
| tree | e41bfe9ae60f0ae5d8233536d6836646c51f1e95 /src | |
| parent | 882bbeb1f9f40ccf9f1e3f3423fd7cb12a4859ab (diff) | |
| download | emacs-fac8d0ac2f4cbdbd5828a57ddc90adf6601d956b.tar.gz emacs-fac8d0ac2f4cbdbd5828a57ddc90adf6601d956b.zip | |
Avoid glitches in ELC lines in build output
* src/verbose.mk.in (have_working_info): New macro.
(AM_V_ELC, AM_V_ELN): Use 'echo' rather than $(info ...)
on buggy versions of GNU Make.
Diffstat (limited to 'src')
| -rw-r--r-- | src/verbose.mk.in | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/verbose.mk.in b/src/verbose.mk.in index c0bf67abd4f..eb99e426958 100644 --- a/src/verbose.mk.in +++ b/src/verbose.mk.in | |||
| @@ -33,19 +33,45 @@ AM_V_GLOBALS = | |||
| 33 | AM_V_NO_PD = | 33 | AM_V_NO_PD = |
| 34 | AM_V_RC = | 34 | AM_V_RC = |
| 35 | else | 35 | else |
| 36 | |||
| 37 | # Whether $(info ...) works. This is to work around a bug in GNU Make | ||
| 38 | # 4.3 and earlier, which implements $(info MSG) via two system calls | ||
| 39 | # { write (..., "MSG", 3); write (..., "\n", 1); } | ||
| 40 | # which looks bad when make -j interleaves two of these at about the same time. | ||
| 41 | # | ||
| 42 | # Later versions of GNU Make have the 'notintermediate' feature, | ||
| 43 | # so assume that $(info ...) works if this feature is present. | ||
| 44 | # | ||
| 45 | have_working_info = $(filter notintermediate,$(value .FEATURES)) | ||
| 46 | # | ||
| 47 | # The workaround is to use the shell and 'echo' rather than $(info ...). | ||
| 48 | # The workaround is done only for AM_V_ELC and AM_V_ELN, | ||
| 49 | # since the bug is not annoying elsewhere. | ||
| 50 | |||
| 36 | AM_V_AR = @$(info $ AR $@) | 51 | AM_V_AR = @$(info $ AR $@) |
| 37 | AM_V_at = @ | 52 | AM_V_at = @ |
| 38 | AM_V_CC = @$(info $ CC $@) | 53 | AM_V_CC = @$(info $ CC $@) |
| 39 | AM_V_CXX = @$(info $ CXX $@) | 54 | AM_V_CXX = @$(info $ CXX $@) |
| 40 | AM_V_CCLD = @$(info $ CCLD $@) | 55 | AM_V_CCLD = @$(info $ CCLD $@) |
| 41 | AM_V_CXXLD = @$(info $ CXXLD $@) | 56 | AM_V_CXXLD = @$(info $ CXXLD $@) |
| 57 | |||
| 42 | ifeq ($(HAVE_NATIVE_COMP)-$(NATIVE_DISABLED)-$(ANCIENT),yes--) | 58 | ifeq ($(HAVE_NATIVE_COMP)-$(NATIVE_DISABLED)-$(ANCIENT),yes--) |
| 59 | ifdef have_working_info | ||
| 43 | AM_V_ELC = @$(info $ ELC+ELN $@) | 60 | AM_V_ELC = @$(info $ ELC+ELN $@) |
| 44 | AM_V_ELN = @$(info $ ELN $@) | 61 | AM_V_ELN = @$(info $ ELN $@) |
| 45 | else | 62 | else |
| 63 | AM_V_ELC = @echo " ELC+ELN " $@; | ||
| 64 | AM_V_ELN = @echo " ELN " $@; | ||
| 65 | endif | ||
| 66 | else | ||
| 67 | ifdef have_working_info | ||
| 46 | AM_V_ELC = @$(info $ ELC $@) | 68 | AM_V_ELC = @$(info $ ELC $@) |
| 69 | else | ||
| 70 | AM_V_ELC = @echo " ELC " $@; | ||
| 71 | endif | ||
| 47 | AM_V_ELN = | 72 | AM_V_ELN = |
| 48 | endif | 73 | endif |
| 74 | |||
| 49 | AM_V_GEN = @$(info $ GEN $@) | 75 | AM_V_GEN = @$(info $ GEN $@) |
| 50 | AM_V_GLOBALS = @$(info $ GEN globals.h) | 76 | AM_V_GLOBALS = @$(info $ GEN globals.h) |
| 51 | AM_V_NO_PD = --no-print-directory | 77 | AM_V_NO_PD = --no-print-directory |