| # 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_CONFIG ?= llvm-config$(LLVM_VERSION) |
| LLVM_STRIP ?= llvm-strip$(LLVM_VERSION) |
| |
| ifneq ($(LLVM),) |
| $(if $(findstring default,$(origin AR)),$(eval AR := llvm-ar$(LLVM_VERSION))) |
| $(if $(findstring default,$(origin CC)),$(eval CC := clang$(LLVM_VERSION))) |
| $(if $(findstring default,$(origin LD)),$(eval LD := ld.lld$(LLVM_VERSION))) |
| HOSTAR ?= llvm-ar |
| HOSTCC ?= clang |
| HOSTLD ?= ld.lld |
| else |
| $(if $(findstring default,$(origin AR)),$(eval AR = $(CROSS_COMPILE)$(AR))) |
| $(if $(findstring default,$(origin CC)),$(eval CC = $(CROSS_COMPILE)$(CC))) |
| $(if $(findstring default,$(origin LD)),$(eval LD = $(CROSS_COMPILE)$(LD))) |
| HOSTAR ?= ar |
| 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 |