981 lines
25 KiB
Makefile
981 lines
25 KiB
Makefile
#
|
|
# Copyright © 2017 ARM Ltd. All rights reserved.
|
|
# SPDX-License-Identifier: MIT
|
|
#
|
|
|
|
ANDROID_NN_DRIVER_LOCAL_PATH := $(call my-dir)
|
|
LOCAL_PATH := $(ANDROID_NN_DRIVER_LOCAL_PATH)
|
|
|
|
P_OR_LATER := 1
|
|
Q_OR_LATER := 1
|
|
R_OR_LATER := 1
|
|
S_OR_LATER := 1
|
|
|
|
CPP_VERSION := c++14
|
|
|
|
ifeq ($(Q_OR_LATER),1)
|
|
CPP_VERSION := c++17
|
|
endif
|
|
|
|
# Configure these paths if you move the source or Khronos headers
|
|
ARMNN_HEADER_PATH := $(LOCAL_PATH)/../armnn/include
|
|
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)/../../packages/modules/NeuralNetworks/common/include \
|
|
$(LOCAL_PATH)/../../packages/modules/NeuralNetworks/runtime/include
|
|
|
|
# Variables to control CL/NEON/reference backend support
|
|
# Set them to '0' to disable support for a specific backend
|
|
ARMNN_COMPUTE_CL_ENABLED := 0
|
|
ARMNN_COMPUTE_NEON_ENABLED := 0
|
|
ARMNN_REF_ENABLED := 1
|
|
ARMNN_ETHOSN_ENABLED := 1
|
|
|
|
ifeq ($(ARMNN_COMPUTE_CL_ENABLE),1)
|
|
ARMNN_COMPUTE_CL_ENABLED := 1
|
|
endif
|
|
|
|
ifeq ($(ARMNN_COMPUTE_NEON_ENABLE),1)
|
|
ARMNN_COMPUTE_NEON_ENABLED := 1
|
|
endif
|
|
|
|
ifeq ($(ARMNN_REF_ENABLE),0)
|
|
ARMNN_REF_ENABLED := 0
|
|
endif
|
|
|
|
ifeq ($(ARMNN_ETHOSN_ENABLE),0)
|
|
ARMNN_ETHOSN_ENABLED := 0
|
|
endif
|
|
|
|
# Variable to control inclusion of libOpenCL shared library
|
|
ARMNN_INCLUDE_LIBOPENCL := $(ARMNN_COMPUTE_CL_ENABLED)
|
|
ifeq ($(ARMNN_LIBOPENCL),0)
|
|
ARMNN_INCLUDE_LIBOPENCL := 0
|
|
endif
|
|
|
|
# Variable to control retire rate of priority queue
|
|
RETIRE_RATE := 3
|
|
|
|
#######################
|
|
# libarmnn-driver@1.0 #
|
|
#######################
|
|
include $(CLEAR_VARS)
|
|
|
|
LOCAL_MODULE := libarmnn-driver@1.0
|
|
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-MIT
|
|
LOCAL_LICENSE_CONDITIONS := notice
|
|
LOCAL_NOTICE_FILE := $(LOCAL_PATH)/LICENSE
|
|
ifeq ($(Q_OR_LATER),1)
|
|
# "eng" is deprecated in Android Q
|
|
LOCAL_MODULE_TAGS := optional
|
|
else
|
|
LOCAL_MODULE_TAGS := eng optional
|
|
endif
|
|
LOCAL_ARM_MODE := arm
|
|
LOCAL_PROPRIETARY_MODULE := true
|
|
# Mark source files as dependent on Android.mk
|
|
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
|
|
|
|
LOCAL_C_INCLUDES := \
|
|
$(ARMNN_HEADER_PATH) \
|
|
$(ARMNN_THIRD_PARTY_PATH) \
|
|
$(ARMNN_UTILS_HEADER_PATH) \
|
|
$(ARMNN_THIRD_PARTY_PATH) \
|
|
$(OPENCL_HEADER_PATH) \
|
|
$(NN_HEADER_PATH)
|
|
|
|
LOCAL_CFLAGS := \
|
|
-std=$(CPP_VERSION) \
|
|
-fexceptions \
|
|
-Werror \
|
|
-Wno-format-security
|
|
|
|
# Required to build with the changes made to the Android ML framework specific to Android R
|
|
ifeq ($(R_OR_LATER),1)
|
|
LOCAL_CFLAGS+= \
|
|
-DARMNN_ANDROID_R
|
|
endif
|
|
ifeq ($(S_OR_LATER),1)
|
|
LOCAL_CFLAGS+= \
|
|
-DARMNN_ANDROID_S
|
|
endif
|
|
|
|
ifeq ($(ARMNN_DRIVER_DEBUG),1)
|
|
LOCAL_CFLAGS+= \
|
|
-UNDEBUG
|
|
endif # ARMNN_DRIVER_DEBUG == 1
|
|
|
|
ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
|
|
LOCAL_CFLAGS += \
|
|
-DARMCOMPUTECL_ENABLED
|
|
endif # ARMNN_COMPUTE_CL_ENABLED == 1
|
|
|
|
ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
|
|
LOCAL_CFLAGS += \
|
|
-DARMCOMPUTENEON_ENABLED
|
|
endif # ARMNN_COMPUTE_NEON_ENABLED == 1
|
|
|
|
ifeq ($(ARMNN_REF_ENABLED),1)
|
|
LOCAL_CFLAGS += \
|
|
-DARMNNREF_ENABLED
|
|
endif # ARMNN_REF_ENABLED == 1
|
|
|
|
ifeq ($(ARMNN_ETHOSN_ENABLED),1)
|
|
LOCAL_CFLAGS += \
|
|
-DARMNNETHOSN_ENABLED
|
|
endif # ARMNN_ETHOSN_ENABLED == 1
|
|
|
|
LOCAL_SRC_FILES := \
|
|
1.0/ArmnnDriverImpl.cpp \
|
|
1.0/HalPolicy.cpp \
|
|
ArmnnDriverImpl.cpp \
|
|
DriverOptions.cpp \
|
|
ArmnnDevice.cpp \
|
|
ArmnnPreparedModel.cpp \
|
|
ModelToINetworkConverter.cpp \
|
|
RequestThread.cpp \
|
|
Utils.cpp \
|
|
ConversionUtils.cpp
|
|
|
|
LOCAL_STATIC_LIBRARIES := \
|
|
libneuralnetworks_common \
|
|
arm_compute_library
|
|
|
|
LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
|
|
|
|
LOCAL_SHARED_LIBRARIES := \
|
|
libbase \
|
|
libhidlbase \
|
|
libhidltransport \
|
|
libhidlmemory \
|
|
liblog \
|
|
libutils \
|
|
android.hardware.neuralnetworks@1.0 \
|
|
android.hidl.allocator@1.0 \
|
|
android.hidl.memory@1.0
|
|
|
|
ifeq ($(P_OR_LATER),1)
|
|
# Required to build the 1.0 version of the NN Driver on Android P and later versions,
|
|
# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
|
|
LOCAL_SHARED_LIBRARIES+= \
|
|
android.hardware.neuralnetworks@1.1
|
|
endif # PLATFORM_VERSION == 9
|
|
|
|
ifeq ($(Q_OR_LATER),1)
|
|
LOCAL_SHARED_LIBRARIES+= \
|
|
libnativewindow \
|
|
libui \
|
|
libfmq \
|
|
libcutils \
|
|
android.hardware.neuralnetworks@1.2
|
|
endif # Q or later
|
|
|
|
ifeq ($(R_OR_LATER),1)
|
|
LOCAL_SHARED_LIBRARIES+= \
|
|
libsync \
|
|
android.hardware.neuralnetworks@1.3
|
|
endif # R or later
|
|
|
|
ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
|
|
ifeq (,$(realpath $(TOPDIR)vendor/arm/mali/valhall/Android.bp))
|
|
LOCAL_SHARED_LIBRARIES += libGLES_mali
|
|
else
|
|
LOCAL_SHARED_LIBRARIES += libOpenCL
|
|
endif
|
|
endif
|
|
|
|
include $(BUILD_STATIC_LIBRARY)
|
|
|
|
ifeq ($(P_OR_LATER),1)
|
|
# The following target is available starting from Android P
|
|
|
|
#######################
|
|
# libarmnn-driver@1.1 #
|
|
#######################
|
|
include $(CLEAR_VARS)
|
|
|
|
LOCAL_MODULE := libarmnn-driver@1.1
|
|
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-MIT
|
|
LOCAL_LICENSE_CONDITIONS := notice
|
|
LOCAL_NOTICE_FILE := $(LOCAL_PATH)/LICENSE
|
|
ifeq ($(Q_OR_LATER),1)
|
|
# "eng" is deprecated in Android Q
|
|
LOCAL_MODULE_TAGS := optional
|
|
else
|
|
LOCAL_MODULE_TAGS := eng optional
|
|
endif
|
|
#PRODUCT_PACKAGES_ENG := libarmnn-driver@1.1
|
|
LOCAL_ARM_MODE := arm
|
|
LOCAL_PROPRIETARY_MODULE := true
|
|
# Mark source files as dependent on Android.mk
|
|
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
|
|
|
|
LOCAL_C_INCLUDES := \
|
|
$(ARMNN_HEADER_PATH) \
|
|
$(ARMNN_THIRD_PARTY_PATH) \
|
|
$(ARMNN_UTILS_HEADER_PATH) \
|
|
$(ARMNN_THIRD_PARTY_PATH) \
|
|
$(OPENCL_HEADER_PATH) \
|
|
$(NN_HEADER_PATH)
|
|
|
|
LOCAL_CFLAGS := \
|
|
-std=$(CPP_VERSION) \
|
|
-fexceptions \
|
|
-Werror \
|
|
-Wno-format-security \
|
|
-DARMNN_ANDROID_NN_V1_1
|
|
|
|
ifeq ($(ARMNN_DRIVER_DEBUG),1)
|
|
LOCAL_CFLAGS+= \
|
|
-UNDEBUG
|
|
endif # ARMNN_DRIVER_DEBUG == 1
|
|
|
|
# Required to build with the changes made to the Android ML framework specific to Android R
|
|
ifeq ($(R_OR_LATER),1)
|
|
LOCAL_CFLAGS+= \
|
|
-DARMNN_ANDROID_R
|
|
endif
|
|
ifeq ($(S_OR_LATER),1)
|
|
LOCAL_CFLAGS+= \
|
|
-DARMNN_ANDROID_S
|
|
endif
|
|
|
|
ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
|
|
LOCAL_CFLAGS += \
|
|
-DARMCOMPUTECL_ENABLED
|
|
endif # ARMNN_COMPUTE_CL_ENABLED == 1
|
|
|
|
ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
|
|
LOCAL_CFLAGS += \
|
|
-DARMCOMPUTENEON_ENABLED
|
|
endif # ARMNN_COMPUTE_NEON_ENABLED == 1
|
|
|
|
ifeq ($(ARMNN_REF_ENABLED),1)
|
|
LOCAL_CFLAGS += \
|
|
-DARMNNREF_ENABLED
|
|
endif # ARMNN_REF_ENABLED == 1
|
|
|
|
ifeq ($(ARMNN_ETHOSN_ENABLED),1)
|
|
LOCAL_CFLAGS += \
|
|
-DARMNNETHOSN_ENABLED
|
|
endif # ARMNN_ETHOSN_ENABLED == 1
|
|
|
|
LOCAL_SRC_FILES := \
|
|
1.0/ArmnnDriverImpl.cpp \
|
|
1.0/HalPolicy.cpp \
|
|
1.1/ArmnnDriverImpl.cpp \
|
|
1.1/HalPolicy.cpp \
|
|
ArmnnDriverImpl.cpp \
|
|
DriverOptions.cpp \
|
|
ArmnnDevice.cpp \
|
|
ArmnnPreparedModel.cpp \
|
|
ModelToINetworkConverter.cpp \
|
|
RequestThread.cpp \
|
|
Utils.cpp \
|
|
ConversionUtils.cpp
|
|
|
|
LOCAL_STATIC_LIBRARIES := \
|
|
libneuralnetworks_common \
|
|
arm_compute_library
|
|
|
|
LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
|
|
|
|
LOCAL_SHARED_LIBRARIES := \
|
|
libbase \
|
|
libhidlbase \
|
|
libhidltransport \
|
|
libhidlmemory \
|
|
liblog \
|
|
libutils \
|
|
android.hardware.neuralnetworks@1.0 \
|
|
android.hardware.neuralnetworks@1.1 \
|
|
android.hidl.allocator@1.0 \
|
|
android.hidl.memory@1.0
|
|
|
|
ifeq ($(Q_OR_LATER),1)
|
|
LOCAL_SHARED_LIBRARIES+= \
|
|
libnativewindow \
|
|
libui \
|
|
libfmq \
|
|
libcutils \
|
|
android.hardware.neuralnetworks@1.2
|
|
endif # PLATFORM_VERSION == Q
|
|
|
|
ifeq ($(R_OR_LATER),1)
|
|
LOCAL_SHARED_LIBRARIES+= \
|
|
libsync \
|
|
android.hardware.neuralnetworks@1.3
|
|
endif # R or later
|
|
|
|
ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
|
|
ifeq (,$(realpath $(TOPDIR)vendor/arm/mali/valhall/Android.bp))
|
|
LOCAL_SHARED_LIBRARIES += libGLES_mali
|
|
else
|
|
LOCAL_SHARED_LIBRARIES += libOpenCL
|
|
endif
|
|
endif
|
|
|
|
include $(BUILD_STATIC_LIBRARY)
|
|
|
|
endif # PLATFORM_VERSION == 9
|
|
|
|
ifeq ($(Q_OR_LATER),1)
|
|
# The following target is available starting from Android Q
|
|
|
|
#######################
|
|
# libarmnn-driver@1.2 #
|
|
#######################
|
|
include $(CLEAR_VARS)
|
|
|
|
LOCAL_MODULE := libarmnn-driver@1.2
|
|
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-MIT
|
|
LOCAL_LICENSE_CONDITIONS := notice
|
|
LOCAL_NOTICE_FILE := $(LOCAL_PATH)/LICENSE
|
|
LOCAL_MODULE_TAGS := optional
|
|
LOCAL_ARM_MODE := arm
|
|
LOCAL_PROPRIETARY_MODULE := true
|
|
# Mark source files as dependent on Android.mk
|
|
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
|
|
|
|
LOCAL_C_INCLUDES := \
|
|
$(ARMNN_HEADER_PATH) \
|
|
$(ARMNN_THIRD_PARTY_PATH) \
|
|
$(ARMNN_UTILS_HEADER_PATH) \
|
|
$(ARMNN_THIRD_PARTY_PATH) \
|
|
$(OPENCL_HEADER_PATH) \
|
|
$(NN_HEADER_PATH)
|
|
|
|
LOCAL_CFLAGS := \
|
|
-std=$(CPP_VERSION) \
|
|
-fexceptions \
|
|
-Werror \
|
|
-Wno-format-security \
|
|
-DARMNN_ANDROID_NN_V1_2
|
|
|
|
ifeq ($(ARMNN_DRIVER_DEBUG),1)
|
|
LOCAL_CFLAGS+= \
|
|
-UNDEBUG
|
|
endif # ARMNN_DRIVER_DEBUG == 1
|
|
|
|
# Required to build with the changes made to the Android ML framework specific to Android R
|
|
ifeq ($(R_OR_LATER),1)
|
|
LOCAL_CFLAGS+= \
|
|
-DARMNN_ANDROID_R
|
|
endif
|
|
ifeq ($(S_OR_LATER),1)
|
|
LOCAL_CFLAGS+= \
|
|
-DARMNN_ANDROID_S
|
|
endif
|
|
|
|
ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
|
|
LOCAL_CFLAGS += \
|
|
-DARMCOMPUTECL_ENABLED
|
|
endif # ARMNN_COMPUTE_CL_ENABLED == 1
|
|
|
|
ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
|
|
LOCAL_CFLAGS += \
|
|
-DARMCOMPUTENEON_ENABLED
|
|
endif # ARMNN_COMPUTE_NEON_ENABLED == 1
|
|
|
|
ifeq ($(ARMNN_REF_ENABLED),1)
|
|
LOCAL_CFLAGS += \
|
|
-DARMNNREF_ENABLED
|
|
endif # ARMNN_REF_ENABLED == 1
|
|
|
|
ifeq ($(ARMNN_ETHOSN_ENABLED),1)
|
|
LOCAL_CFLAGS += \
|
|
-DARMNNETHOSN_ENABLED
|
|
endif # ARMNN_ETHOSN_ENABLED == 1
|
|
|
|
LOCAL_SRC_FILES := \
|
|
1.0/ArmnnDriverImpl.cpp \
|
|
1.0/HalPolicy.cpp \
|
|
1.1/ArmnnDriverImpl.cpp \
|
|
1.1/HalPolicy.cpp \
|
|
1.2/ArmnnDriverImpl.cpp \
|
|
1.2/HalPolicy.cpp \
|
|
ArmnnDevice.cpp \
|
|
ArmnnDriverImpl.cpp \
|
|
ArmnnPreparedModel.cpp \
|
|
ArmnnPreparedModel_1_2.cpp \
|
|
ConversionUtils.cpp \
|
|
DriverOptions.cpp \
|
|
ModelToINetworkConverter.cpp \
|
|
RequestThread.cpp \
|
|
Utils.cpp
|
|
|
|
LOCAL_STATIC_LIBRARIES := \
|
|
libneuralnetworks_common \
|
|
arm_compute_library
|
|
|
|
LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
|
|
|
|
LOCAL_SHARED_LIBRARIES := \
|
|
libbase \
|
|
libhidlbase \
|
|
libhidltransport \
|
|
libhidlmemory \
|
|
liblog \
|
|
libutils \
|
|
libnativewindow \
|
|
libui \
|
|
libfmq \
|
|
libcutils \
|
|
android.hidl.allocator@1.0 \
|
|
android.hidl.memory@1.0 \
|
|
android.hardware.neuralnetworks@1.0 \
|
|
android.hardware.neuralnetworks@1.1 \
|
|
android.hardware.neuralnetworks@1.2
|
|
|
|
ifeq ($(R_OR_LATER),1)
|
|
LOCAL_SHARED_LIBRARIES+= \
|
|
libsync \
|
|
android.hardware.neuralnetworks@1.3
|
|
endif # R or later
|
|
|
|
ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
|
|
ifeq (,$(realpath $(TOPDIR)vendor/arm/mali/valhall/Android.bp))
|
|
LOCAL_SHARED_LIBRARIES += libGLES_mali
|
|
else
|
|
LOCAL_SHARED_LIBRARIES += libOpenCL
|
|
endif
|
|
endif
|
|
|
|
include $(BUILD_STATIC_LIBRARY)
|
|
|
|
endif # PLATFORM_VERSION == Q
|
|
|
|
ifeq ($(R_OR_LATER),1)
|
|
# The following target is available starting from Android R
|
|
|
|
#######################
|
|
# libarmnn-driver@1.3 #
|
|
#######################
|
|
include $(CLEAR_VARS)
|
|
|
|
LOCAL_MODULE := libarmnn-driver@1.3
|
|
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-MIT
|
|
LOCAL_LICENSE_CONDITIONS := notice
|
|
LOCAL_NOTICE_FILE := $(LOCAL_PATH)/LICENSE
|
|
LOCAL_MODULE_TAGS := optional
|
|
LOCAL_ARM_MODE := arm
|
|
LOCAL_PROPRIETARY_MODULE := true
|
|
# Mark source files as dependent on Android.mk
|
|
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
|
|
|
|
LOCAL_C_INCLUDES := \
|
|
$(ARMNN_HEADER_PATH) \
|
|
$(ARMNN_THIRD_PARTY_PATH) \
|
|
$(ARMNN_UTILS_HEADER_PATH) \
|
|
$(ARMNN_THIRD_PARTY_PATH) \
|
|
$(OPENCL_HEADER_PATH) \
|
|
$(NN_HEADER_PATH)
|
|
|
|
LOCAL_CFLAGS := \
|
|
-std=$(CPP_VERSION) \
|
|
-fexceptions \
|
|
-Werror \
|
|
-Wno-format-security \
|
|
-DARMNN_ANDROID_NN_V1_3 \
|
|
-DARMNN_ANDROID_R \
|
|
-DARMNN_ANDROID_S
|
|
|
|
ifeq ($(ARMNN_DRIVER_DEBUG),1)
|
|
LOCAL_CFLAGS+= \
|
|
-UNDEBUG
|
|
endif # ARMNN_DRIVER_DEBUG == 1
|
|
|
|
ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
|
|
LOCAL_CFLAGS += \
|
|
-DARMCOMPUTECL_ENABLED
|
|
endif # ARMNN_COMPUTE_CL_ENABLED == 1
|
|
|
|
ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
|
|
LOCAL_CFLAGS += \
|
|
-DARMCOMPUTENEON_ENABLED
|
|
endif # ARMNN_COMPUTE_NEON_ENABLED == 1
|
|
|
|
ifeq ($(ARMNN_REF_ENABLED),1)
|
|
LOCAL_CFLAGS += \
|
|
-DARMNNREF_ENABLED
|
|
endif # ARMNN_REF_ENABLED == 1
|
|
|
|
ifeq ($(ARMNN_ETHOSN_ENABLED),1)
|
|
LOCAL_CFLAGS += \
|
|
-DARMNNETHOSN_ENABLED
|
|
endif # ARMNN_ETHOSN_ENABLED == 1
|
|
|
|
LOCAL_CFLAGS += \
|
|
-DRETIRE_RATE=$(RETIRE_RATE)
|
|
|
|
LOCAL_SRC_FILES := \
|
|
1.0/ArmnnDriverImpl.cpp \
|
|
1.0/HalPolicy.cpp \
|
|
1.1/ArmnnDriverImpl.cpp \
|
|
1.1/HalPolicy.cpp \
|
|
1.2/ArmnnDriverImpl.cpp \
|
|
1.2/HalPolicy.cpp \
|
|
1.3/ArmnnDriverImpl.cpp \
|
|
1.3/HalPolicy.cpp \
|
|
ArmnnDevice.cpp \
|
|
ArmnnDriverImpl.cpp \
|
|
ArmnnPreparedModel.cpp \
|
|
ArmnnPreparedModel_1_2.cpp \
|
|
ArmnnPreparedModel_1_3.cpp \
|
|
ConversionUtils.cpp \
|
|
DriverOptions.cpp \
|
|
ModelToINetworkConverter.cpp \
|
|
RequestThread.cpp \
|
|
RequestThread_1_3.cpp \
|
|
Utils.cpp
|
|
|
|
LOCAL_STATIC_LIBRARIES := \
|
|
libneuralnetworks_common \
|
|
arm_compute_library
|
|
|
|
LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
|
|
|
|
LOCAL_SHARED_LIBRARIES := \
|
|
libbase \
|
|
libhidlbase \
|
|
libhidltransport \
|
|
libhidlmemory \
|
|
liblog \
|
|
libutils \
|
|
libnativewindow \
|
|
libui \
|
|
libfmq \
|
|
libcutils \
|
|
android.hidl.allocator@1.0 \
|
|
android.hidl.memory@1.0 \
|
|
libsync \
|
|
android.hardware.neuralnetworks@1.0 \
|
|
android.hardware.neuralnetworks@1.1 \
|
|
android.hardware.neuralnetworks@1.2 \
|
|
android.hardware.neuralnetworks@1.3
|
|
|
|
ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
|
|
ifeq (,$(realpath $(TOPDIR)vendor/arm/mali/valhall/Android.bp))
|
|
LOCAL_SHARED_LIBRARIES += libGLES_mali
|
|
else
|
|
LOCAL_SHARED_LIBRARIES += libOpenCL
|
|
endif
|
|
endif
|
|
|
|
include $(BUILD_STATIC_LIBRARY)
|
|
|
|
endif # PLATFORM_VERSION == R
|
|
|
|
#####################################################
|
|
# android.hardware.neuralnetworks@1.0-service-armnn #
|
|
#####################################################
|
|
include $(CLEAR_VARS)
|
|
|
|
LOCAL_MODULE := android.hardware.neuralnetworks@1.0-service-armnn
|
|
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-MIT
|
|
LOCAL_LICENSE_CONDITIONS := notice
|
|
LOCAL_NOTICE_FILE := $(LOCAL_PATH)/LICENSE
|
|
LOCAL_INIT_RC := android.hardware.neuralnetworks@1.0-service-armnn.rc
|
|
ifeq ($(Q_OR_LATER),1)
|
|
# "eng" is deprecated in Android Q
|
|
LOCAL_MODULE_TAGS := optional
|
|
else
|
|
LOCAL_MODULE_TAGS := eng optional
|
|
endif
|
|
LOCAL_ARM_MODE := arm
|
|
LOCAL_MODULE_RELATIVE_PATH := hw
|
|
LOCAL_PROPRIETARY_MODULE := true
|
|
# Mark source files as dependent on Android.mk
|
|
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
|
|
|
|
LOCAL_C_INCLUDES := \
|
|
$(ARMNN_HEADER_PATH) \
|
|
$(ARMNN_THIRD_PARTY_PATH) \
|
|
$(NN_HEADER_PATH)
|
|
|
|
LOCAL_CFLAGS := \
|
|
-std=$(CPP_VERSION) \
|
|
-fexceptions
|
|
|
|
ifeq ($(ARMNN_DRIVER_DEBUG),1)
|
|
LOCAL_CFLAGS += \
|
|
-UNDEBUG
|
|
endif # ARMNN_DRIVER_DEBUG == 1
|
|
|
|
# Required to build with the changes made to the Android ML framework specific to Android R
|
|
ifeq ($(R_OR_LATER),1)
|
|
LOCAL_CFLAGS+= \
|
|
-DARMNN_ANDROID_R
|
|
endif
|
|
|
|
ifeq ($(S_OR_LATER),1)
|
|
LOCAL_CFLAGS+= \
|
|
-DARMNN_ANDROID_S
|
|
endif
|
|
|
|
LOCAL_SRC_FILES := \
|
|
service.cpp
|
|
|
|
LOCAL_STATIC_LIBRARIES := \
|
|
libneuralnetworks_common \
|
|
arm_compute_library
|
|
|
|
LOCAL_WHOLE_STATIC_LIBRARIES := \
|
|
libarmnn-driver@1.0
|
|
|
|
LOCAL_SHARED_LIBRARIES := \
|
|
libbase \
|
|
libhidlbase \
|
|
libhidltransport \
|
|
libhidlmemory \
|
|
libdl \
|
|
libhardware \
|
|
liblog \
|
|
libtextclassifier_hash \
|
|
libutils \
|
|
android.hardware.neuralnetworks@1.0 \
|
|
android.hidl.allocator@1.0 \
|
|
android.hidl.memory@1.0
|
|
|
|
ifeq ($(P_OR_LATER),1)
|
|
# Required to build the 1.0 version of the NN Driver on Android P and later versions,
|
|
# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
|
|
LOCAL_SHARED_LIBRARIES+= \
|
|
android.hardware.neuralnetworks@1.1
|
|
endif # PLATFORM_VERSION == 9
|
|
|
|
ifeq ($(Q_OR_LATER),1)
|
|
LOCAL_SHARED_LIBRARIES+= \
|
|
libnativewindow \
|
|
libui \
|
|
libfmq \
|
|
libcutils \
|
|
android.hardware.neuralnetworks@1.2
|
|
endif # PLATFORM_VERSION == Q
|
|
ifeq ($(R_OR_LATER),1)
|
|
LOCAL_SHARED_LIBRARIES+= android.hardware.neuralnetworks@1.3
|
|
endif # PLATFORM_VERSION == R
|
|
|
|
ifeq ($(R_OR_LATER),1)
|
|
LOCAL_SHARED_LIBRARIES+= \
|
|
libsync \
|
|
android.hardware.neuralnetworks@1.3
|
|
endif # R or later
|
|
|
|
ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
|
|
ifeq (,$(realpath $(TOPDIR)vendor/arm/mali/valhall/Android.bp))
|
|
LOCAL_SHARED_LIBRARIES += libGLES_mali
|
|
else
|
|
LOCAL_SHARED_LIBRARIES += libOpenCL
|
|
endif
|
|
endif
|
|
|
|
include $(BUILD_EXECUTABLE)
|
|
|
|
ifeq ($(P_OR_LATER),1)
|
|
# The following target is available starting from Android P
|
|
|
|
#####################################################
|
|
# android.hardware.neuralnetworks@1.1-service-armnn #
|
|
#####################################################
|
|
include $(CLEAR_VARS)
|
|
|
|
LOCAL_MODULE := android.hardware.neuralnetworks@1.1-service-armnn
|
|
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-MIT
|
|
LOCAL_LICENSE_CONDITIONS := notice
|
|
LOCAL_NOTICE_FILE := $(LOCAL_PATH)/LICENSE
|
|
LOCAL_INIT_RC := android.hardware.neuralnetworks@1.1-service-armnn.rc
|
|
ifeq ($(Q_OR_LATER),1)
|
|
# "eng" is deprecated in Android Q
|
|
LOCAL_MODULE_TAGS := optional
|
|
else
|
|
LOCAL_MODULE_TAGS := eng optional
|
|
endif
|
|
LOCAL_ARM_MODE := arm
|
|
LOCAL_MODULE_RELATIVE_PATH := hw
|
|
LOCAL_PROPRIETARY_MODULE := true
|
|
# Mark source files as dependent on Android.mk
|
|
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
|
|
|
|
LOCAL_C_INCLUDES := \
|
|
$(ARMNN_HEADER_PATH) \
|
|
$(ARMNN_THIRD_PARTY_PATH) \
|
|
$(NN_HEADER_PATH)
|
|
|
|
LOCAL_CFLAGS := \
|
|
-std=$(CPP_VERSION) \
|
|
-fexceptions \
|
|
-DARMNN_ANDROID_NN_V1_1
|
|
|
|
ifeq ($(ARMNN_DRIVER_DEBUG),1)
|
|
LOCAL_CFLAGS += \
|
|
-UNDEBUG
|
|
endif # ARMNN_DRIVER_DEBUG == 1
|
|
|
|
# Required to build with the changes made to the Android ML framework specific to Android R
|
|
ifeq ($(R_OR_LATER),1)
|
|
LOCAL_CFLAGS+= \
|
|
-DARMNN_ANDROID_R
|
|
endif
|
|
|
|
ifeq ($(S_OR_LATER),1)
|
|
LOCAL_CFLAGS+= \
|
|
-DARMNN_ANDROID_S
|
|
endif
|
|
|
|
LOCAL_SRC_FILES := \
|
|
service.cpp
|
|
|
|
LOCAL_STATIC_LIBRARIES := \
|
|
libneuralnetworks_common \
|
|
arm_compute_library
|
|
|
|
LOCAL_WHOLE_STATIC_LIBRARIES := \
|
|
libarmnn-driver@1.1
|
|
|
|
LOCAL_SHARED_LIBRARIES := \
|
|
libbase \
|
|
libhidlbase \
|
|
libhidltransport \
|
|
libhidlmemory \
|
|
libdl \
|
|
libhardware \
|
|
liblog \
|
|
libtextclassifier_hash \
|
|
libutils \
|
|
android.hardware.neuralnetworks@1.0 \
|
|
android.hardware.neuralnetworks@1.1 \
|
|
android.hidl.allocator@1.0 \
|
|
android.hidl.memory@1.0
|
|
|
|
ifeq ($(Q_OR_LATER),1)
|
|
LOCAL_SHARED_LIBRARIES+= \
|
|
libnativewindow \
|
|
libui \
|
|
libfmq \
|
|
libcutils \
|
|
android.hardware.neuralnetworks@1.2
|
|
endif # PLATFORM_VERSION == Q
|
|
|
|
ifeq ($(R_OR_LATER),1)
|
|
LOCAL_SHARED_LIBRARIES+= \
|
|
libsync \
|
|
android.hardware.neuralnetworks@1.3
|
|
endif # PLATFORM_VERSION == R
|
|
|
|
ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
|
|
ifeq (,$(realpath $(TOPDIR)vendor/arm/mali/valhall/Android.bp))
|
|
LOCAL_SHARED_LIBRARIES += libGLES_mali
|
|
else
|
|
LOCAL_SHARED_LIBRARIES += libOpenCL
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(R_OR_LATER),1)
|
|
LOCAL_SHARED_LIBRARIES+= android.hardware.neuralnetworks@1.3
|
|
endif # PLATFORM_VERSION == R
|
|
|
|
include $(BUILD_EXECUTABLE)
|
|
|
|
endif # PLATFORM_VERSION == 9
|
|
|
|
ifeq ($(Q_OR_LATER),1)
|
|
# The following target is available starting from Android Q
|
|
|
|
#####################################################
|
|
# android.hardware.neuralnetworks@1.2-service-armnn #
|
|
#####################################################
|
|
include $(CLEAR_VARS)
|
|
|
|
LOCAL_MODULE := android.hardware.neuralnetworks@1.2-service-armnn
|
|
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-MIT
|
|
LOCAL_LICENSE_CONDITIONS := notice
|
|
LOCAL_NOTICE_FILE := $(LOCAL_PATH)/LICENSE
|
|
LOCAL_INIT_RC := android.hardware.neuralnetworks@1.2-service-armnn.rc
|
|
LOCAL_MODULE_TAGS := optional
|
|
LOCAL_ARM_MODE := arm
|
|
LOCAL_MODULE_RELATIVE_PATH := hw
|
|
LOCAL_PROPRIETARY_MODULE := true
|
|
# Mark source files as dependent on Android.mk
|
|
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
|
|
|
|
LOCAL_C_INCLUDES := \
|
|
$(ARMNN_HEADER_PATH) \
|
|
$(ARMNN_THIRD_PARTY_PATH) \
|
|
$(NN_HEADER_PATH)
|
|
|
|
LOCAL_CFLAGS := \
|
|
-std=$(CPP_VERSION) \
|
|
-fexceptions \
|
|
-DARMNN_ANDROID_NN_V1_2 \
|
|
-Wno-unused-variable \
|
|
-Wno-unneeded-internal-declaration \
|
|
-Wno-unused-function \
|
|
-Wno-unused-local-typedef
|
|
|
|
ifeq ($(ARMNN_DRIVER_DEBUG),1)
|
|
LOCAL_CFLAGS += \
|
|
-UNDEBUG
|
|
endif # ARMNN_DRIVER_DEBUG == 1
|
|
|
|
# Required to build with the changes made to the Android ML framework specific to Android R
|
|
ifeq ($(R_OR_LATER),1)
|
|
LOCAL_CFLAGS+= \
|
|
-DARMNN_ANDROID_R
|
|
endif
|
|
|
|
ifeq ($(S_OR_LATER),1)
|
|
LOCAL_CFLAGS+= \
|
|
-DARMNN_ANDROID_S
|
|
endif
|
|
|
|
LOCAL_SRC_FILES := \
|
|
service.cpp
|
|
|
|
LOCAL_STATIC_LIBRARIES := \
|
|
libneuralnetworks_common \
|
|
arm_compute_library
|
|
|
|
LOCAL_WHOLE_STATIC_LIBRARIES := \
|
|
libarmnn-driver@1.2
|
|
|
|
LOCAL_SHARED_LIBRARIES := \
|
|
libbase \
|
|
libhidlbase \
|
|
libhidltransport \
|
|
libhidlmemory \
|
|
libdl \
|
|
libhardware \
|
|
liblog \
|
|
libtextclassifier_hash \
|
|
libutils \
|
|
libnativewindow \
|
|
libui \
|
|
libfmq \
|
|
libcutils \
|
|
android.hidl.allocator@1.0 \
|
|
android.hidl.memory@1.0 \
|
|
android.hardware.neuralnetworks@1.0 \
|
|
android.hardware.neuralnetworks@1.1 \
|
|
android.hardware.neuralnetworks@1.2 \
|
|
android.hardware.neuralnetworks@1.3
|
|
|
|
ifeq ($(R_OR_LATER),1)
|
|
LOCAL_SHARED_LIBRARIES+= \
|
|
libsync \
|
|
android.hardware.neuralnetworks@1.3
|
|
endif # R or later
|
|
|
|
ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
|
|
ifeq (,$(realpath $(TOPDIR)vendor/arm/mali/valhall/Android.bp))
|
|
LOCAL_SHARED_LIBRARIES += libGLES_mali
|
|
else
|
|
LOCAL_SHARED_LIBRARIES += libOpenCL
|
|
endif
|
|
|
|
|
|
LOCAL_LDFLAGS_32 := -Wl,-rpath,/vendor/lib/egl
|
|
LOCAL_LDFLAGS_64 := -Wl,-rpath,/vendor/lib64/egl
|
|
endif
|
|
|
|
include $(BUILD_EXECUTABLE)
|
|
|
|
endif # PLATFORM_VERSION == Q
|
|
|
|
ifeq ($(R_OR_LATER),1)
|
|
# The following target is available starting from Android R
|
|
|
|
#####################################################
|
|
# android.hardware.neuralnetworks@1.3-service-armnn #
|
|
#####################################################
|
|
include $(CLEAR_VARS)
|
|
|
|
LOCAL_MODULE := android.hardware.neuralnetworks@1.3-service-armnn
|
|
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-MIT
|
|
LOCAL_LICENSE_CONDITIONS := notice
|
|
LOCAL_NOTICE_FILE := $(LOCAL_PATH)/LICENSE
|
|
LOCAL_INIT_RC := android.hardware.neuralnetworks@1.3-service-armnn.rc
|
|
LOCAL_MODULE_TAGS := optional
|
|
LOCAL_ARM_MODE := arm
|
|
LOCAL_MODULE_RELATIVE_PATH := hw
|
|
LOCAL_PROPRIETARY_MODULE := true
|
|
# Mark source files as dependent on Android.mk
|
|
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
|
|
|
|
LOCAL_C_INCLUDES := \
|
|
$(ARMNN_HEADER_PATH) \
|
|
$(ARMNN_THIRD_PARTY_PATH) \
|
|
$(NN_HEADER_PATH)
|
|
|
|
LOCAL_CFLAGS := \
|
|
-std=$(CPP_VERSION) \
|
|
-fexceptions \
|
|
-DARMNN_ANDROID_NN_V1_3 \
|
|
-DARMNN_ANDROID_R \
|
|
-DARMNN_ANDROID_S \
|
|
-Wno-unused-variable \
|
|
-Wno-unneeded-internal-declaration \
|
|
-Wno-unused-function \
|
|
-Wno-unused-local-typedef
|
|
|
|
ifeq ($(ARMNN_DRIVER_DEBUG),1)
|
|
LOCAL_CFLAGS += \
|
|
-UNDEBUG
|
|
endif # ARMNN_DRIVER_DEBUG == 1
|
|
|
|
LOCAL_SRC_FILES := \
|
|
service.cpp
|
|
|
|
LOCAL_STATIC_LIBRARIES := \
|
|
libneuralnetworks_common \
|
|
arm_compute_library
|
|
|
|
LOCAL_WHOLE_STATIC_LIBRARIES := \
|
|
libarmnn-driver@1.3
|
|
|
|
LOCAL_SHARED_LIBRARIES := \
|
|
libbase \
|
|
libhidlbase \
|
|
libhidltransport \
|
|
libhidlmemory \
|
|
libdl \
|
|
libhardware \
|
|
liblog \
|
|
libtextclassifier_hash \
|
|
libutils \
|
|
libnativewindow \
|
|
libui \
|
|
libfmq \
|
|
libcutils \
|
|
libsync \
|
|
android.hidl.allocator@1.0 \
|
|
android.hidl.memory@1.0 \
|
|
android.hardware.neuralnetworks@1.0 \
|
|
android.hardware.neuralnetworks@1.1 \
|
|
android.hardware.neuralnetworks@1.2 \
|
|
android.hardware.neuralnetworks@1.3
|
|
|
|
ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
|
|
ifeq (,$(realpath $(TOPDIR)vendor/arm/mali/valhall/Android.bp))
|
|
LOCAL_SHARED_LIBRARIES += libGLES_mali
|
|
else
|
|
LOCAL_SHARED_LIBRARIES += libOpenCL
|
|
endif
|
|
LOCAL_LDFLAGS_32 := -Wl,-rpath,/vendor/lib/egl
|
|
LOCAL_LDFLAGS_64 := -Wl,-rpath,/vendor/lib64/egl
|
|
endif
|
|
|
|
include $(BUILD_EXECUTABLE)
|
|
|
|
endif # PLATFORM_VERSION == R
|
|
|
|
##########################
|
|
# armnn module and tests #
|
|
##########################
|
|
# Note we use ANDROID_NN_DRIVER_LOCAL_PATH rather than LOCAL_PATH because LOCAL_PATH will be overwritten
|
|
# when including other .mk files that set it.
|
|
#include $(ANDROID_NN_DRIVER_LOCAL_PATH)/armnn/Android.mk
|
|
#include $(ANDROID_NN_DRIVER_LOCAL_PATH)/test/Android.mk
|