From 2d6d426b8cea904a918681f5d0ebe9e84ecbad95 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Mon, 20 May 2024 17:20:09 +0100 Subject: [PATCH] Enable silent rules for compiler output This is similar to using automake's silent rules and, just as with automake, can be disabled by invoking 'make V=1'. Signed-off-by: Pete Batard --- Make.defaults | 20 +++++++++++++++++--- Make.rules | 27 ++++++++++++++++++--------- gnuefi/Makefile | 6 ++++-- lib/Makefile | 9 +++++---- 4 files changed, 44 insertions(+), 18 deletions(-) diff --git a/Make.defaults b/Make.defaults index e33316b..e54f5b7 100755 --- a/Make.defaults +++ b/Make.defaults @@ -60,9 +60,9 @@ override INSTALLROOT:=$(if $(call is_absolute,$(INSTALLROOT)),,$(TOPDIR)/)$(INST PREFIX := /usr/local EXEC_PREFIX := $(PREFIX) -LIBDIR := $(EXEC_PREFIX)/lib +LIBDIR := $(EXEC_PREFIX)/lib INCLUDEDIR := $(PREFIX)/include -INSTALL := install +INSTALL := install # Compilation tools HOSTCC := $(prefix)gcc @@ -73,6 +73,16 @@ AR := $(prefix)$(CROSS_COMPILE)ar RANLIB := $(prefix)$(CROSS_COMPILE)ranlib OBJCOPY := $(prefix)$(CROSS_COMPILE)objcopy +# Set verbose or nonverbose output similarly to automake's silent rules. +# Default is nonverbose, but, just like with automake, it can be disabled +# with: 'make V=1' +ifneq ($(V),1) + HIDE=@ + ECHO=echo +else + HIDE= + ECHO=true +endif # Host/target identification OS := $(shell uname -s) @@ -205,9 +215,13 @@ CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra -Wno-pointer-sign -Werror \ $(if $(findstring gcc,$(CC)),-fno-merge-all-constants,) endif +ifeq ($(V),1) ARFLAGS := rDv +else +ARFLAGS := rD +endif ASFLAGS += $(ARCH3264) -LDFLAGS += -nostdlib +LDFLAGS += -nostdlib ifeq ($(IS_MINGW32),) LDFLAGS += --warn-common --no-undefined --fatal-warnings \ --build-id=sha1 -z nocombreloc -z norelro diff --git a/Make.rules b/Make.rules index 9982403..63d206d 100644 --- a/Make.rules +++ b/Make.rules @@ -38,34 +38,43 @@ ifeq ($(IS_MINGW32),) %.efi: %.so - $(OBJCOPY) -j .text -j .sdata -j .data -j .dynamic -j .rodata -j .rel \ + @$(ECHO) " OBJCOPY $(notdir $@)" + $(HIDE)$(OBJCOPY) -j .text -j .sdata -j .data -j .dynamic -j .rodata -j .rel \ -j .rela -j .rel.* -j .rela.* -j .rel* -j .rela* \ -j .areloc -j .reloc $(FORMAT) $*.so $@ %.efi.debug: %.so - $(OBJCOPY) -j .debug_info -j .debug_abbrev -j .debug_aranges \ + @$(ECHO) " OBJCOPY $(notdir $@)" + $(HIDE)$(OBJCOPY) -j .debug_info -j .debug_abbrev -j .debug_aranges \ -j .debug_line -j .debug_str -j .debug_ranges \ -j .note.gnu.build-id \ $(FORMAT) $*.so $@ %.so: %.o - $(LD) $(LDFLAGS) $^ -o $@ $(LOADLIBES) + @$(ECHO) " LD $(notdir $@)" + $(HIDE)$(LD) $(LDFLAGS) $^ -o $@ $(LOADLIBES) else %.efi: %.o - $(CC) $(LDFLAGS) $< -o $@ $(LOADLIBES) + @$(ECHO) " CCLD $(notdir $@)" + $(HIDE)$(CC) $(LDFLAGS) $< -o $@ $(LOADLIBES) endif %.o: %.c - $(CC) $(INCDIR) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ + @$(ECHO) " CC $(notdir $@)" + $(HIDE)$(CC) $(INCDIR) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ %.s: %.c - $(CC) $(INCDIR) $(CFLAGS) $(CPPFLAGS) -S $< -o $@ + @$(ECHO) " CC $(notdir $@)" + $(HIDE)$(CC) $(INCDIR) $(CFLAGS) $(CPPFLAGS) -S $< -o $@ %.i: %.c - $(CC) $(INCDIR) $(CFLAGS) $(CPPFLAGS) -E $< -o $@ + @$(ECHO) " CPP $(notdir $@)" + $(HIDE)$(CC) $(INCDIR) $(CFLAGS) $(CPPFLAGS) -E $< -o $@ %.o: %.S - $(CC) $(INCDIR) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ + @$(ECHO) " CC $(notdir $@)" + $(HIDE)$(CC) $(INCDIR) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ %.s: %.S - $(CC) $(INCDIR) $(CFLAGS) $(CPPFLAGS) -E $< -o $@ + @$(ECHO) " CPP $(notdir $@)" + $(HIDE)$(CC) $(INCDIR) $(CFLAGS) $(CPPFLAGS) -E $< -o $@ diff --git a/gnuefi/Makefile b/gnuefi/Makefile index c87c69c..9adfc0c 100644 --- a/gnuefi/Makefile +++ b/gnuefi/Makefile @@ -85,10 +85,12 @@ TARGETS = crt0-efi-$(ARCH).o libgnuefi.a all: $(TARGETS) gnu-efi.pc libgnuefi.a: $(OBJS) - $(AR) $(ARFLAGS) $@ $^ + @$(ECHO) " AR $(notdir $@)" + $(HIDE)$(AR) $(ARFLAGS) $@ $^ gnu-efi.pc: - sed \ + @$(ECHO) " GEN $(notdir $@)" + $(HIDE)sed \ -e 's:@PREFIX@:$(PREFIX):g' \ -e 's:@EXEC_PREFIX@:$(EXEC_PREFIX):g' \ -e 's:@INCLUDEDIR@:$(INCLUDEDIR):g' \ diff --git a/lib/Makefile b/lib/Makefile index ec1f9e3..db9fa63 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -43,9 +43,9 @@ include $(SRCDIR)/../Make.defaults FILES = boxdraw smbios console crc data debug dpath \ entry error event exit guid hand hw init lock \ - misc pause print sread str cmdline\ - runtime/rtlock runtime/efirtlib runtime/rtstr runtime/vm runtime/rtdata \ - $(ARCH)/initplat $(ARCH)/math $(ARCH)/setjmp + misc pause print sread str cmdline runtime/rtlock \ + runtime/efirtlib runtime/rtstr runtime/vm runtime/rtdata \ + $(ARCH)/initplat $(ARCH)/math $(ARCH)/setjmp ifeq ($(ARCH),ia64) FILES += $(ARCH)/salpal $(ARCH)/palproc @@ -75,7 +75,8 @@ libsubdirs: $(OBJS): libsubdirs libefi.a: $(OBJS) - $(AR) $(ARFLAGS) $@ $^ + @$(ECHO) " AR $(notdir $@)" + $(HIDE)$(AR) $(ARFLAGS) $@ $^ clean: @rm -vf libefi.a *~ $(OBJS) */*.o