# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later # # These allow for the build to be less verbose # # Copyright 2012-2019 IBM Corp ifdef V VERBOSE:= $(V) else VERBOSE:= 0 endif ifeq ($(VERBOSE),1) define Q $(2) endef else ifneq ($(filter s% -s%,$(MAKEFLAGS)),) define Q @$(2) endef else define Q @echo " [$1] $(3)" @$(2) endef endif endif define QTEST $(call Q,$1, ./test/run.sh $2, $3) endef define cook_aflags $(filter-out $(AFLAGS_SKIP_$(1)) $(AFLAGS_SKIP_$(dir $(1))), $(CPPFLAGS) $(AFLAGS)) $(AFLAGS_$(1)) $(AFLAGS_$(dir $(1))) endef define cook_cflags $(filter-out $(CFLAGS_SKIP_$(1)) $(CFLAGS_SKIP_$(dir $(1))), $(CPPFLAGS) $(CFLAGS)) $(CFLAGS_$(1)) $(CFLAGS_$(dir $(1))) endef ifeq ($(C),1) ifeq ($(VERBOSE),1) cmd_check = $(CHECK) $(CHECKFLAGS) $(filter-out $(CHECK_CFLAGS_SKIP),$(call cook_cflags,$@)) $< else cmd_check = @$(CHECK) $(CHECKFLAGS) $(filter-out $(CHECK_CFLAGS_SKIP),$(call cook_cflags,$@)) $< endif endif %.o : %.S include/asm-offsets.h $(call Q,AS, $(CC) $(call cook_aflags,$@) -c $< -o $@, $@) %.s : %.S include/asm-offsets.h $(call Q,CC, $(CC) $(call cook_aflags,$@) -E -c $< -o $@, $@) %.o : %.c $(call cmd_check) $(call Q,CC, $(CC) $(call cook_cflags,$@) -c $< -o $@, $@) # Force the use of the C compiler, not C++ for the .C files in libpore %.o : %.C $(call cmd_check) $(call Q,CC, $(CC) $(call cook_cflags,$@) -x c -c $< -o $@, $@) %.s : %.c $(call Q,CC, $(CC) $(call cook_cflags,$@) -fverbose-asm -S -c $< -o $@, $@) # no -fverbose-asm for asm-offsets.s asm/asm-offsets.s: asm/asm-offsets.c $(call Q,CC, $(CC) $(call cook_cflags,$@) -S -c $< -o $@, $@) %.i : %.c $(call Q,CC, $(CC) $(call cook_cflags,$@) -E -c $< -o $@, $@) %built-in.a : @rm -f $@ $(call Q,AR, $(AR) rcSTPD $@ $^, $@) %.lds : %.lds.S $(call Q,CC, $(CC) $(CPPFLAGS) -P -E $< -o $@, $@) %.map: %.elf $(call Q,NM, $(NM) --synthetic -n $< | grep -v '\( [aNUw] \)\|\(__crc_\)\|\( \$[adt]\)' > $@, $@)