1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
# 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
|