blob: ec3df4826411f9aec41c949e266e10e7684670e3 [file] [log] [blame]
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
ifneq ($(OUTPUT),)
$(if $(shell [ -d "$(OUTPUT)" -a -x "$(OUTPUT)" ] && echo 1),, \
$(error output directory "$(OUTPUT)" does not exist))
endif
LLVM_VERSION ?=
CLANG ?= clang$(LLVM_VERSION)
LLVM_STRIP ?= llvm-strip$(LLVM_VERSION)
ifneq ($(LLVM),)
$(if $(findstring default,$(origin CC)),$(eval CC := clang$(LLVM_VERSION)))
$(if $(findstring default,$(origin LD)),$(eval LD := ld.lld$(LLVM_VERSION)))
HOSTCC ?= clang
HOSTLD ?= ld.lld
else
$(if $(findstring default,$(origin CC)),$(eval CC = $(CROSS_COMPILE)$(CC)))
$(if $(findstring default,$(origin LD)),$(eval LD = $(CROSS_COMPILE)$(LD)))
HOSTCC ?= gcc
HOSTLD ?= ld
endif
EXTRA_WARNINGS := \
-Wbad-function-cast \
-Wdeclaration-after-statement \
-Wformat-security \
-Wformat-y2k \
-Winit-self \
-Wmissing-declarations \
-Wmissing-prototypes \
-Wold-style-definition \
-Wpacked \
-Wredundant-decls \
-Wshadow \
-Wstrict-prototypes \
-Wswitch-default \
-Wundef \
-Wwrite-strings \
ifeq ($(findstring s,$(filter-out --%,$(MAKEFLAGS))),)
ifneq ($(V),1)
define def_quiet_msg
$(eval QUIET_$(1) = @printf ' %-9s%s\n' $(1) $$@;)
endef
$(foreach action,CC CLANG LINK MKDIR GEN,$(call def_quiet_msg,$(action)))
define def_quiet_msg_subdir
$(eval QUIET_$(1) = @printf ' %-9s%s\n' $(1) $$1;)
endef
$(foreach action,CLEAN INSTALL UNINST,$(call def_quiet_msg_subdir,$(action)))
define descend
@printf ' DESCEND %s\n' $(1); mkdir -p $(OUTPUT)$(1) && \
$(MAKE) --no-print-directory -C $(1) $(2)
endef
endif
endif