diff options
Diffstat (limited to 'Android.mk')
-rw-r--r-- | Android.mk | 161 |
1 files changed, 122 insertions, 39 deletions
@@ -1,5 +1,5 @@ # -# Copyright © 2017 ARM Ltd. All rights reserved. +# Copyright © 2022-2023 ARM Ltd. and Contributors. All rights reserved. # SPDX-License-Identifier: MIT # @@ -43,23 +43,15 @@ R_OR_LATER := 1 ANDROID_R := 1 endif # PLATFORM_VERSION == 11 -ifeq ($(PLATFORM_VERSION),S) +ifeq ($(PLATFORM_VERSION),$(filter $(PLATFORM_VERSION),12 13 14 S T U)) P_OR_LATER := 1 Q_OR_LATER := 1 R_OR_LATER := 1 S_OR_LATER := 1 ANDROID_R := 0 ANDROID_S := 1 -endif # PLATFORM_VERSION == S +endif # PLATFORM_VERSION >= S -ifeq ($(PLATFORM_VERSION),12) -P_OR_LATER := 1 -Q_OR_LATER := 1 -R_OR_LATER := 1 -S_OR_LATER := 1 -ANDROID_R := 0 -ANDROID_S := 1 -endif # PLATFORM_VERSION == 12 CPP_VERSION := c++14 @@ -68,10 +60,16 @@ CPP_VERSION := c++17 endif # Configure these paths if you move the source or Khronos headers +ARMNN_GENERATED_HEADER_PATH := $(LOCAL_PATH)/armnn/generated +ARMNN_PROFILING_HEADER_PATH := $(LOCAL_PATH)/armnn/profiling +ARMNN_COMMON_PROFILING_HEADER_PATH := $(LOCAL_PATH)/armnn/profiling/common/include +ARMNN_CLIENT_PROFILING_HEADER_PATH := $(LOCAL_PATH)/armnn/profiling/client/include ARMNN_HEADER_PATH := $(LOCAL_PATH)/armnn/include +ARMNN_BACKEND_MAKEFILE_LOCAL_PATHS := $(wildcard $(LOCAL_PATH)/armnn/src/backends/*/backend.mk) +ARMNN_BACKEND_MAKEFILE_PATHS := $(subst $(LOCAL_PATH),,$(ARMNN_BACKEND_MAKEFILE_LOCAL_PATHS)) +ARMNN_BACKEND_MAKEFILE_DIRS := $(subst /backend.mk,,$(ARMNN_BACKEND_MAKEFILE_PATHS)) ARMNN_THIRD_PARTY_PATH := $(LOCAL_PATH)/armnn/third-party ARMNN_UTILS_HEADER_PATH := $(LOCAL_PATH)/armnn/src/armnnUtils -ARMNN_THIRD_PARTY_PATH := $(LOCAL_PATH)/armnn/third-party OPENCL_HEADER_PATH := $(LOCAL_PATH)/clframework/include NN_HEADER_PATH := $(LOCAL_PATH)/../../../frameworks/ml/nn/runtime/include ifeq ($(S_OR_LATER),1) @@ -83,7 +81,7 @@ endif ARMNN_COMPUTE_CL_ENABLED := 1 ARMNN_COMPUTE_NEON_ENABLED := 1 ARMNN_REF_ENABLED := 1 -ARMNN_ETHOSN_ENABLED := 1 +ARMNN_ETHOSN_ENABLED := 0 ifeq ($(ARMNN_COMPUTE_CL_ENABLE),0) ARMNN_COMPUTE_CL_ENABLED := 0 @@ -97,8 +95,8 @@ ifeq ($(ARMNN_REF_ENABLE),0) ARMNN_REF_ENABLED := 0 endif -ifeq ($(ARMNN_ETHOSN_ENABLE),0) -ARMNN_ETHOSN_ENABLED := 0 +ifeq ($(ARMNN_ETHOSN_ENABLE),1) +ARMNN_ETHOSN_ENABLED := 1 endif # Variable to control inclusion of libOpenCL shared library @@ -110,6 +108,24 @@ endif # Variable to control retire rate of priority queue RETIRE_RATE := 3 +# Placeholder to hold all backend link files. +ARMNN_BACKEND_STATIC_LIBRARIES := +ARMNN_BACKEND_SHARED_LIBRARIES := + +# Iterate through the Arm NN backends and specific include paths, include them into the +# current makefile and append the linkfiles held by +# the optional BACKEND_STATIC_LIBRARIES and optional BACKEND_SHARED_LIBRARIES variable +# (included from the given makefile) to +# the ARMNN_BACKEND_STATIC_LIBRARIES and ARMNN_BACKEND_SHARED_LIBRARIES lists + +$(foreach mkPath,$(ARMNN_BACKEND_MAKEFILE_DIRS),\ + $(eval include $(LOCAL_PATH)/$(mkPath)/backend.mk)\ + $(eval ARMNN_BACKEND_STATIC_LIBRARIES += $(BACKEND_STATIC_LIBRARIES))) + +$(foreach mkPath,$(ARMNN_BACKEND_MAKEFILE_DIRS),\ + $(eval include $(LOCAL_PATH)/$(mkPath)/backend.mk)\ + $(eval ARMNN_BACKEND_SHARED_LIBRARIES += $(BACKEND_SHARED_LIBRARIES))) + ####################### # libarmnn-driver@1.0 # ####################### @@ -128,10 +144,13 @@ LOCAL_PROPRIETARY_MODULE := true LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk LOCAL_C_INCLUDES := \ - $(ARMNN_HEADER_PATH) \ + $(ARMNN_GENERATED_HEADER_PATH) \ $(ARMNN_THIRD_PARTY_PATH) \ + $(ARMNN_PROFILING_HEADER_PATH) \ + $(ARMNN_COMMON_PROFILING_HEADER_PATH) \ + $(ARMNN_CLIENT_PROFILING_HEADER_PATH) \ + $(ARMNN_HEADER_PATH) \ $(ARMNN_UTILS_HEADER_PATH) \ - $(ARMNN_THIRD_PARTY_PATH) \ $(OPENCL_HEADER_PATH) \ $(NN_HEADER_PATH) @@ -155,6 +174,8 @@ endif ifeq ($(ARMNN_DRIVER_DEBUG),1) LOCAL_CFLAGS+= \ -UNDEBUG +LOCAL_LDFLAGS += \ + -Wl,-Map=libarmnndriver10MapFile.map endif # ARMNN_DRIVER_DEBUG == 1 ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1) @@ -192,7 +213,8 @@ LOCAL_SRC_FILES := \ LOCAL_STATIC_LIBRARIES := \ libneuralnetworks_common \ libflatbuffers-framework \ - arm_compute_library + arm_compute_library \ + $(ARMNN_BACKEND_STATIC_LIBRARIES) LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn @@ -258,10 +280,13 @@ LOCAL_PROPRIETARY_MODULE := true LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk LOCAL_C_INCLUDES := \ - $(ARMNN_HEADER_PATH) \ + $(ARMNN_GENERATED_HEADER_PATH) \ $(ARMNN_THIRD_PARTY_PATH) \ + $(ARMNN_PROFILING_HEADER_PATH) \ + $(ARMNN_COMMON_PROFILING_HEADER_PATH) \ + $(ARMNN_CLIENT_PROFILING_HEADER_PATH) \ + $(ARMNN_HEADER_PATH) \ $(ARMNN_UTILS_HEADER_PATH) \ - $(ARMNN_THIRD_PARTY_PATH) \ $(OPENCL_HEADER_PATH) \ $(NN_HEADER_PATH) @@ -269,12 +294,17 @@ LOCAL_CFLAGS := \ -std=$(CPP_VERSION) \ -fexceptions \ -Werror \ + -Wall \ + -Wextra \ + -Wno-unused-function \ -Wno-format-security \ -DARMNN_ANDROID_NN_V1_1 ifeq ($(ARMNN_DRIVER_DEBUG),1) LOCAL_CFLAGS+= \ -UNDEBUG +LOCAL_LDFLAGS += \ + -Wl,-Map=libarmnnDriver11MapFile.map endif # ARMNN_DRIVER_DEBUG == 1 # Required to build with the changes made to the Android ML framework specific to Android R @@ -325,7 +355,8 @@ LOCAL_SRC_FILES := \ LOCAL_STATIC_LIBRARIES := \ libneuralnetworks_common \ libflatbuffers-framework \ - arm_compute_library + arm_compute_library \ + $(ARMNN_BACKEND_STATIC_LIBRARIES) LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn @@ -381,10 +412,13 @@ LOCAL_PROPRIETARY_MODULE := true LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk LOCAL_C_INCLUDES := \ - $(ARMNN_HEADER_PATH) \ + $(ARMNN_GENERATED_HEADER_PATH) \ $(ARMNN_THIRD_PARTY_PATH) \ + $(ARMNN_PROFILING_HEADER_PATH) \ + $(ARMNN_COMMON_PROFILING_HEADER_PATH) \ + $(ARMNN_CLIENT_PROFILING_HEADER_PATH) \ + $(ARMNN_HEADER_PATH) \ $(ARMNN_UTILS_HEADER_PATH) \ - $(ARMNN_THIRD_PARTY_PATH) \ $(OPENCL_HEADER_PATH) \ $(NN_HEADER_PATH) @@ -392,12 +426,17 @@ LOCAL_CFLAGS := \ -std=$(CPP_VERSION) \ -fexceptions \ -Werror \ + -Wall \ + -Wextra \ + -Wno-unused-function \ -Wno-format-security \ -DARMNN_ANDROID_NN_V1_2 ifeq ($(ARMNN_DRIVER_DEBUG),1) LOCAL_CFLAGS+= \ -UNDEBUG +LOCAL_LDFLAGS += \ + -Wl,-Map=libarmnnDriver12MapFile.map endif # ARMNN_DRIVER_DEBUG == 1 # Required to build with the changes made to the Android ML framework specific to Android R @@ -442,6 +481,7 @@ LOCAL_SRC_FILES := \ ArmnnDriverImpl.cpp \ ArmnnPreparedModel.cpp \ ArmnnPreparedModel_1_2.cpp \ + CacheDataHandler.cpp \ ConversionUtils.cpp \ DriverOptions.cpp \ ModelToINetworkConverter.cpp \ @@ -451,7 +491,8 @@ LOCAL_SRC_FILES := \ LOCAL_STATIC_LIBRARIES := \ libneuralnetworks_common \ libflatbuffers-framework \ - arm_compute_library + arm_compute_library \ + $(ARMNN_BACKEND_STATIC_LIBRARIES) LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn @@ -503,10 +544,13 @@ LOCAL_PROPRIETARY_MODULE := true LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk LOCAL_C_INCLUDES := \ - $(ARMNN_HEADER_PATH) \ + $(ARMNN_GENERATED_HEADER_PATH) \ $(ARMNN_THIRD_PARTY_PATH) \ + $(ARMNN_PROFILING_HEADER_PATH) \ + $(ARMNN_COMMON_PROFILING_HEADER_PATH) \ + $(ARMNN_CLIENT_PROFILING_HEADER_PATH) \ + $(ARMNN_HEADER_PATH) \ $(ARMNN_UTILS_HEADER_PATH) \ - $(ARMNN_THIRD_PARTY_PATH) \ $(OPENCL_HEADER_PATH) \ $(NN_HEADER_PATH) @@ -514,6 +558,9 @@ LOCAL_CFLAGS := \ -std=$(CPP_VERSION) \ -fexceptions \ -Werror \ + -Wall \ + -Wextra \ + -Wno-unused-function \ -Wno-format-security \ -DARMNN_ANDROID_NN_V1_3 \ @@ -530,6 +577,8 @@ endif ifeq ($(ARMNN_DRIVER_DEBUG),1) LOCAL_CFLAGS+= \ -UNDEBUG +LOCAL_LDFLAGS += \ + -Wl,-Map=libarmnnDriver13MapFile.map endif # ARMNN_DRIVER_DEBUG == 1 ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1) @@ -569,6 +618,7 @@ LOCAL_SRC_FILES := \ ArmnnPreparedModel.cpp \ ArmnnPreparedModel_1_2.cpp \ ArmnnPreparedModel_1_3.cpp \ + CacheDataHandler.cpp \ ConversionUtils.cpp \ DriverOptions.cpp \ ModelToINetworkConverter.cpp \ @@ -579,7 +629,8 @@ LOCAL_SRC_FILES := \ LOCAL_STATIC_LIBRARIES := \ libneuralnetworks_common \ libflatbuffers-framework \ - arm_compute_library + arm_compute_library \ + $(ARMNN_BACKEND_STATIC_LIBRARIES) LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn @@ -631,8 +682,12 @@ LOCAL_PROPRIETARY_MODULE := true LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk LOCAL_C_INCLUDES := \ - $(ARMNN_HEADER_PATH) \ + $(ARMNN_GENERATED_HEADER_PATH) \ $(ARMNN_THIRD_PARTY_PATH) \ + $(ARMNN_PROFILING_HEADER_PATH) \ + $(ARMNN_COMMON_PROFILING_HEADER_PATH) \ + $(ARMNN_CLIENT_PROFILING_HEADER_PATH) \ + $(ARMNN_HEADER_PATH) \ $(NN_HEADER_PATH) LOCAL_CFLAGS := \ @@ -642,6 +697,8 @@ LOCAL_CFLAGS := \ ifeq ($(ARMNN_DRIVER_DEBUG),1) LOCAL_CFLAGS += \ -UNDEBUG +LOCAL_LDFLAGS += \ + -Wl,-Map=neuralNetworks10MapFile.map endif # ARMNN_DRIVER_DEBUG == 1 # Required to build with the changes made to the Android ML framework specific to Android R @@ -661,7 +718,8 @@ LOCAL_SRC_FILES := \ LOCAL_STATIC_LIBRARIES := \ libneuralnetworks_common \ libflatbuffers-framework \ - arm_compute_library + arm_compute_library \ + $(ARMNN_BACKEND_STATIC_LIBRARIES) LOCAL_WHOLE_STATIC_LIBRARIES := \ libarmnn-driver@1.0 @@ -678,7 +736,8 @@ LOCAL_SHARED_LIBRARIES := \ libutils \ android.hardware.neuralnetworks@1.0 \ android.hidl.allocator@1.0 \ - android.hidl.memory@1.0 + android.hidl.memory@1.0 \ + $(ARMNN_BACKEND_SHARED_LIBRARIES) ifeq ($(P_OR_LATER),1) # Required to build the 1.0 version of the NN Driver on Android P and later versions, @@ -732,8 +791,12 @@ LOCAL_PROPRIETARY_MODULE := true LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk LOCAL_C_INCLUDES := \ - $(ARMNN_HEADER_PATH) \ + $(ARMNN_GENERATED_HEADER_PATH) \ $(ARMNN_THIRD_PARTY_PATH) \ + $(ARMNN_PROFILING_HEADER_PATH) \ + $(ARMNN_COMMON_PROFILING_HEADER_PATH) \ + $(ARMNN_CLIENT_PROFILING_HEADER_PATH) \ + $(ARMNN_HEADER_PATH) \ $(NN_HEADER_PATH) LOCAL_CFLAGS := \ @@ -744,6 +807,8 @@ LOCAL_CFLAGS := \ ifeq ($(ARMNN_DRIVER_DEBUG),1) LOCAL_CFLAGS += \ -UNDEBUG +LOCAL_LDFLAGS += \ + -Wl,-Map=neuralNetworks11MapFile.map endif # ARMNN_DRIVER_DEBUG == 1 # Required to build with the changes made to the Android ML framework specific to Android R @@ -763,7 +828,8 @@ LOCAL_SRC_FILES := \ LOCAL_STATIC_LIBRARIES := \ libneuralnetworks_common \ libflatbuffers-framework \ - arm_compute_library + arm_compute_library \ + $(ARMNN_BACKEND_STATIC_LIBRARIES) LOCAL_WHOLE_STATIC_LIBRARIES := \ libarmnn-driver@1.1 @@ -781,7 +847,8 @@ LOCAL_SHARED_LIBRARIES := \ android.hardware.neuralnetworks@1.0 \ android.hardware.neuralnetworks@1.1 \ android.hidl.allocator@1.0 \ - android.hidl.memory@1.0 + android.hidl.memory@1.0 \ + $(ARMNN_BACKEND_SHARED_LIBRARIES) ifeq ($(Q_OR_LATER),1) LOCAL_SHARED_LIBRARIES+= \ @@ -825,8 +892,12 @@ LOCAL_PROPRIETARY_MODULE := true LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk LOCAL_C_INCLUDES := \ - $(ARMNN_HEADER_PATH) \ + $(ARMNN_GENERATED_HEADER_PATH) \ $(ARMNN_THIRD_PARTY_PATH) \ + $(ARMNN_PROFILING_HEADER_PATH) \ + $(ARMNN_COMMON_PROFILING_HEADER_PATH) \ + $(ARMNN_CLIENT_PROFILING_HEADER_PATH) \ + $(ARMNN_HEADER_PATH) \ $(NN_HEADER_PATH) LOCAL_CFLAGS := \ @@ -837,6 +908,8 @@ LOCAL_CFLAGS := \ ifeq ($(ARMNN_DRIVER_DEBUG),1) LOCAL_CFLAGS += \ -UNDEBUG +LOCAL_LDFLAGS += \ + -Wl,-Map=neuralNetworks12MapFile.map endif # ARMNN_DRIVER_DEBUG == 1 # Required to build with the changes made to the Android ML framework specific to Android R @@ -856,7 +929,8 @@ LOCAL_SRC_FILES := \ LOCAL_STATIC_LIBRARIES := \ libneuralnetworks_common \ libflatbuffers-framework \ - arm_compute_library + arm_compute_library \ + $(ARMNN_BACKEND_STATIC_LIBRARIES) LOCAL_WHOLE_STATIC_LIBRARIES := \ libarmnn-driver@1.2 @@ -879,7 +953,8 @@ LOCAL_SHARED_LIBRARIES := \ android.hidl.memory@1.0 \ android.hardware.neuralnetworks@1.0 \ android.hardware.neuralnetworks@1.1 \ - android.hardware.neuralnetworks@1.2 + android.hardware.neuralnetworks@1.2 \ + $(ARMNN_BACKEND_SHARED_LIBRARIES) ifeq ($(R_OR_LATER),1) LOCAL_SHARED_LIBRARIES+= \ @@ -914,8 +989,12 @@ LOCAL_PROPRIETARY_MODULE := true LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk LOCAL_C_INCLUDES := \ - $(ARMNN_HEADER_PATH) \ + $(ARMNN_GENERATED_HEADER_PATH) \ $(ARMNN_THIRD_PARTY_PATH) \ + $(ARMNN_PROFILING_HEADER_PATH) \ + $(ARMNN_COMMON_PROFILING_HEADER_PATH) \ + $(ARMNN_CLIENT_PROFILING_HEADER_PATH) \ + $(ARMNN_HEADER_PATH) \ $(NN_HEADER_PATH) LOCAL_CFLAGS := \ @@ -936,6 +1015,8 @@ endif ifeq ($(ARMNN_DRIVER_DEBUG),1) LOCAL_CFLAGS += \ -UNDEBUG +LOCAL_LDFLAGS += \ + -Wl,-Map=neuralNetworks13MapFile.map endif # ARMNN_DRIVER_DEBUG == 1 LOCAL_SRC_FILES := \ @@ -944,7 +1025,8 @@ LOCAL_SRC_FILES := \ LOCAL_STATIC_LIBRARIES := \ libneuralnetworks_common \ libflatbuffers-framework \ - arm_compute_library + arm_compute_library \ + $(ARMNN_BACKEND_STATIC_LIBRARIES) LOCAL_WHOLE_STATIC_LIBRARIES := \ libarmnn-driver@1.3 @@ -969,7 +1051,8 @@ LOCAL_SHARED_LIBRARIES := \ android.hardware.neuralnetworks@1.0 \ android.hardware.neuralnetworks@1.1 \ android.hardware.neuralnetworks@1.2 \ - android.hardware.neuralnetworks@1.3 + android.hardware.neuralnetworks@1.3 \ + $(ARMNN_BACKEND_SHARED_LIBRARIES) ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1) LOCAL_SHARED_LIBRARIES+= \ |