summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNishanth Menon2015-09-03 05:43:52 -0500
committerNishanth Menon2015-10-01 22:55:51 -0500
commit309ddafe963807193e221a7b09504ea0e810750b (patch)
treedd4717666eafcf1106db66c81b524034caeed042
parent04469f058a4f9fb5d21a8b30358d1cb5be0fabc8 (diff)
downloadks2-boot-monitor-309ddafe963807193e221a7b09504ea0e810750b.tar.gz
ks2-boot-monitor-309ddafe963807193e221a7b09504ea0e810750b.tar.xz
ks2-boot-monitor-309ddafe963807193e221a7b09504ea0e810750b.zip
Makefile: Add support for sparse check
Build with make C=1 to check with sparse. by overriding the SPARSE variable with other static analysers, Further additional checks may be performed. Signed-off-by: Nishanth Menon <nm@ti.com>
-rw-r--r--make.rules3
-rw-r--r--makedefs18
2 files changed, 21 insertions, 0 deletions
diff --git a/make.rules b/make.rules
index 10b6de1f9cbc..99883a5e63f5 100644
--- a/make.rules
+++ b/make.rules
@@ -61,6 +61,9 @@ build_dir:
61 fi 61 fi
62 62
63$(OBJDIR)/%.o: %.c 63$(OBJDIR)/%.o: %.c
64ifneq ($(CHECK),0)
65 $(Q_SPARSE) $(CFLAGS) $(CPPFLAGS) $(SPARSE_FLAGS) $(TARGET_ARCH) -c -o $@ $<
66endif
64 $(Q_CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c -o $@ $< 67 $(Q_CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c -o $@ $<
65 68
66$(OBJDIR)/%.o: %.S 69$(OBJDIR)/%.o: %.S
diff --git a/makedefs b/makedefs
index ae82fb3e644e..4c0fecbe1c5e 100644
--- a/makedefs
+++ b/makedefs
@@ -39,11 +39,16 @@ BIN=$(CROSS_COMPILE)objcopy
39OBJCOPY=$(CROSS_COMPILE)objcopy 39OBJCOPY=$(CROSS_COMPILE)objcopy
40CSCOPE ?= cscope 40CSCOPE ?= cscope
41TAGS ?= ctags 41TAGS ?= ctags
42SPARSE ?= sparse
42 43
43ifeq ("$(origin V)", "command line") 44ifeq ("$(origin V)", "command line")
44 export VERBOSE=$(V) 45 export VERBOSE=$(V)
45endif 46endif
46 47
48ifeq ("$(origin C)", "command line")
49 export CHECK=$(C)
50endif
51
47ifndef VERBOSE 52ifndef VERBOSE
48export VERBOSE=0 53export VERBOSE=0
49endif 54endif
@@ -54,10 +59,16 @@ else
54 Q=@ 59 Q=@
55.SILENT: 60.SILENT:
56endif 61endif
62
63ifndef CHECK
64export CHECK=0
65endif
66
57Q_CC=$(Q:@=@echo ' CC '$@;)$(CC) 67Q_CC=$(Q:@=@echo ' CC '$@;)$(CC)
58Q_LD=$(Q:@=@echo ' LINK '$@;)$(LD) 68Q_LD=$(Q:@=@echo ' LINK '$@;)$(LD)
59Q_BIN=$(Q:@=@echo ' BIN '$@;)$(BIN) 69Q_BIN=$(Q:@=@echo ' BIN '$@;)$(BIN)
60Q_OBJCOPY=$(Q:@=@echo ' OBJCOPY '$@;)$(OBJCOPY) 70Q_OBJCOPY=$(Q:@=@echo ' OBJCOPY '$@;)$(OBJCOPY)
71Q_SPARSE=$(Q:@=@echo ' CHECK '$@;)$(SPARSE)
61 72
62#RBL monitor stack size per core 73#RBL monitor stack size per core
63RBL_MON_STACK_SIZE=0x800 74RBL_MON_STACK_SIZE=0x800
@@ -84,3 +95,10 @@ GCCOPT = -marm -mcpu=cortex-a15 -Wa,-march=armv7-a+sec -g $(IPATH)
84CFLAGS = $(GCCOPT) -I$(ROOT)/soc/$(SOC)/ -c 95CFLAGS = $(GCCOPT) -I$(ROOT)/soc/$(SOC)/ -c
85ASFLAGS=$(GCCOPT) -I$(ROOT)/soc/$(SOC)/ -c 96ASFLAGS=$(GCCOPT) -I$(ROOT)/soc/$(SOC)/ -c
86LDFLAGS=$(GCCOPT) --static -Wl,-T,$(ROOT)/soc/$(SOC)/$(EXE).lds -Wl,-Map,$(ROOT)/soc/$(SOC)/$(EXE).map -nostdlib $(LPATH) 97LDFLAGS=$(GCCOPT) --static -Wl,-T,$(ROOT)/soc/$(SOC)/$(EXE).lds -Wl,-Map,$(ROOT)/soc/$(SOC)/$(EXE).map -nostdlib $(LPATH)
98
99ifneq ($(CHECK),0)
100 INCPATH=$(shell $(CC) --print-file-name=include| sed -e 's/^/@/g'|\
101 sed -e 's/\s\s*/@/g')
102 SPARSE_FLAGS += $(subst @,-I,$(INCPATH))
103 SPARSE_FLAGS += -isystem
104endif