|  | # | 
|  | # Common Makefile Rules | 
|  | # | 
|  |  | 
|  | # Environment Checks ########################################################### | 
|  |  | 
|  | ifeq ($(OPT_LEVEL),) | 
|  | $(warning The OPT_LEVEL variable is unset. Defaulting to 0.) | 
|  | OPT_LEVEL = 0 | 
|  | endif | 
|  |  | 
|  | ifeq ($(OUTPUT_NAME),) | 
|  | $(error "The OUTPUT_NAME variable must be set to the name of the desired \ | 
|  | binary. Example: OUTPUT_NAME = my_nanoapp") | 
|  | endif | 
|  |  | 
|  | # Define all ################################################################### | 
|  |  | 
|  | # All is defined here as the first target which causes make to build all by | 
|  | # default when no targets are supplied. | 
|  | .PHONY: all | 
|  | all: | 
|  |  | 
|  | # If no make command goals are specified, default to all. At least one target | 
|  | # is required for environment checks. Building all will require toolchains for | 
|  | # all supported architectures which may not be desirable. | 
|  | ifeq ($(MAKECMDGOALS),) | 
|  | MAKECMDGOALS = all | 
|  | endif | 
|  |  | 
|  | # Variant-specific Support Source Files ######################################## | 
|  |  | 
|  | SYS_SUPPORT_PATH = $(CHRE_PREFIX)/build/sys_support | 
|  |  | 
|  | # Host Toolchain ############################################################### | 
|  |  | 
|  | # The host toolchain is used to compile any programs for the compilation host | 
|  | # in order to complete the build. | 
|  |  | 
|  | ifeq ($(CHRE_HOST_CC),) | 
|  | CHRE_HOST_CC = g++ | 
|  | endif | 
|  |  | 
|  | # Makefile Includes ############################################################ | 
|  |  | 
|  | # Common Includes | 
|  | include $(CHRE_PREFIX)/build/clean.mk | 
|  | include $(CHRE_PREFIX)/build/tools_config.mk | 
|  |  | 
|  | # NanoPB Source Generation | 
|  | include $(CHRE_PREFIX)/build/nanopb.mk | 
|  |  | 
|  | # TFLM Sources | 
|  | include $(CHRE_PREFIX)/external/tflm/tflm.mk |