1 # 2 # Nanoapp Makefile 3 # 4 # Include this file in your nanoapp Makefile to produce binary nanoapps to 5 # target a variety of architectures. 6 # 7 8 # Nanoapp Build Configuration Checks ########################################### 9 10 ifeq ($(NANOAPP_NAME),) 11 $(error "The NANOAPP_NAME variable must be set to the name of the nanoapp. \ 12 This should be assigned by the Makefile that includes app.mk.") 13 endif 14 15 ifeq ($(NANOAPP_ID),) 16 $(error "The NANOAPP_ID variable must be set to the ID of the nanoapp. \ 17 This should be assigned by the Makefile that includes app.mk.") 18 endif 19 20 ifeq ($(NANOAPP_VERSION),) 21 $(error "The NANOAPP_VERSION variable must be set to the version of the nanoapp. \ 22 This should be assigned by the Makefile that includes app.mk.") 23 endif 24 25 ifeq ($(NANOAPP_NAME_STRING),) 26 $(error "The NANOAPP_NAME_STRING variable must be set to the friendly name of \ 27 the nanoapp. This should be assigned by the Makefile that includes \ 28 app.mk.") 29 endif 30 31 ifeq ($(NANOAPP_VENDOR_STRING),) 32 $(info "NANOAPP_VENDOR_STRING not supplied, defaulting to \"Google\".") 33 NANOAPP_VENDOR_STRING = \"Google\" 34 endif 35 36 ifeq ($(NANOAPP_IS_SYSTEM_NANOAPP),) 37 $(info "NANOAPP_IS_SYSTEM_NANOAPP not supplied, defaulting to 0.") 38 NANOAPP_IS_SYSTEM_NANOAPP = 0 39 endif 40 41 ifeq ($(CHRE_PREFIX),) 42 ifeq ($(ANDROID_BUILD_TOP),) 43 $(error "You must run lunch, or specify an explicit CHRE_PREFIX environment \ 44 variable") 45 else 46 CHRE_PREFIX = $(ANDROID_BUILD_TOP)/system/chre 47 endif 48 endif 49 50 # Nanoapp Build ################################################################ 51 52 # This variable indicates to the variants that some post-processing may be 53 # required as the target is a nanoapp. 54 IS_NANOAPP_BUILD = true 55 56 # Common App Build Configuration ############################################### 57 58 OUTPUT_NAME = $(NANOAPP_NAME) 59 60 # Common Compiler Flags ######################################################## 61 62 # Add the CHRE API to the include search path. 63 COMMON_CFLAGS += -I$(CHRE_PREFIX)/chre_api/include/chre_api 64 65 # Add util and platform/shared to the include search path. 66 COMMON_CFLAGS += -I$(CHRE_PREFIX)/util/include 67 COMMON_CFLAGS += -I$(CHRE_PREFIX)/platform/shared/include 68 69 # Allows a nanoapp to know that is compiled separately from the CHRE system. 70 COMMON_CFLAGS += -DCHRE_IS_NANOAPP_BUILD 71 72 # Compile FlatBuffers in a portable way. 73 COMMON_CFLAGS += -DFLATBUFFERS_CHRE 74 75 # Nanoapp configuration flags. 76 COMMON_CFLAGS += -DNANOAPP_ID=$(NANOAPP_ID) 77 COMMON_CFLAGS += -DNANOAPP_VERSION=$(NANOAPP_VERSION) 78 COMMON_CFLAGS += -DNANOAPP_VENDOR_STRING=$(NANOAPP_VENDOR_STRING) 79 COMMON_CFLAGS += -DNANOAPP_NAME_STRING=$(NANOAPP_NAME_STRING) 80 COMMON_CFLAGS += -DNANOAPP_IS_SYSTEM_NANOAPP=$(NANOAPP_IS_SYSTEM_NANOAPP) 81 82 # Variant-specific Nanoapp Support Source Files ################################ 83 84 APP_SUPPORT_PATH = $(CHRE_PREFIX)/build/app_support 85 DSO_SUPPORT_LIB_PATH = $(CHRE_PREFIX)/platform/shared/nanoapp 86 DSO_SUPPORT_LIB_SRCS = $(DSO_SUPPORT_LIB_PATH)/nanoapp_support_lib_dso.cc 87 88 GOOGLE_HEXAGONV60_SLPI_SRCS += $(DSO_SUPPORT_LIB_SRCS) 89 GOOGLE_HEXAGONV62_SLPI_SRCS += $(DSO_SUPPORT_LIB_SRCS) 90 GOOGLE_HEXAGONV62_SLPI-UIMG_SRCS += $(DSO_SUPPORT_LIB_SRCS) 91 GOOGLE_HEXAGONV65_SLPI-SEE_SRCS += $(DSO_SUPPORT_LIB_SRCS) 92 GOOGLE_HEXAGONV65_SLPI-SEE-UIMG_SRCS += $(DSO_SUPPORT_LIB_SRCS) 93 GOOGLE_ARM64_ANDROID_SRCS += $(DSO_SUPPORT_LIB_SRCS) 94 GOOGLE_X86_LINUX_SRCS += $(DSO_SUPPORT_LIB_SRCS) 95 QCOM_HEXAGONV60_NANOHUB_SRCS += $(APP_SUPPORT_PATH)/qcom_nanohub/app_support.cc 96 QCOM_HEXAGONV60_NANOHUB-UIMG_SRCS += $(APP_SUPPORT_PATH)/qcom_nanohub/app_support_uimg.cc 97 98 # Makefile Includes ############################################################ 99 100 # Common includes 101 include $(CHRE_PREFIX)/build/defs.mk 102 include $(CHRE_PREFIX)/build/common.mk 103 104 # CHRE API version. 105 include $(CHRE_PREFIX)/chre_api/chre_api_version.mk 106 107 # Supported variants includes 108 include $(CHRE_PREFIX)/build/variant/google_arm64_android.mk 109 include $(CHRE_PREFIX)/build/variant/google_cm4_nanohub.mk 110 include $(CHRE_PREFIX)/build/variant/google_hexagonv55_slpi-see.mk 111 include $(CHRE_PREFIX)/build/variant/google_hexagonv60_slpi.mk 112 include $(CHRE_PREFIX)/build/variant/google_hexagonv62_slpi.mk 113 include $(CHRE_PREFIX)/build/variant/google_hexagonv62_slpi-uimg.mk 114 include $(CHRE_PREFIX)/build/variant/google_hexagonv65_slpi-see.mk 115 include $(CHRE_PREFIX)/build/variant/google_hexagonv65_slpi-see-uimg.mk 116 include $(CHRE_PREFIX)/build/variant/google_x86_linux.mk 117 include $(CHRE_PREFIX)/build/variant/qcom_hexagonv60_nanohub.mk 118 include $(CHRE_PREFIX)/build/variant/qcom_hexagonv60_nanohub-uimg.mk 119