aboutsummaryrefslogtreecommitdiff
path: root/Android.mk
diff options
context:
space:
mode:
Diffstat (limited to 'Android.mk')
-rw-r--r--Android.mk161
1 files changed, 122 insertions, 39 deletions
diff --git a/Android.mk b/Android.mk
index 06b95a1a..d6dbf0ac 100644
--- a/Android.mk
+++ b/Android.mk
@@ -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+= \