diff options
| -rw-r--r-- | Makefile | 18 | ||||
| -rw-r--r-- | config.mk | 8 | 
2 files changed, 26 insertions, 0 deletions
| @@ -92,6 +92,24 @@ BUILD_DIR := $(O)  endif  endif +# Call a source code checker (by default, "sparse") as part of the +# C compilation. +# +# Use 'make C=1' to enable checking of re-compiled files. +# +# See the linux kernel file "Documentation/sparse.txt" for more details, +# including where to get the "sparse" utility. + +ifdef C +ifeq ("$(origin C)", "command line") +CHECKSRC := $(C) +endif +endif +ifndef CHECKSRC +  CHECKSRC = 0 +endif +export CHECKSRC +  ifneq ($(BUILD_DIR),)  saved-output := $(BUILD_DIR) @@ -149,6 +149,7 @@ OBJCOPY = $(CROSS_COMPILE)objcopy  OBJDUMP = $(CROSS_COMPILE)objdump  RANLIB	= $(CROSS_COMPILE)RANLIB  DTC	= dtc +CHECK	= sparse  ######################################################################### @@ -275,6 +276,10 @@ ifneq ($(CONFIG_SPL_TEXT_BASE),)  LDFLAGS_u-boot-spl += -Ttext $(CONFIG_SPL_TEXT_BASE)  endif +# Linus' kernel sanity checking tool +CHECKFLAGS     := -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ \ +                  -Wbitwise -Wno-return-void -D__CHECK_ENDIAN__ $(CF) +  # Location of a usable BFD library, where we define "usable" as  # "built for ${HOST}, supports ${TARGET}".  Sensible values are  # - When cross-compiling: the root of the cross-environment @@ -322,6 +327,9 @@ $(obj)%.s:	%.S  $(obj)%.o:	%.S  	$(CC)  $(ALL_AFLAGS) -o $@ $< -c  $(obj)%.o:	%.c +ifneq ($(CHECKSRC),0) +	$(CHECK) $(CHECKFLAGS) $(ALL_CFLAGS) $< +endif  	$(CC)  $(ALL_CFLAGS) -o $@ $< -c  $(obj)%.i:	%.c  	$(CPP) $(ALL_CFLAGS) -o $@ $< -c |