summaryrefslogtreecommitdiff
path: root/include/fanalyzer.mk
blob: b22656ea8e8c52b1e46867474347da06193b01cc (plain)
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
GCC_BINARY ?= $(shell x=$$(which --skip-alias --skip-functions gcc 2>/dev/null) ; [ -n "$$x" ] && echo "$$x")

fanalyzer-test : ; $(if $(findstring /,$(GCC_BINARY)),,$(error gcc not found))

define prop
$(if $(findstring undefined,$(origin $(1))),,$(eval export $(1)))
endef

PROPOGATE_MAKE_FLAGS = ARCH ARCH_SUFFIX COLOR CC COMPILER CROSS_COMPILE DASHJ

MAKEARGS = $(foreach x,$(PROPOGATE_MAKE_FLAGS),$(call prop,$(x)))

fanalyzer : | fanalyzer-test
fanalyzer : fanalyzer-no-openssl

fanalyzer-build-unchecked-cryptlib : Cryptlib/libcryptlib.a

fanalyzer-build-unchecked-openssl : Cryptlib/OpenSSL/libopenssl.a

fanalyzer-build-all : COMPILER=gcc
fanalyzer-build-all : CCACHE_DISABLE=1
fanalyzer-build-all : FEATUREFLAGS+=-fanalyzer
fanalyzer-build-all : WERRFLAGS=-Werror=analyzer-null-dereference
fanalyzer-build-all : IGNORE_COMPILER_ERRORS= || :
fanalyzer-build-all : all

fanalyzer-no-openssl : | fanalyzer-test
fanalyzer-no-openssl : clean-shim-objs clean-cryptlib-objs fanalyzer-build-unchecked-openssl fanalyzer-build-all

fanalyzer-no-cryptlib : | fanalyzer-test
fanalyzer-no-cryptlib : clean-shim-objs fanalyzer-build-unchecked-openssl fanalyzer-build-unchecked-cryptlib fanalyzer-build-all

fanalyzer-all : | fanalyzer-test
fanalyzer-all : clean fanalyzer-build-all

.PHONY : fanalyzer fanalyzer-build fanalyzer-all fanalyzer-build-all fanalyzer-clean