aboutsummaryrefslogtreecommitdiff
path: root/Android.mk
diff options
context:
space:
mode:
authorSadik Armagan <sadik.armagan@arm.com>2019-05-22 18:00:30 +0100
committerSadik Armagan <sadik.armagan@arm.com>2019-05-22 18:00:30 +0100
commitd6539c58519962acd8967e93ceb2da049631c832 (patch)
treefc1a324e5b2a757d6b9e26a721db362988c93dfe /Android.mk
parentef08a1179a707f4d93616403c2c6e0d143f71351 (diff)
downloadandroid-nn-driver-d6539c58519962acd8967e93ceb2da049631c832.tar.gz
IVGCVSW-2911 Add Android Q support to android-nn-driver infrastructure
* Updated Android.mk to build Android Q * Added androidnn.go to inject cpp flags for Q * Create Runtime when ACL is not enabled Change-Id: Ia3e7a8e484fc81ce63998a65e29753cbf941173c Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Signed-off-by: Kevin May <kevin.may@arm.com>
Diffstat (limited to 'Android.mk')
-rw-r--r--Android.mk130
1 files changed, 119 insertions, 11 deletions
diff --git a/Android.mk b/Android.mk
index 3d23ecc7..8d2fe9f7 100644
--- a/Android.mk
+++ b/Android.mk
@@ -6,6 +6,25 @@
ANDROID_NN_DRIVER_LOCAL_PATH := $(call my-dir)
LOCAL_PATH := $(ANDROID_NN_DRIVER_LOCAL_PATH)
+P_OR_LATER := 0
+Q_OR_LATER := 0
+
+ifeq ($(PLATFORM_VERSION),9)
+P_OR_LATER := 1
+endif # PLATFORM_VERSION == 9
+ifeq ($(PLATFORM_VERSION),P)
+P_OR_LATER := 1
+endif # PLATFORM_VERSION == P
+
+ifeq ($(PLATFORM_VERSION),10)
+P_OR_LATER := 1
+Q_OR_LATER := 1
+endif # PLATFORM_VERSION == 10
+ifeq ($(PLATFORM_VERSION),Q)
+P_OR_LATER := 1
+Q_OR_LATER := 1
+endif # PLATFORM_VERSION == Q
+
# 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
@@ -17,13 +36,26 @@ NN_HEADER_PATH := $(LOCAL_PATH)/../../../frameworks/ml/nn/runtime/include
ARMNN_COMPUTE_CL_ENABLED := 1
ARMNN_COMPUTE_NEON_ENABLED := 1
+ifeq ($(ARMNN_COMPUTE_CL_ENABLE),0)
+ARMNN_COMPUTE_CL_ENABLED := 0
+endif
+
+ifeq ($(ARMNN_COMPUTE_NEON_ENABLE),0)
+ARMNN_COMPUTE_NEON_ENABLED := 0
+endif
+
#######################
# libarmnn-driver@1.0 #
#######################
include $(CLEAR_VARS)
LOCAL_MODULE := libarmnn-driver@1.0
+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
@@ -40,20 +72,24 @@ LOCAL_CFLAGS := \
-fexceptions \
-Werror \
-Wno-format-security
-ifeq ($(PLATFORM_VERSION),9)
+
+ifeq ($(P_OR_LATER),1)
# Required to build with the changes made to the Android ML framework starting from Android P,
# regardless of the HAL version used for the build.
LOCAL_CFLAGS+= \
-DARMNN_ANDROID_P
endif # PLATFORM_VERSION == 9
+
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
@@ -90,18 +126,32 @@ LOCAL_SHARED_LIBRARIES := \
libutils \
android.hardware.neuralnetworks@1.0 \
android.hidl.allocator@1.0 \
- android.hidl.memory@1.0 \
- libOpenCL
-ifeq ($(PLATFORM_VERSION),9)
+ 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 ($(ARMNN_COMPUTE_CL_ENABLED),1)
+LOCAL_SHARED_LIBRARIES+= \
+ libOpenCL
+endif
+
include $(BUILD_STATIC_LIBRARY)
-ifeq ($(PLATFORM_VERSION),9)
+ifeq ($(P_OR_LATER),1)
# The following target is available starting from Android P
#######################
@@ -110,7 +160,13 @@ ifeq ($(PLATFORM_VERSION),9)
include $(CLEAR_VARS)
LOCAL_MODULE := libarmnn-driver@1.1
+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
@@ -129,14 +185,17 @@ LOCAL_CFLAGS := \
-Wno-format-security \
-DARMNN_ANDROID_P \
-DARMNN_ANDROID_NN_V1_1
+
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
@@ -176,8 +235,21 @@ 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
+
+ifeq ($(Q_OR_LATER),1)
+LOCAL_SHARED_LIBRARIES+= \
+ libnativewindow \
+ libui \
+ libfmq \
+ libcutils \
+ android.hardware.neuralnetworks@1.2
+endif # PLATFORM_VERSION == Q
+
+ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
+LOCAL_SHARED_LIBRARIES+= \
libOpenCL
+endif
include $(BUILD_STATIC_LIBRARY)
@@ -190,7 +262,12 @@ include $(CLEAR_VARS)
LOCAL_MODULE := android.hardware.neuralnetworks@1.0-service-armnn
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
@@ -235,18 +312,31 @@ LOCAL_SHARED_LIBRARIES := \
libutils \
android.hardware.neuralnetworks@1.0 \
android.hidl.allocator@1.0 \
- android.hidl.memory@1.0 \
- libOpenCL
-ifeq ($(PLATFORM_VERSION),9)
+ 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 ($(ARMNN_COMPUTE_CL_ENABLED),1)
+LOCAL_SHARED_LIBRARIES+= \
+ libOpenCL
+endif
include $(BUILD_EXECUTABLE)
-ifeq ($(PLATFORM_VERSION),9)
+ifeq ($(P_OR_LATER),1)
# The following target is available starting from Android P
#####################################################
@@ -256,7 +346,12 @@ include $(CLEAR_VARS)
LOCAL_MODULE := android.hardware.neuralnetworks@1.1-service-armnn
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
@@ -303,8 +398,21 @@ 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
+
+ifeq ($(Q_OR_LATER),1)
+LOCAL_SHARED_LIBRARIES+= \
+ libnativewindow \
+ libui \
+ libfmq \
+ libcutils \
+ android.hardware.neuralnetworks@1.2
+endif # PLATFORM_VERSION == Q
+
+ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
+LOCAL_SHARED_LIBRARIES+= \
libOpenCL
+endif
include $(BUILD_EXECUTABLE)