From d27c33b2fa544f89433e99f92122d21eaa06861d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 19 Feb 2021 13:23:39 -0500 Subject: Make 'make fanalyzer' targets Signed-off-by: Peter Jones --- Make.defaults | 2 ++ Makefile | 1 + include/fanalyzer.mk | 27 +++++++++++++++++++++++++++ 3 files changed, 30 insertions(+) create mode 100644 include/fanalyzer.mk diff --git a/Make.defaults b/Make.defaults index 1fa2bd5f..799a549d 100644 --- a/Make.defaults +++ b/Make.defaults @@ -91,6 +91,8 @@ endif CFLAGS = -ggdb $(OPTIMIZATIONS) -fno-stack-protector -fno-strict-aliasing -fpic \ -fshort-wchar -Wall -Wsign-compare -Werror -fno-builtin \ -Werror=sign-compare -ffreestanding -std=gnu89 \ + $(if $(filter-out undefined,$(FANALYZER)),-fanalyzer,) \ + $(if $(filter-out undefined,$(COLOR)),-fdiagnostics-color=always,) \ -I$(shell $(CC) $(ARCH_CFLAGS) -print-file-name=include) \ "-DDEFAULT_LOADER=L\"$(DEFAULT_LOADER)\"" \ "-DDEFAULT_LOADER_CHAR=\"$(DEFAULT_LOADER)\"" \ diff --git a/Makefile b/Makefile index 7609df58..a6807768 100644 --- a/Makefile +++ b/Makefile @@ -21,6 +21,7 @@ include $(TOPDIR)/Make.defaults include $(TOPDIR)/Make.rules include $(TOPDIR)/include/coverity.mk include $(TOPDIR)/include/scan-build.mk +include $(TOPDIR)/include/fanalyzer.mk TARGETS = $(SHIMNAME) TARGETS += $(SHIMNAME).debug $(MMNAME).debug $(FBNAME).debug diff --git a/include/fanalyzer.mk b/include/fanalyzer.mk new file mode 100644 index 00000000..1018d1da --- /dev/null +++ b/include/fanalyzer.mk @@ -0,0 +1,27 @@ +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 $(filter-out undefined,$(origin $(1))),$(1)=$($1),) +endef + +MAKEARGS := \ + $(call prop,ARCH) \ + $(call prop,COLOR) \ + $(call prop,CROSS_COMPILE) + +fanalyzer : | fanalyzer-test +fanalyzer : clean-shim-objs fanalyzer-build + +fanalyzer-build : + make CC=gcc $(MAKEARGS) $(DASHJ) Cryptlib/OpenSSL/libopenssl.a Cryptlib/libcryptlib.a + make CC=gcc $(MAKEARGS) FANALYZER=true all + +fanalyzer-all : | fanalyzer-test +fanalyzer-all : clean fanalyzer-build-all + +fanalyzer-build-all : + make CC=gcc $(MAKEARGS) FANALYZER=true all + +.PHONY : fanalyzer fanalyzer-build fanalyzer-all fanalyzer-build-all fanalyzer-clean -- cgit v1.2.3