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 <pete@akeo.ie>
This commit is contained in:
Pete Batard 2024-05-20 17:20:09 +01:00
parent 7440e5ebb7
commit 2d6d426b8c
No known key found for this signature in database
GPG Key ID: 38E0CF5E69EDD671
4 changed files with 44 additions and 18 deletions

View File

@ -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

View File

@ -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 $@

View File

@ -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' \

View File

@ -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