aboutsummaryrefslogtreecommitdiff
path: root/Android.mk
diff options
context:
space:
mode:
authorMike Kelly <mike.kelly@arm.com>2019-06-11 16:35:25 +0100
committerMike Kelly <mike.kelly@arm.com>2019-06-11 16:35:25 +0100
commitb5fdf38f0c6596958fab2b84882f2792a31e585a (patch)
treed6b578b51c1923c759653d8a04efa90923ad4dd8 /Android.mk
parentb92f8901fc34749337ea7a9ad7a2717fc9490de5 (diff)
downloadandroid-nn-driver-b5fdf38f0c6596958fab2b84882f2792a31e585a.tar.gz
IVGCVSW-3181 Add HAL 1.2 support to android-nn-driver
* Updated Android.mk to build HAL 1.2 driver * Added 1.2 HalPolicy and ArmnnDriver * Added 1.2 ArmnnPreparedModel * Updated converters and utilities to accept new HAL 1.2 operands and operand types. Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Signed-off-by: Mike Kelly <mike.kelly@arm.com> Change-Id: I62856deab24e106f72cccce09468db4971756fa6
Diffstat (limited to 'Android.mk')
-rw-r--r--Android.mk210
1 files changed, 206 insertions, 4 deletions
diff --git a/Android.mk b/Android.mk
index 8d2fe9f7..8f598ca7 100644
--- a/Android.mk
+++ b/Android.mk
@@ -25,6 +25,12 @@ P_OR_LATER := 1
Q_OR_LATER := 1
endif # PLATFORM_VERSION == Q
+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_UTILS_HEADER_PATH := $(LOCAL_PATH)/armnn/src/armnnUtils
@@ -68,7 +74,7 @@ LOCAL_C_INCLUDES := \
$(NN_HEADER_PATH)
LOCAL_CFLAGS := \
- -std=c++14 \
+ -std=$(CPP_VERSION) \
-fexceptions \
-Werror \
-Wno-format-security
@@ -85,6 +91,11 @@ LOCAL_CFLAGS+= \
-UNDEBUG
endif # ARMNN_DRIVER_DEBUG == 1
+ifeq ($(Q_OR_LATER),1)
+LOCAL_CFLAGS += \
+ -DBOOST_NO_AUTO_PTR
+endif # PLATFORM_VERSION == Q or later
+
ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
LOCAL_CFLAGS += \
-DARMCOMPUTECL_ENABLED
@@ -179,7 +190,7 @@ LOCAL_C_INCLUDES := \
$(NN_HEADER_PATH)
LOCAL_CFLAGS := \
- -std=c++14 \
+ -std=$(CPP_VERSION) \
-fexceptions \
-Werror \
-Wno-format-security \
@@ -191,6 +202,11 @@ LOCAL_CFLAGS+= \
-UNDEBUG
endif # ARMNN_DRIVER_DEBUG == 1
+ifeq ($(Q_OR_LATER),1)
+LOCAL_CFLAGS += \
+ -DBOOST_NO_AUTO_PTR
+endif # PLATFORM_VERSION == Q or later
+
ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
LOCAL_CFLAGS += \
-DARMCOMPUTECL_ENABLED
@@ -255,6 +271,108 @@ 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_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_UTILS_HEADER_PATH) \
+ $(OPENCL_HEADER_PATH) \
+ $(NN_HEADER_PATH)
+
+LOCAL_CFLAGS := \
+ -std=$(CPP_VERSION) \
+ -fexceptions \
+ -Werror \
+ -Wno-format-security \
+ -DARMNN_ANDROID_Q \
+ -DARMNN_ANDROID_NN_V1_2
+
+ifeq ($(ARMNN_DRIVER_DEBUG),1)
+LOCAL_CFLAGS+= \
+ -UNDEBUG
+endif # ARMNN_DRIVER_DEBUG == 1
+
+ifeq ($(Q_OR_LATER),1)
+LOCAL_CFLAGS += \
+ -DBOOST_NO_AUTO_PTR
+endif # PLATFORM_VERSION == Q or later
+
+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
+
+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 \
+ ArmnnDriverImpl.cpp \
+ DriverOptions.cpp \
+ ArmnnDevice.cpp \
+ ArmnnPreparedModel.cpp \
+ ArmnnPreparedModel_1_2.cpp \
+ ModelToINetworkConverter.cpp \
+ RequestThread.cpp \
+ Utils.cpp \
+ ConversionUtils.cpp
+
+LOCAL_STATIC_LIBRARIES := \
+ libneuralnetworks_common \
+ libboost_log \
+ libboost_program_options \
+ libboost_system \
+ libboost_thread \
+ armnn-arm_compute
+
+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 ($(ARMNN_COMPUTE_CL_ENABLED),1)
+LOCAL_SHARED_LIBRARIES+= \
+ libOpenCL
+endif
+
+include $(BUILD_STATIC_LIBRARY)
+
+endif # PLATFORM_VERSION == Q
+
#####################################################
# android.hardware.neuralnetworks@1.0-service-armnn #
#####################################################
@@ -279,13 +397,18 @@ LOCAL_C_INCLUDES := \
$(NN_HEADER_PATH)
LOCAL_CFLAGS := \
- -std=c++14 \
+ -std=$(CPP_VERSION) \
-fexceptions
ifeq ($(ARMNN_DRIVER_DEBUG),1)
LOCAL_CFLAGS += \
-UNDEBUG
endif # ARMNN_DRIVER_DEBUG == 1
+ifeq ($(Q_OR_LATER),1)
+LOCAL_CFLAGS += \
+ -DBOOST_NO_AUTO_PTR
+endif # PLATFORM_VERSION == Q or later
+
LOCAL_SRC_FILES := \
service.cpp
@@ -363,7 +486,7 @@ LOCAL_C_INCLUDES := \
$(NN_HEADER_PATH)
LOCAL_CFLAGS := \
- -std=c++14 \
+ -std=$(CPP_VERSION) \
-fexceptions \
-DARMNN_ANDROID_NN_V1_1
ifeq ($(ARMNN_DRIVER_DEBUG),1)
@@ -371,6 +494,11 @@ LOCAL_CFLAGS += \
-UNDEBUG
endif # ARMNN_DRIVER_DEBUG == 1
+ifeq ($(Q_OR_LATER),1)
+LOCAL_CFLAGS += \
+ -DBOOST_NO_AUTO_PTR
+endif # PLATFORM_VERSION == Q or later
+
LOCAL_SRC_FILES := \
service.cpp
@@ -418,6 +546,80 @@ 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_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) \
+ $(NN_HEADER_PATH)
+
+LOCAL_CFLAGS := \
+ -std=$(CPP_VERSION) \
+ -fexceptions \
+ -DARMNN_ANDROID_NN_V1_2 \
+ -DBOOST_NO_AUTO_PTR
+ifeq ($(ARMNN_DRIVER_DEBUG),1)
+LOCAL_CFLAGS += \
+ -UNDEBUG
+endif # ARMNN_DRIVER_DEBUG == 1
+
+LOCAL_SRC_FILES := \
+ service.cpp
+
+LOCAL_STATIC_LIBRARIES := \
+ libneuralnetworks_common \
+ libboost_log \
+ libboost_program_options \
+ libboost_system \
+ libboost_thread \
+ armnn-arm_compute
+
+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
+
+ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
+LOCAL_SHARED_LIBRARIES+= \
+ libOpenCL
+endif
+
+include $(BUILD_EXECUTABLE)
+
+endif # PLATFORM_VERSION == Q
+
##########################
# armnn module and tests #
##########################